plone.app.users


Nameplone.app.users JSON
Version 3.0.6 PyPI version JSON
download
home_pagehttps://pypi.org/project/plone.app.users
SummaryA package for all things users and groups related (specific to plone)
upload_time2024-04-23 15:37:27
maintainerNone
docs_urlNone
authorPlone Foundation
requires_python>=3.8
licenseGPL version 2
keywords zope cmf plone users groups
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            Introduction
============

This package provides the registration form and the user profile form.
It allows the site administrator to define the fields those forms will display.

Overriding / extending the default schema
=========================================

Manipulating the user schema through the web
--------------------------------------------

In Plone setup / Users and Groups / Member fields, we can add and modify the user fields using the `plone.schemaeditor`_ interface.

Once a new field is added, we can access its settings, and more specifically, we can choose where the field must be shown (in the registration form, in the user profile form, or in both).

The entire schema can be freely modified, but:

- the Fullname and the Email fields cannot be removed nor changed,
- we can only add one Image field (that will be used as the user portrait), and no more.

Defining the user schema in a GenericSetup profile
--------------------------------------------------

The user schema can be defined in our GenericSetup profile in a file named ``userschema.xml``.

Its content must be compliant with the `plone.supermodel`_ format. Example::

    <model
      xmlns:lingua="http://namespaces.plone.org/supermodel/lingua"
      xmlns:users="http://namespaces.plone.org/supermodel/users"
      xmlns:form="http://namespaces.plone.org/supermodel/form"
      xmlns:i18n="http://xml.zope.org/namespaces/i18n"
      xmlns:security="http://namespaces.plone.org/supermodel/security"
      xmlns:marshal="http://namespaces.plone.org/supermodel/marshal"
      xmlns="http://namespaces.plone.org/supermodel/schema"
      i18n:domain="plone">
      <schema name="member-fields">
        <field name="birthdate" type="zope.schema.Date">
          <description/>
          <required>False</required>
          <title>Birthdate</title>
        </field>
        <field name="department" type="zope.schema.Choice">
          <description/>
          <required>False</required>
          <title>Department</title>
          <values>
            <element>Marketing</element>
            <element>Production</element>
            <element>HR</element>
          </values>
        </field>
      </schema>
    </model>

This file can imported or exported using ``portal_setup``.

Note: the ``userschema.xml`` importation will automatically refresh the memberdata attributes, so the ``memberdata_properties.xml`` file is not needed.

.. _plone.schemaeditor: https://github.com/plone/plone.schemaeditor
.. _plone.supermodel: https://github.com/plone/plone.supermodel

Changelog
=========

.. You should *NOT* be adding new change log entries to this file.
   You should create a file in the news directory instead.
   For helpful instructions, please see:
   https://github.com/plone/plone.releaser/blob/master/ADD-A-NEWS-ITEM.rst

.. towncrier release notes start

3.0.6 (2024-04-23)
------------------

Bug fixes:


- Fix #122 validating if image is supported by PIL showing a validation error if not.
  Include Pillow dependency in setup.py.
  Fix ValueError: User could not be found in BaseTest setUp adding a transaction.commit().
  [rber474] (#122)


3.0.5 (2024-03-19)
------------------

Internal:


- Update configuration files.
  [plone devs]


3.0.4 (2023-10-07)
------------------

Internal:


- Update configuration files.
  [plone devs] (cfffba8c)


3.0.3 (2023-06-16)
------------------

Bug fixes:


- Improve help text for member fields option where fields are shown.
  For Managers the restriction to not show a field on the user profile does not apply.
  [maurits] (#3794)


Internal:


- Update configuration files.
  [plone devs] (53dc5b4c, e08b1234)


3.0.2 (2023-04-15)
------------------

Internal:


- Update configuration files.
  [plone devs] (434550cc)


3.0.1 (2023-03-14)
------------------

Bug fixes:


- Import more from plone.base. [maurits] (#1)


3.0.0 (2022-11-11)
------------------

Bug fixes:


- For user schemas use a volatile cache on the request instead of on the portal.
  This prevents seeing an empty user profile when you have custom user schemas.
  This fixes `issue 76 <https://github.com/plone/plone.app.users/issues/76>`_.
  [maurits] (#76)


3.0.0b4 (2022-10-11)
--------------------

Bug fixes:


- Fix admin password in tests. [davisagli] (#113)


3.0.0b3 (2022-10-02)
--------------------

Bug fixes:


- Use longer passwords in tests. [davisagli] (#112)


3.0.0b2 (2022-09-01)
--------------------

Bug fixes:


- Ensure that, when no timezone is selected, the value of the stored timezone is an empty string (#109)


3.0.0b1 (2022-07-19)
--------------------

Bug fixes:


- Change default msgids for translations
  [erral] (#108)


3.0.0a7 (2022-03-23)
--------------------

Bug fixes:


- Fixed tests when run with ``zope.component`` 5+.
  [maurits] (#500)


3.0.0a6 (2022-02-24)
--------------------

New features:


- Show unfiltered member fields for manager in user profile page [MrTango] (#106)


3.0.0a5 (2021-12-29)
--------------------

Bug fixes:


- Test fix: remove deprecated ustring handling, which is only needed on Python 2.
  [maurits] (#3305)


3.0.0a4 (2021-10-13)
--------------------

Bug fixes:


- Use registry API to access usergroup settings. 
  Removes usages of deprecated API. 
  [jensens] (#104)


3.0.0a3 (2021-09-15)
--------------------

Bug fixes:


- Remove cyclic dependency with Products.CMFPlone
  [sneridagh] (#102)


3.0.0a2 (2021-08-04)
--------------------

Bug fixes:


- Split up the chaotic navigation in users and groups into its parts.  [jensens] (#1)


3.0.0a1 (2021-04-21)
--------------------

Breaking changes:


- Update for Plone 6 with Bootstrap markup
  Fix registration form test
  [petschki, jensens, agitator] (#98)
- Update account-panel for Plone 6 with Bootstrap markup
  [1letter] (#99)


2.6.6 (2021-01-08)
------------------

Bug fixes:


- Fix setting "Use site default" for wysiwyg_editor. Fix https://github.com/plone/Products.CMFPlone/issues/3173
  [pbauer] (#95)


2.6.5 (2020-07-17)
------------------

Bug fixes:


- Remove unneeded arrow next to Site Setup button in "Edit Member Form Fields" controlpanel.
  [vincentfretin] (#93)


2.6.4 (2020-05-06)
------------------

New features:


- Doctest markup generalization
  [petschki] (#92)


2.6.3 (2020-04-20)
------------------

Bug fixes:


- Minor packaging updates. (#1)


2.6.2 (2019-10-21)
------------------

Bug fixes:


- Error happening during user add notification is logged. (#85)
- User feedback if error happens during user add notification. (#86)
- Fix default value for label_msgid. (#88)
  [erral]


2.6.1 (2019-08-23)
------------------

Bug fixes:


- Fix many_groups usage in AddUserForm
  [tmassman] (#83)


2.6.0 (2019-06-27)
------------------

New features:


- Add support for Python 3.8 [pbauer] (#82)


Bug fixes:


- Fix missing i18n:translate calls
  [erral] (#80)


2.5.1 (2019-06-19)
------------------

Bug fixes:


- Improve test assertion [ale-rt] (#78)


2.5.0 (2018-11-02)
------------------

New features:

- Add support for Python 3.
  [pbauer]

Bug fixes:

- Remove dependency on plone.app.controlpanel.
  [jensens]

- Fix browser test to use name of user/password field instead of label.
  [jensens]

- Import ``activatePluginInterfaces`` from canonical location in PlonePAS.
  [maurits]

- Move forgotten 'registered' template from Products.CMFPlone skins to here, were it belongs to.
  [jensens]

- Don't depend on ZODB version directly. Rely on Zope dependency
  [tomgross]

- Remove dependency on PloneTestCase
  [pbauer]

2.4.2 (2018-04-03)
------------------

Bug fixes:

- Make ``IUserDataSchema.email`` field ``description`` translatable.
  [jensens]


2.4.1 (2018-02-05)
------------------

Bug fixes:

- Provide the UserDataPanelAdapter for INavigationRoot, so @@personal-information
  is not broken with p.a.multilingual
  [ebrehault]

- Fix tests to avoid using testbrowser internals.
  [davisagli]

- Python 3 fixes.
  [pbauer]

- Fix tests to avoid using testbrowser internals. [davisagli]

2.4 (2017-06-20)
----------------

New features:

- Use ``get_portal`` from Products.CMFPlone.utils instead of ``getSite``.
  For plone.app.users we always want the Plone portal object until this package is fixed to support individual subsite settings.
  This requires ``Products.CMFPlone 5.1a2`` or higher.
  [thet]

Bug fixes:

- Remove dependency on ``zope.site``.
  [thet]

- Code cleanup.
  [thet]


2.3.8 (2016-09-23)
------------------

Bug fixes:

- Give a 404 when the user-information form is called with a not
  existing userid.  [maurits]

- Don't show unescaped user id in user-information form.
  This applies PloneHotfix20160830.  [maurits]


2.3.7 (2016-08-18)
------------------

Bug fixes:

- Use zope.interface decorator.
  [gforcada]


2.3.6 (2016-05-12)
------------------

Fixes:

- Fixed KeyError email on personal preferences form.  This could
  happen when email is used as login name.  Fixes
  https://github.com/plone/plone.app.users/issues/56 and
  https://github.com/plone/Products.CMFPlone/issues/1146
  [maurits]

- Ensured partial searching utility for users in 'Search for users' page
  Fixes https://github.com/plone/Products.CMFPlone/issues/1499
  [kkhan]

- Use ProtectedEmail for Email field factory
  [ebrehault]


2.3.5 (2016-02-11)
------------------

Fixes:

- Fix bug when registering a user by adding a schema-setter to
  UserDataPanelAdapter.
  [pbauer]


2.3.4 (2015-11-28)
------------------

Fixes:

- Rerelease to fix problem on one of our testing servers.
  [maurits]


2.3.3 (2015-11-28)
------------------

Fixes:

- Updated Site Setup link in all control panels.
  Fixes https://github.com/plone/Products.CMFPlone/issues/1255
  [davilima6]


2.3.2 (2015-10-28)
------------------

Fixes:

- Do not force "In User Profile" when importing a schema from a GS profile.
  [ebrehault]


2.3.1 (2015-08-22)
------------------

- Gave upgrade step destination 1. With the previous destination '*'
  the upgrade step was always offered.
  [vanrees]

- Cache schemas in volatile attributes on portal.
  [gotcha]

- Package cleanup.
  [gotcha]

- Disable toolbar buttons on personal preferences
  [vangheem]

- Remove extra spaces in userschema.xml messages to avoid i18n extraction
  warnings.
  [vincentfretin]


2.3 (2015-07-18)
----------------

- Implement ttw editable schemas
  [ebrehault, kiorky]

- Added upgrade step to move past Plone to user editable member schema.
  [ianderso]

- Split personal information schema into required and ttw editable schemas
  [ianderso, ljb, stevem]

- Updated tests to reflect current status of the product.
  [stevem]

- Added ttw editable schema for personal information.
  [ianderso, ljb, stevem]

- Removed ext_editor and visible_ids preferences.
  [davisagli]

- Made save buttons "blue"
  [agitator]


2.2.2 (2015-06-05)
------------------

- Import ConfigurationChangedEvent from Products.CMFPlone instead of from
  plone.app.controlpanel (which will be removed in Plone 5).
  [timo]

- Fixed "Add new user" form when there are too many groups.
  Fixes https://github.com/plone/plone.app.users/issues/33
  [avoinea]


2.2.1 (2015-05-04)
------------------

- Removed CMFDefault dependency
  [tomgross]
- Fixed @@change-password to accept current password containing non-ascii chars
  [sgeulette]
- Fixed @@change-password to accept new password containing non-ascii chars
  [sgeulette]


2.2 (2015-03-13)
----------------

- Read security settings from new Plone 5 registry.
  [jure]

- Ported tests to plone.app.testing
  [gforcada, tomgross]

- Adjust navigation markup for Plone 5.
  [davisagli]

- Use email_from_address from registry (Plone 5) in tests.
  [khink]


2.1.0 (2014-10-23)
------------------

- Check the permission for the Object tab on the AccountPanelForm as configured
  in ZCML. This allows to revoke access to individual forms by changing the
  permissions via ZCML overrides.
  [thet]


2.0.3 (2014-04-19)
------------------

- Use correct timezone vocabulary in IPersonalPreferences schema. Whether
  the newer plone.app.vocabularies, the older plone.app.event one or none at
  all, depending on availability.
  [thet]


2.0.2 (2014-04-01)
------------------

- More explicit ZCML package includes. At least, the inclusion of
  plone.formwidget.namedfile fixes a problem in Dexterity-less setups, where
  the @@personal-information form couldn't be rendered because NamedBlobImage
  didn't provide IFromUnicode.
  [thet]


2.0.1 (2014-03-02)
------------------

- Fix packaging error.
  [esteele]


2.0 (2014-03-02)
----------------

- Refactor the member-search form to a browser view, using z3c.form.
  [pabo3000]

- Have a soft dependency on plone.app.event and include the timezone field only
  then in the schema, if plone.app.event is available.
  [thet]

- Migrate plone.app.users to use z3c.form instead of zope.formlib.
  [lentinj, vipod, thet]


1.3a1 (unreleased)
------------------

- Query ``ILoginNameGenerator`` utility to get a login name during registration.
  This makes it easier to override the default login name logic.
  Part of PLIP 13419.
  [maurits]

- Query ``IUserIdGenerator`` utility to get a user id during registration.
  This makes it easier to override the default user id logic.
  Part of PLIP 13419.
  [maurits]

- Support ``use_uuid_as_userid`` site property.
  Part of PLIP 13419.
  [maurits]


1.2a2 (unreleased)
------------------

- Update tests. We now check if the user can add and delete the portrait
  himself.
  [tschanzt]

- Added user timezone selection to user preferences and a dependency on
  plone.app.event for vocabulary for user timezone selection.
  [seanupton]

- Fixed i18n of new_password field in change-password view.
  [vincentfretin]

- Fix email as login validation in the personalize form (UserDataPanel).
  This is for the case when email is used as login.  It checked that a
  changed email address was valid as user id.  But the user id is
  never changed here, only the login name.  We only need to check if
  this address is not used by another user.
  [maurits]

- Fix to not break if passwords contain non-ASCII characters.
  This closes https://dev.plone.org/ticket/13114
  [davisagli]

- Ensure links on user preference panes adhere to navigation root.
  Fixes https://dev.plone.org/ticket/11909.
  [davidjb]

- Unused field "Listed in searches" removed from Personal Preferences.
  [kleist]

- Be consistent in using INavigationRoot. (Backport from 1.1.4)
  [do3cc]


1.2a1 (2012-06-29)
------------------

- Avoid direct zope.app.form dependency.
  [hannosch]

- Support redirecting to a URL specified in the 'came_from' query string
  parameter following registration.
  [davisagli]

- support a PAS plugin for validating passwords see http://dev.plone.org/ticket/10959

1.1.3 (2012-01-04)
------------------

- Setting a member data field to an empty string now works.
  Fixes http://dev.plone.org/ticket/12314
  [maurits]

- Fix for: Plone Administrator unable to edit User Data when email is
  used as login.  Fixes http://dev.plone.org/plone/ticket/12297
  [vmaksymiv, myroslav]

- Explicitly set the mail_me field as not required.
  [jcbrand]


1.1.2 (2011-08-23)
------------------

- Make sure that users with the Site Administrator role can add new users to
  groups. Fixes http://dev.plone.org/plone/ticket/11888
  [davisagli]


1.1.1 - 2011-06-02
------------------

- Check for permission when editing other users' profiles.
  This fixes http://dev.plone.org/plone/ticket/11842 and
  http://plone.org/products/plone/security/advisories/CVE-2011-1950
  [fRiSi, davisagli]

- Add MANIFEST.in
  [WouterVH]


1.1 - 2011-04-03
----------------

- Include plone.app.controlpanel configure.zcml because we use permissions
  defined in this package.
  [vincentfretin]

- Use portal object instead of self.context in AddUserForm so we can easily
  subclass the class for another context.
  [vincentfretin]


1.1b2 - 2011-03-02
------------------

- Fixed test of the default user portrait, which changed from
  defaultUser.gif to defaultUser.png in Products.PlonePAS 4.0.5.
  [maurits]


1.1b1 - 2011-01-03
------------------

- Depend on ``Products.CMFPlone`` instead of ``Plone``.
  [elro]

- Don't allow non-Managers to add new users to groups that grant the Manager
  role.
  [davisagli]

- Protect the user management forms with the
  "Plone Site Setup: Users and Groups" permission instead of the generic
  "Manage portal" and "Manage users".  This requires
  plone.app.controlpanel >= 2.1b1.
  [davisagli]

1.0.5 - 2011-06-02
------------------

- Check for permission when editing other users' profiles.
  This fixes http://dev.plone.org/plone/ticket/11842 and
  http://plone.org/products/plone/security/advisories/CVE-2011-1950
  [fRiSi, davisagli]


1.0.4 - 2011-02-25
------------------

- Fixed test of the default user portrait, which changed from defaultUser.gif to
  defaultUser.png in Products.PlonePAS 4.0.5.
  [maurits]


1.0.3 - 2011-01-03
------------------

- Don't assume that fields in the user schema will be saved in property sheets
  when a new user registers. Instead, adapt the navigation root to the user
  schema to get the same adapter as is used on the Personal Information form,
  and use it to save the values from the registration form.
  [davisagli]

- Fixed critical error on add user page
  when some groups have a non-ascii character in their title.
  Sort groups on their title normalized.
  Token and value in terms in the groups vocabulary were switched.
  This closes http://dev.plone.org/plone/ticket/11316
  [thomasdesvenain, vincentfretin, davisagli]


1.0.2 - 2010-11-24
------------------

- Don't use a custom widget just to set the description of the fullname field,
  which should be set on the field itself.
  [davisagli]


1.0.1 - 2010-07-18
------------------

- Added missing i18n:domain plone in user information template which prevented
  some translations from showing up.
  Fixes http://dev.plone.org/plone/ticket/10744
  [maurits]

- Update license to GPL version 2 only.
  [hannosch]

- Fix @@user-information to correctly get/set and delete the portrait for the
  given userid. Fixes http://dev.plone.org/plone/ticket/10731.
  [mr_savage]


1.0 - 2010-07-01
----------------

- Internationalized personal preferences form.
  Fixes http://dev.plone.org/plone/ticket/10619
  [thomasdesvenain]


1.0b9 - 2010-06-13
------------------

- Avoid deprecation warnings under Zope 2.13.
  [hannosch]

- Use the standard libraries doctest module.
  [hannosch]

- Use five.formlib.
  [hannosch]

- Retrieve properties as unicode even if they are already stored that way.
  Fixes http://dev.plone.org/plone/ticket/10509
  [davisagli]

- When the user_registration_fields property is not there, fall back
  to an empty list; this avoids a TypeError on the registration form.
  [maurits]


1.0b8 - 2010-06-03
------------------

- Fixed error when editing your personal information when using the
  email address as login.
  Fixes http://dev.plone.org/plone/ticket/10363
  [Maurits]

- Fix issue where an e-mail was sent on registration even when told not to.
  Fixes http://dev.plone.org/plone/ticket/10330
  [davisagli]


1.0b7 - 2010-05-01
------------------

- Handle encoded strings returned by PlonePAS.
  Fixes http://dev.plone.org/plone/ticket/10447
  [esteele]

- Remove unused memberdetails.py
  [esteele]

- Pin user preferences forms to INavigationRoot instead of ISiteRoot.
  Fixes http://dev.plone.org/plone/ticket/10439
  [esteele]

- Added configlet forms that inherit from personal preferences and
  personal information. These forms are used when editing user prefs
  from 'User and groups' in site setup.
  [kcleong]

- Use utility-provided UserDataSchema on @@personal-information form.
  Fixes http://dev.plone.org/plone/ticket/10258
  [khink, huub_bouma]


1.0b6 - 2010-04-07
------------------

- Update permission for the @@register view so only users with the
  ``Add Portal Member`` permission can use it to add new members.
  Update tests accordingly.
  Fixes http://dev.plone.org/plone/ticket/3739
  [dukebody]

- Fixed help_biography message.
  [vincentfretin]


1.0b5 - 2010-03-05
------------------

- Remove some unused variable definitions from browser/register.py.
  [esteele]

- Updated account-panel-bare.pt to recent markup conventions.
  References http://dev.plone.org/plone/ticket/9981
  [spliter]

- Sort groups listing alphabetically by title.
  [esteele]

- Display groups by title (id) in @@new-user.
  [esteele]

- Fix some more duplicate id's, including some done through TAL that had nothing
  dynamic and so nee not be tal:attributes.
  [rossp]


1.0b4 - 2010-02-18
------------------

- Updated memberregistration.pt to recent markup conventions.
  References http://dev.plone.org/old/plone/ticket/9981
  [spliter]

- Fixed @@register by removing unnecessary fill-slot outside of a fill-macro.
  [spliter]

- Removing redundant .documentContent markup.
  This refs http://dev.plone.org/plone/ticket/10231.
  [limi]

- Updated register_form.pt to not use fill-slot="viewlet".
  [spliter]

- Updated user registration templates to disable the columns with
  'disable_MANAGER_NAME' pattern
  [spliter]

- add views to replace personalize_form, split up into @@personal-preferences,
  @@personal-information and @@change-password.
  [khink, kcleong]


1.0b3 - 2010-02-01
------------------

- Retarget the registration and new-user forms at the navigation root.
  [mj]


1.0b2 - 2010-01-28
------------------

- Fixed tests to account for new layout of users overview pages.
  [esteele]


1.0b1 - 2009-12-27
------------------

- Fixed package dependency declarations and use getSite from zope.site.
  [hannosch]


1.0a3 - 2009-12-16
------------------

- Make the password field optional for the admin when instead an email can be sent.
  [maurits]

- On the anonymous registration form, do not offer to send an email with a link
  to reset your password if the password fields are right there on the form
  already; we were never actually sending emails with the plain password itself anyway.
  [maurits]

- Allow admins to register a user at all times, also without valid mailhost
  settings.  This means that in a fresh Plone site you can create user accounts
  immediately without having to edit any settings.
  [maurits]

- Use the proper SimpleVocabulary/SimpleTerm API instead of encouraging bad
  practice. This refs http://dev.plone.org/plone/ticket/6480.
  [hannosch]


1.0a2 - 2009-12-01
------------------

- Display a message and prevent the user from registering if there is no
  defined mailhost and users are not allowed to select their own passwords.
  [esteele]

- "User/Groups Settings" configlet view is polished visually to follow rest of
  configlets in "Users and Groups" control panel. Ref. #9825
  [spliter]

- For "User/Groups Settings" configlet highlighted "Member registration" tab
  instead of the wrong "Settings"
  [spliter]

- @@new-user form will now always show the password fields, regardless of the
  site settings.
  [esteele]

- Change registration form name @@join_form to @@register. Change class names
  accordingly. Added an "@@new-user" form to be used from the control panel.
  "Add to group" functionality now lives there. We can now get rid of the
  horrid came_from flags that we've been passing around.
  [esteele]

- Internationalized title_join_form_fields and description_join_form_fields.
  This closes http://dev.plone.org/plone/attachment/ticket/9810
  [vincentfretin]


1.0a1 - 2009-11-18
------------------

- Fixed bad use of i18n markup in joinform.py. This closes
  http://dev.plone.org/plone/ticket/9773
  [vincentfretin]

- Renamed label_groups to label_add_to_groups in joinform.py
  [vincentfretin]

- Restore the came_from_prefs check to make the join form redirect to the
  Users and Groups configlet if that's where the user started from.
  [davisagli]

- Initial release

            

Raw data

            {
    "_id": null,
    "home_page": "https://pypi.org/project/plone.app.users",
    "name": "plone.app.users",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "Zope CMF Plone Users Groups",
    "author": "Plone Foundation",
    "author_email": "plone-developers@lists.sourceforge.net",
    "download_url": "https://files.pythonhosted.org/packages/47/5b/bfc354fe46f3abc97171cb2ecb1c3092aca2eaf96ed3b79f6f2e787f17cf/plone_app_users-3.0.6.tar.gz",
    "platform": null,
    "description": "Introduction\n============\n\nThis package provides the registration form and the user profile form.\nIt allows the site administrator to define the fields those forms will display.\n\nOverriding / extending the default schema\n=========================================\n\nManipulating the user schema through the web\n--------------------------------------------\n\nIn Plone setup / Users and Groups / Member fields, we can add and modify the user fields using the `plone.schemaeditor`_ interface.\n\nOnce a new field is added, we can access its settings, and more specifically, we can choose where the field must be shown (in the registration form, in the user profile form, or in both).\n\nThe entire schema can be freely modified, but:\n\n- the Fullname and the Email fields cannot be removed nor changed,\n- we can only add one Image field (that will be used as the user portrait), and no more.\n\nDefining the user schema in a GenericSetup profile\n--------------------------------------------------\n\nThe user schema can be defined in our GenericSetup profile in a file named ``userschema.xml``.\n\nIts content must be compliant with the `plone.supermodel`_ format. Example::\n\n    <model\n      xmlns:lingua=\"http://namespaces.plone.org/supermodel/lingua\"\n      xmlns:users=\"http://namespaces.plone.org/supermodel/users\"\n      xmlns:form=\"http://namespaces.plone.org/supermodel/form\"\n      xmlns:i18n=\"http://xml.zope.org/namespaces/i18n\"\n      xmlns:security=\"http://namespaces.plone.org/supermodel/security\"\n      xmlns:marshal=\"http://namespaces.plone.org/supermodel/marshal\"\n      xmlns=\"http://namespaces.plone.org/supermodel/schema\"\n      i18n:domain=\"plone\">\n      <schema name=\"member-fields\">\n        <field name=\"birthdate\" type=\"zope.schema.Date\">\n          <description/>\n          <required>False</required>\n          <title>Birthdate</title>\n        </field>\n        <field name=\"department\" type=\"zope.schema.Choice\">\n          <description/>\n          <required>False</required>\n          <title>Department</title>\n          <values>\n            <element>Marketing</element>\n            <element>Production</element>\n            <element>HR</element>\n          </values>\n        </field>\n      </schema>\n    </model>\n\nThis file can imported or exported using ``portal_setup``.\n\nNote: the ``userschema.xml`` importation will automatically refresh the memberdata attributes, so the ``memberdata_properties.xml`` file is not needed.\n\n.. _plone.schemaeditor: https://github.com/plone/plone.schemaeditor\n.. _plone.supermodel: https://github.com/plone/plone.supermodel\n\nChangelog\n=========\n\n.. You should *NOT* be adding new change log entries to this file.\n   You should create a file in the news directory instead.\n   For helpful instructions, please see:\n   https://github.com/plone/plone.releaser/blob/master/ADD-A-NEWS-ITEM.rst\n\n.. towncrier release notes start\n\n3.0.6 (2024-04-23)\n------------------\n\nBug fixes:\n\n\n- Fix #122 validating if image is supported by PIL showing a validation error if not.\n  Include Pillow dependency in setup.py.\n  Fix ValueError: User could not be found in BaseTest setUp adding a transaction.commit().\n  [rber474] (#122)\n\n\n3.0.5 (2024-03-19)\n------------------\n\nInternal:\n\n\n- Update configuration files.\n  [plone devs]\n\n\n3.0.4 (2023-10-07)\n------------------\n\nInternal:\n\n\n- Update configuration files.\n  [plone devs] (cfffba8c)\n\n\n3.0.3 (2023-06-16)\n------------------\n\nBug fixes:\n\n\n- Improve help text for member fields option where fields are shown.\n  For Managers the restriction to not show a field on the user profile does not apply.\n  [maurits] (#3794)\n\n\nInternal:\n\n\n- Update configuration files.\n  [plone devs] (53dc5b4c, e08b1234)\n\n\n3.0.2 (2023-04-15)\n------------------\n\nInternal:\n\n\n- Update configuration files.\n  [plone devs] (434550cc)\n\n\n3.0.1 (2023-03-14)\n------------------\n\nBug fixes:\n\n\n- Import more from plone.base. [maurits] (#1)\n\n\n3.0.0 (2022-11-11)\n------------------\n\nBug fixes:\n\n\n- For user schemas use a volatile cache on the request instead of on the portal.\n  This prevents seeing an empty user profile when you have custom user schemas.\n  This fixes `issue 76 <https://github.com/plone/plone.app.users/issues/76>`_.\n  [maurits] (#76)\n\n\n3.0.0b4 (2022-10-11)\n--------------------\n\nBug fixes:\n\n\n- Fix admin password in tests. [davisagli] (#113)\n\n\n3.0.0b3 (2022-10-02)\n--------------------\n\nBug fixes:\n\n\n- Use longer passwords in tests. [davisagli] (#112)\n\n\n3.0.0b2 (2022-09-01)\n--------------------\n\nBug fixes:\n\n\n- Ensure that, when no timezone is selected, the value of the stored timezone is an empty string (#109)\n\n\n3.0.0b1 (2022-07-19)\n--------------------\n\nBug fixes:\n\n\n- Change default msgids for translations\n  [erral] (#108)\n\n\n3.0.0a7 (2022-03-23)\n--------------------\n\nBug fixes:\n\n\n- Fixed tests when run with ``zope.component`` 5+.\n  [maurits] (#500)\n\n\n3.0.0a6 (2022-02-24)\n--------------------\n\nNew features:\n\n\n- Show unfiltered member fields for manager in user profile page [MrTango] (#106)\n\n\n3.0.0a5 (2021-12-29)\n--------------------\n\nBug fixes:\n\n\n- Test fix: remove deprecated ustring handling, which is only needed on Python 2.\n  [maurits] (#3305)\n\n\n3.0.0a4 (2021-10-13)\n--------------------\n\nBug fixes:\n\n\n- Use registry API to access usergroup settings. \n  Removes usages of deprecated API. \n  [jensens] (#104)\n\n\n3.0.0a3 (2021-09-15)\n--------------------\n\nBug fixes:\n\n\n- Remove cyclic dependency with Products.CMFPlone\n  [sneridagh] (#102)\n\n\n3.0.0a2 (2021-08-04)\n--------------------\n\nBug fixes:\n\n\n- Split up the chaotic navigation in users and groups into its parts.  [jensens] (#1)\n\n\n3.0.0a1 (2021-04-21)\n--------------------\n\nBreaking changes:\n\n\n- Update for Plone 6 with Bootstrap markup\n  Fix registration form test\n  [petschki, jensens, agitator] (#98)\n- Update account-panel for Plone 6 with Bootstrap markup\n  [1letter] (#99)\n\n\n2.6.6 (2021-01-08)\n------------------\n\nBug fixes:\n\n\n- Fix setting \"Use site default\" for wysiwyg_editor. Fix https://github.com/plone/Products.CMFPlone/issues/3173\n  [pbauer] (#95)\n\n\n2.6.5 (2020-07-17)\n------------------\n\nBug fixes:\n\n\n- Remove unneeded arrow next to Site Setup button in \"Edit Member Form Fields\" controlpanel.\n  [vincentfretin] (#93)\n\n\n2.6.4 (2020-05-06)\n------------------\n\nNew features:\n\n\n- Doctest markup generalization\n  [petschki] (#92)\n\n\n2.6.3 (2020-04-20)\n------------------\n\nBug fixes:\n\n\n- Minor packaging updates. (#1)\n\n\n2.6.2 (2019-10-21)\n------------------\n\nBug fixes:\n\n\n- Error happening during user add notification is logged. (#85)\n- User feedback if error happens during user add notification. (#86)\n- Fix default value for label_msgid. (#88)\n  [erral]\n\n\n2.6.1 (2019-08-23)\n------------------\n\nBug fixes:\n\n\n- Fix many_groups usage in AddUserForm\n  [tmassman] (#83)\n\n\n2.6.0 (2019-06-27)\n------------------\n\nNew features:\n\n\n- Add support for Python 3.8 [pbauer] (#82)\n\n\nBug fixes:\n\n\n- Fix missing i18n:translate calls\n  [erral] (#80)\n\n\n2.5.1 (2019-06-19)\n------------------\n\nBug fixes:\n\n\n- Improve test assertion [ale-rt] (#78)\n\n\n2.5.0 (2018-11-02)\n------------------\n\nNew features:\n\n- Add support for Python 3.\n  [pbauer]\n\nBug fixes:\n\n- Remove dependency on plone.app.controlpanel.\n  [jensens]\n\n- Fix browser test to use name of user/password field instead of label.\n  [jensens]\n\n- Import ``activatePluginInterfaces`` from canonical location in PlonePAS.\n  [maurits]\n\n- Move forgotten 'registered' template from Products.CMFPlone skins to here, were it belongs to.\n  [jensens]\n\n- Don't depend on ZODB version directly. Rely on Zope dependency\n  [tomgross]\n\n- Remove dependency on PloneTestCase\n  [pbauer]\n\n2.4.2 (2018-04-03)\n------------------\n\nBug fixes:\n\n- Make ``IUserDataSchema.email`` field ``description`` translatable.\n  [jensens]\n\n\n2.4.1 (2018-02-05)\n------------------\n\nBug fixes:\n\n- Provide the UserDataPanelAdapter for INavigationRoot, so @@personal-information\n  is not broken with p.a.multilingual\n  [ebrehault]\n\n- Fix tests to avoid using testbrowser internals.\n  [davisagli]\n\n- Python 3 fixes.\n  [pbauer]\n\n- Fix tests to avoid using testbrowser internals. [davisagli]\n\n2.4 (2017-06-20)\n----------------\n\nNew features:\n\n- Use ``get_portal`` from Products.CMFPlone.utils instead of ``getSite``.\n  For plone.app.users we always want the Plone portal object until this package is fixed to support individual subsite settings.\n  This requires ``Products.CMFPlone 5.1a2`` or higher.\n  [thet]\n\nBug fixes:\n\n- Remove dependency on ``zope.site``.\n  [thet]\n\n- Code cleanup.\n  [thet]\n\n\n2.3.8 (2016-09-23)\n------------------\n\nBug fixes:\n\n- Give a 404 when the user-information form is called with a not\n  existing userid.  [maurits]\n\n- Don't show unescaped user id in user-information form.\n  This applies PloneHotfix20160830.  [maurits]\n\n\n2.3.7 (2016-08-18)\n------------------\n\nBug fixes:\n\n- Use zope.interface decorator.\n  [gforcada]\n\n\n2.3.6 (2016-05-12)\n------------------\n\nFixes:\n\n- Fixed KeyError email on personal preferences form.  This could\n  happen when email is used as login name.  Fixes\n  https://github.com/plone/plone.app.users/issues/56 and\n  https://github.com/plone/Products.CMFPlone/issues/1146\n  [maurits]\n\n- Ensured partial searching utility for users in 'Search for users' page\n  Fixes https://github.com/plone/Products.CMFPlone/issues/1499\n  [kkhan]\n\n- Use ProtectedEmail for Email field factory\n  [ebrehault]\n\n\n2.3.5 (2016-02-11)\n------------------\n\nFixes:\n\n- Fix bug when registering a user by adding a schema-setter to\n  UserDataPanelAdapter.\n  [pbauer]\n\n\n2.3.4 (2015-11-28)\n------------------\n\nFixes:\n\n- Rerelease to fix problem on one of our testing servers.\n  [maurits]\n\n\n2.3.3 (2015-11-28)\n------------------\n\nFixes:\n\n- Updated Site Setup link in all control panels.\n  Fixes https://github.com/plone/Products.CMFPlone/issues/1255\n  [davilima6]\n\n\n2.3.2 (2015-10-28)\n------------------\n\nFixes:\n\n- Do not force \"In User Profile\" when importing a schema from a GS profile.\n  [ebrehault]\n\n\n2.3.1 (2015-08-22)\n------------------\n\n- Gave upgrade step destination 1. With the previous destination '*'\n  the upgrade step was always offered.\n  [vanrees]\n\n- Cache schemas in volatile attributes on portal.\n  [gotcha]\n\n- Package cleanup.\n  [gotcha]\n\n- Disable toolbar buttons on personal preferences\n  [vangheem]\n\n- Remove extra spaces in userschema.xml messages to avoid i18n extraction\n  warnings.\n  [vincentfretin]\n\n\n2.3 (2015-07-18)\n----------------\n\n- Implement ttw editable schemas\n  [ebrehault, kiorky]\n\n- Added upgrade step to move past Plone to user editable member schema.\n  [ianderso]\n\n- Split personal information schema into required and ttw editable schemas\n  [ianderso, ljb, stevem]\n\n- Updated tests to reflect current status of the product.\n  [stevem]\n\n- Added ttw editable schema for personal information.\n  [ianderso, ljb, stevem]\n\n- Removed ext_editor and visible_ids preferences.\n  [davisagli]\n\n- Made save buttons \"blue\"\n  [agitator]\n\n\n2.2.2 (2015-06-05)\n------------------\n\n- Import ConfigurationChangedEvent from Products.CMFPlone instead of from\n  plone.app.controlpanel (which will be removed in Plone 5).\n  [timo]\n\n- Fixed \"Add new user\" form when there are too many groups.\n  Fixes https://github.com/plone/plone.app.users/issues/33\n  [avoinea]\n\n\n2.2.1 (2015-05-04)\n------------------\n\n- Removed CMFDefault dependency\n  [tomgross]\n- Fixed @@change-password to accept current password containing non-ascii chars\n  [sgeulette]\n- Fixed @@change-password to accept new password containing non-ascii chars\n  [sgeulette]\n\n\n2.2 (2015-03-13)\n----------------\n\n- Read security settings from new Plone 5 registry.\n  [jure]\n\n- Ported tests to plone.app.testing\n  [gforcada, tomgross]\n\n- Adjust navigation markup for Plone 5.\n  [davisagli]\n\n- Use email_from_address from registry (Plone 5) in tests.\n  [khink]\n\n\n2.1.0 (2014-10-23)\n------------------\n\n- Check the permission for the Object tab on the AccountPanelForm as configured\n  in ZCML. This allows to revoke access to individual forms by changing the\n  permissions via ZCML overrides.\n  [thet]\n\n\n2.0.3 (2014-04-19)\n------------------\n\n- Use correct timezone vocabulary in IPersonalPreferences schema. Whether\n  the newer plone.app.vocabularies, the older plone.app.event one or none at\n  all, depending on availability.\n  [thet]\n\n\n2.0.2 (2014-04-01)\n------------------\n\n- More explicit ZCML package includes. At least, the inclusion of\n  plone.formwidget.namedfile fixes a problem in Dexterity-less setups, where\n  the @@personal-information form couldn't be rendered because NamedBlobImage\n  didn't provide IFromUnicode.\n  [thet]\n\n\n2.0.1 (2014-03-02)\n------------------\n\n- Fix packaging error.\n  [esteele]\n\n\n2.0 (2014-03-02)\n----------------\n\n- Refactor the member-search form to a browser view, using z3c.form.\n  [pabo3000]\n\n- Have a soft dependency on plone.app.event and include the timezone field only\n  then in the schema, if plone.app.event is available.\n  [thet]\n\n- Migrate plone.app.users to use z3c.form instead of zope.formlib.\n  [lentinj, vipod, thet]\n\n\n1.3a1 (unreleased)\n------------------\n\n- Query ``ILoginNameGenerator`` utility to get a login name during registration.\n  This makes it easier to override the default login name logic.\n  Part of PLIP 13419.\n  [maurits]\n\n- Query ``IUserIdGenerator`` utility to get a user id during registration.\n  This makes it easier to override the default user id logic.\n  Part of PLIP 13419.\n  [maurits]\n\n- Support ``use_uuid_as_userid`` site property.\n  Part of PLIP 13419.\n  [maurits]\n\n\n1.2a2 (unreleased)\n------------------\n\n- Update tests. We now check if the user can add and delete the portrait\n  himself.\n  [tschanzt]\n\n- Added user timezone selection to user preferences and a dependency on\n  plone.app.event for vocabulary for user timezone selection.\n  [seanupton]\n\n- Fixed i18n of new_password field in change-password view.\n  [vincentfretin]\n\n- Fix email as login validation in the personalize form (UserDataPanel).\n  This is for the case when email is used as login.  It checked that a\n  changed email address was valid as user id.  But the user id is\n  never changed here, only the login name.  We only need to check if\n  this address is not used by another user.\n  [maurits]\n\n- Fix to not break if passwords contain non-ASCII characters.\n  This closes https://dev.plone.org/ticket/13114\n  [davisagli]\n\n- Ensure links on user preference panes adhere to navigation root.\n  Fixes https://dev.plone.org/ticket/11909.\n  [davidjb]\n\n- Unused field \"Listed in searches\" removed from Personal Preferences.\n  [kleist]\n\n- Be consistent in using INavigationRoot. (Backport from 1.1.4)\n  [do3cc]\n\n\n1.2a1 (2012-06-29)\n------------------\n\n- Avoid direct zope.app.form dependency.\n  [hannosch]\n\n- Support redirecting to a URL specified in the 'came_from' query string\n  parameter following registration.\n  [davisagli]\n\n- support a PAS plugin for validating passwords see http://dev.plone.org/ticket/10959\n\n1.1.3 (2012-01-04)\n------------------\n\n- Setting a member data field to an empty string now works.\n  Fixes http://dev.plone.org/ticket/12314\n  [maurits]\n\n- Fix for: Plone Administrator unable to edit User Data when email is\n  used as login.  Fixes http://dev.plone.org/plone/ticket/12297\n  [vmaksymiv, myroslav]\n\n- Explicitly set the mail_me field as not required.\n  [jcbrand]\n\n\n1.1.2 (2011-08-23)\n------------------\n\n- Make sure that users with the Site Administrator role can add new users to\n  groups. Fixes http://dev.plone.org/plone/ticket/11888\n  [davisagli]\n\n\n1.1.1 - 2011-06-02\n------------------\n\n- Check for permission when editing other users' profiles.\n  This fixes http://dev.plone.org/plone/ticket/11842 and\n  http://plone.org/products/plone/security/advisories/CVE-2011-1950\n  [fRiSi, davisagli]\n\n- Add MANIFEST.in\n  [WouterVH]\n\n\n1.1 - 2011-04-03\n----------------\n\n- Include plone.app.controlpanel configure.zcml because we use permissions\n  defined in this package.\n  [vincentfretin]\n\n- Use portal object instead of self.context in AddUserForm so we can easily\n  subclass the class for another context.\n  [vincentfretin]\n\n\n1.1b2 - 2011-03-02\n------------------\n\n- Fixed test of the default user portrait, which changed from\n  defaultUser.gif to defaultUser.png in Products.PlonePAS 4.0.5.\n  [maurits]\n\n\n1.1b1 - 2011-01-03\n------------------\n\n- Depend on ``Products.CMFPlone`` instead of ``Plone``.\n  [elro]\n\n- Don't allow non-Managers to add new users to groups that grant the Manager\n  role.\n  [davisagli]\n\n- Protect the user management forms with the\n  \"Plone Site Setup: Users and Groups\" permission instead of the generic\n  \"Manage portal\" and \"Manage users\".  This requires\n  plone.app.controlpanel >= 2.1b1.\n  [davisagli]\n\n1.0.5 - 2011-06-02\n------------------\n\n- Check for permission when editing other users' profiles.\n  This fixes http://dev.plone.org/plone/ticket/11842 and\n  http://plone.org/products/plone/security/advisories/CVE-2011-1950\n  [fRiSi, davisagli]\n\n\n1.0.4 - 2011-02-25\n------------------\n\n- Fixed test of the default user portrait, which changed from defaultUser.gif to\n  defaultUser.png in Products.PlonePAS 4.0.5.\n  [maurits]\n\n\n1.0.3 - 2011-01-03\n------------------\n\n- Don't assume that fields in the user schema will be saved in property sheets\n  when a new user registers. Instead, adapt the navigation root to the user\n  schema to get the same adapter as is used on the Personal Information form,\n  and use it to save the values from the registration form.\n  [davisagli]\n\n- Fixed critical error on add user page\n  when some groups have a non-ascii character in their title.\n  Sort groups on their title normalized.\n  Token and value in terms in the groups vocabulary were switched.\n  This closes http://dev.plone.org/plone/ticket/11316\n  [thomasdesvenain, vincentfretin, davisagli]\n\n\n1.0.2 - 2010-11-24\n------------------\n\n- Don't use a custom widget just to set the description of the fullname field,\n  which should be set on the field itself.\n  [davisagli]\n\n\n1.0.1 - 2010-07-18\n------------------\n\n- Added missing i18n:domain plone in user information template which prevented\n  some translations from showing up.\n  Fixes http://dev.plone.org/plone/ticket/10744\n  [maurits]\n\n- Update license to GPL version 2 only.\n  [hannosch]\n\n- Fix @@user-information to correctly get/set and delete the portrait for the\n  given userid. Fixes http://dev.plone.org/plone/ticket/10731.\n  [mr_savage]\n\n\n1.0 - 2010-07-01\n----------------\n\n- Internationalized personal preferences form.\n  Fixes http://dev.plone.org/plone/ticket/10619\n  [thomasdesvenain]\n\n\n1.0b9 - 2010-06-13\n------------------\n\n- Avoid deprecation warnings under Zope 2.13.\n  [hannosch]\n\n- Use the standard libraries doctest module.\n  [hannosch]\n\n- Use five.formlib.\n  [hannosch]\n\n- Retrieve properties as unicode even if they are already stored that way.\n  Fixes http://dev.plone.org/plone/ticket/10509\n  [davisagli]\n\n- When the user_registration_fields property is not there, fall back\n  to an empty list; this avoids a TypeError on the registration form.\n  [maurits]\n\n\n1.0b8 - 2010-06-03\n------------------\n\n- Fixed error when editing your personal information when using the\n  email address as login.\n  Fixes http://dev.plone.org/plone/ticket/10363\n  [Maurits]\n\n- Fix issue where an e-mail was sent on registration even when told not to.\n  Fixes http://dev.plone.org/plone/ticket/10330\n  [davisagli]\n\n\n1.0b7 - 2010-05-01\n------------------\n\n- Handle encoded strings returned by PlonePAS.\n  Fixes http://dev.plone.org/plone/ticket/10447\n  [esteele]\n\n- Remove unused memberdetails.py\n  [esteele]\n\n- Pin user preferences forms to INavigationRoot instead of ISiteRoot.\n  Fixes http://dev.plone.org/plone/ticket/10439\n  [esteele]\n\n- Added configlet forms that inherit from personal preferences and\n  personal information. These forms are used when editing user prefs\n  from 'User and groups' in site setup.\n  [kcleong]\n\n- Use utility-provided UserDataSchema on @@personal-information form.\n  Fixes http://dev.plone.org/plone/ticket/10258\n  [khink, huub_bouma]\n\n\n1.0b6 - 2010-04-07\n------------------\n\n- Update permission for the @@register view so only users with the\n  ``Add Portal Member`` permission can use it to add new members.\n  Update tests accordingly.\n  Fixes http://dev.plone.org/plone/ticket/3739\n  [dukebody]\n\n- Fixed help_biography message.\n  [vincentfretin]\n\n\n1.0b5 - 2010-03-05\n------------------\n\n- Remove some unused variable definitions from browser/register.py.\n  [esteele]\n\n- Updated account-panel-bare.pt to recent markup conventions.\n  References http://dev.plone.org/plone/ticket/9981\n  [spliter]\n\n- Sort groups listing alphabetically by title.\n  [esteele]\n\n- Display groups by title (id) in @@new-user.\n  [esteele]\n\n- Fix some more duplicate id's, including some done through TAL that had nothing\n  dynamic and so nee not be tal:attributes.\n  [rossp]\n\n\n1.0b4 - 2010-02-18\n------------------\n\n- Updated memberregistration.pt to recent markup conventions.\n  References http://dev.plone.org/old/plone/ticket/9981\n  [spliter]\n\n- Fixed @@register by removing unnecessary fill-slot outside of a fill-macro.\n  [spliter]\n\n- Removing redundant .documentContent markup.\n  This refs http://dev.plone.org/plone/ticket/10231.\n  [limi]\n\n- Updated register_form.pt to not use fill-slot=\"viewlet\".\n  [spliter]\n\n- Updated user registration templates to disable the columns with\n  'disable_MANAGER_NAME' pattern\n  [spliter]\n\n- add views to replace personalize_form, split up into @@personal-preferences,\n  @@personal-information and @@change-password.\n  [khink, kcleong]\n\n\n1.0b3 - 2010-02-01\n------------------\n\n- Retarget the registration and new-user forms at the navigation root.\n  [mj]\n\n\n1.0b2 - 2010-01-28\n------------------\n\n- Fixed tests to account for new layout of users overview pages.\n  [esteele]\n\n\n1.0b1 - 2009-12-27\n------------------\n\n- Fixed package dependency declarations and use getSite from zope.site.\n  [hannosch]\n\n\n1.0a3 - 2009-12-16\n------------------\n\n- Make the password field optional for the admin when instead an email can be sent.\n  [maurits]\n\n- On the anonymous registration form, do not offer to send an email with a link\n  to reset your password if the password fields are right there on the form\n  already; we were never actually sending emails with the plain password itself anyway.\n  [maurits]\n\n- Allow admins to register a user at all times, also without valid mailhost\n  settings.  This means that in a fresh Plone site you can create user accounts\n  immediately without having to edit any settings.\n  [maurits]\n\n- Use the proper SimpleVocabulary/SimpleTerm API instead of encouraging bad\n  practice. This refs http://dev.plone.org/plone/ticket/6480.\n  [hannosch]\n\n\n1.0a2 - 2009-12-01\n------------------\n\n- Display a message and prevent the user from registering if there is no\n  defined mailhost and users are not allowed to select their own passwords.\n  [esteele]\n\n- \"User/Groups Settings\" configlet view is polished visually to follow rest of\n  configlets in \"Users and Groups\" control panel. Ref. #9825\n  [spliter]\n\n- For \"User/Groups Settings\" configlet highlighted \"Member registration\" tab\n  instead of the wrong \"Settings\"\n  [spliter]\n\n- @@new-user form will now always show the password fields, regardless of the\n  site settings.\n  [esteele]\n\n- Change registration form name @@join_form to @@register. Change class names\n  accordingly. Added an \"@@new-user\" form to be used from the control panel.\n  \"Add to group\" functionality now lives there. We can now get rid of the\n  horrid came_from flags that we've been passing around.\n  [esteele]\n\n- Internationalized title_join_form_fields and description_join_form_fields.\n  This closes http://dev.plone.org/plone/attachment/ticket/9810\n  [vincentfretin]\n\n\n1.0a1 - 2009-11-18\n------------------\n\n- Fixed bad use of i18n markup in joinform.py. This closes\n  http://dev.plone.org/plone/ticket/9773\n  [vincentfretin]\n\n- Renamed label_groups to label_add_to_groups in joinform.py\n  [vincentfretin]\n\n- Restore the came_from_prefs check to make the join form redirect to the\n  Users and Groups configlet if that's where the user started from.\n  [davisagli]\n\n- Initial release\n",
    "bugtrack_url": null,
    "license": "GPL version 2",
    "summary": "A package for all things users and groups related (specific to plone)",
    "version": "3.0.6",
    "project_urls": {
        "Homepage": "https://pypi.org/project/plone.app.users"
    },
    "split_keywords": [
        "zope",
        "cmf",
        "plone",
        "users",
        "groups"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c2e1443ef3dc63eea835d3ba1e149c93bffc93b59e5f9f22f97626b351570d08",
                "md5": "67a816ad9e5219d462be57de0569bcce",
                "sha256": "7d06e4b99aabe089503d1ebaed5cec21b582040357da568a654cbaf47bce5485"
            },
            "downloads": -1,
            "filename": "plone.app.users-3.0.6-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "67a816ad9e5219d462be57de0569bcce",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 86740,
            "upload_time": "2024-04-23T15:37:24",
            "upload_time_iso_8601": "2024-04-23T15:37:24.178416Z",
            "url": "https://files.pythonhosted.org/packages/c2/e1/443ef3dc63eea835d3ba1e149c93bffc93b59e5f9f22f97626b351570d08/plone.app.users-3.0.6-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "475bbfc354fe46f3abc97171cb2ecb1c3092aca2eaf96ed3b79f6f2e787f17cf",
                "md5": "c72c979fa66a3498e8d4fdd9d6dbeb02",
                "sha256": "3b44303b193ee68efe1bd39a1d2b44de1d89d79874990853022e59e748df4f3e"
            },
            "downloads": -1,
            "filename": "plone_app_users-3.0.6.tar.gz",
            "has_sig": false,
            "md5_digest": "c72c979fa66a3498e8d4fdd9d6dbeb02",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 79024,
            "upload_time": "2024-04-23T15:37:27",
            "upload_time_iso_8601": "2024-04-23T15:37:27.272152Z",
            "url": "https://files.pythonhosted.org/packages/47/5b/bfc354fe46f3abc97171cb2ecb1c3092aca2eaf96ed3b79f6f2e787f17cf/plone_app_users-3.0.6.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-23 15:37:27",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "plone.app.users"
}
        
Elapsed time: 0.24964s