Metadata-Version: 1.0
Name: dexterity.membrane
Version: 1.0
Summary: Dexterity content and behaviors to integrate with membrane.
Home-page: https://github.com/collective/dexterity.membrane
Author: Maurits van Rees
Author-email: maurits@vanrees.org
License: GPL
Description: Introduction
        ============
        
        dexterity.membrane enables dexterity content items to be used as users and groups in Plone sites and integrates with Products.membrane.
        
        
        Compatibility
        -------------
        
        This package has been developed for Plone 4.1.  In fact it will only
        work on that version (or higher) as we require uuid support.
        
        We depend on Products.membrane 2.0.2 or higher as that contains a fix
        to make sure members that are deleted are also removed from the
        membrane_tool catalog.
        
        
        User id
        -------
        
        As user id we use the uuid that is generated for the content item.
        This only works on Plone 4.1 and higher.  See the definition of
        ``getUserId`` in the ``membraneuser.py`` behavior.
        
        If you define your own member content type, you should enable the
        ``plone.app.referenceablebehavior.referenceable.IReferenceable``
        behavior on it as that gives uuid support.  This also means members
        can be referenced from Archetypes content.
        
        
        Email as login name
        -------------------
        
        This package contains a member content type that has an email field.
        This is used as login name by the behavior.  See ``getUserName``.
        Other implementations are possible, so we do not force you to use the
        email address as the login name in your site.
        
        By default, this is on, but you can switch it off in our control
        panel.  The setting is saved in the Plone registry.
        
        Next to this, it is probably a good idea to also switch on
        the use_email_as_login property of Plone itself.  The only
        effect this has as far as this package is concerned, is that some text
        in login forms is changed: you see 'email address' as label instead of
        'login name', mostly.  To enable this, you can put this in
        ``propertiestool.xml``, possibly in a custom package for your
        project::
        
          <?xml version="1.0"?>
          <object name="portal_properties" meta_type="Plone Properties Tool">
            <object name="site_properties" meta_type="Plone Property Sheet">
              <property name="use_email_as_login" type="boolean">True</property>
            </object>
          </object>
        
        
        Member content type
        -------------------
        
        This package defines a member content type, but this may be considered
        an example; feel free to create a different type and only use the
        behaviors or create your own adaptations of them.
        
        
        Behaviors
        ---------
        
        - ``dexterity.membrane.behavior.membraneuser.IMembraneUser``: this
          makes the content behave as a membrane user, defining a way to get
          the user id (``getUserId``) and login name (``getUserName``).
        
        - ``dexterity.membrane.behavior.membranepassword.IProvidePasswords``:
          adds a password and confirmation field to your dexterity content.
          This is used during authentication.
        
        - ``dexterity.membrane.behavior.membranegroup.IMembraneGroup``: this
          makes the content behave as a membrane group, defining a way to get
          the group id (``getGroupId``) and group name (``getGroupName``).
        
        
        Membrane implementation
        -----------------------
        
        - ``Products.membrane.interfaces.IMembraneUserAuth``: we implement
          authentication using the email field and the password field.
        
        - ``Products.membrane.interfaces import IMembraneUserProperties``: we
          provide a read-only mapping from the first and last name fields of
          our own ``IMember`` schema to the fullname user property.  We have a
          read-write mapping for the email, home_page/homepage and
          description/bio properties/fields for ``IMember``.
        
        
        Local roles
        -----------
        
        This package defines a local role provider that makes sure a logged in
        user gets the local Reader, Editor and Creator roles on the membrane
        object that belongs to that user.
        
        
        Workflow
        --------
        
        We define a simple workflow with pending/approved states.  A user can
        only login when in the approved state.
        
        Changelog
        =========
        
        1.0 (2014-10-16)
        ----------------
        
        - add a hook using a utility to add a password checker in own customization 
          code. we may want to provide an default, but yet not sure how it should 
          look like.
          [jensens]
        
        - make it easier to inherit passowrd for own behavior
          [jensens]
        
        - Remove grok dependency, refactor a bit to reduce complexity in one module.
          Attention: password related behaviour is now in own module. Needs update of
          customizations/own code after upgrade.
          [jensens]
        
        - Cleanup, pep8, plone-code-style, make tests fly again.
          [jensens]
        
        - Make get_full_name a method of MembraneUser so it can be easily customized.
          [cedricmessiant, vincentfretin]
        
        - Add French translations.
          [cedricmessiant]
        
        0.4 (2013-07-18)
        ----------------
        
        - Add upgrade step to update the behavior profile.  If you have
          installed the example content profile, you will see a warning in the
          Add-ons control panel that Plone does not know how to update this
          profile.  We recommend that you deactivate it and then activate it
          again.  Issue #7
          [maurits]
        
        - Rename content profile to example and rename behavior profile to
          default.  Issue #7.
          [maurits]
        
        - Add Spanish and Brazilian Portuguese translations. [hvelarde]
        
        
        0.3 (2013-05-15)
        ----------------
        
        - Fix installation problems when OS does not support symbolic links. Renamed
          ``README.txt`` to ``README.rst`` and updated ``setup.py`` to point to that
          file. This fixes #5.
          [saily]
        
        - Fix getattr in getPropertiesForUser to have a default value.
          [datakurre]
        
        
        0.2 (2013-02-19)
        ----------------
        
        - Keep constistent with plone's email login #12187, so don't lowercase email
          addresses.
          [saily]
        
        - Add basic membrane group behavior
          [saily]
        
        
        0.1 (2012-09-20)
        ----------------
        
        - Initial alpha release
        
Keywords: plone dexterity membrane
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Web Environment
Classifier: Framework :: Plone
Classifier: Framework :: Plone :: 4.2
Classifier: Framework :: Plone :: 4.3
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: GNU General Public License v2 (GPLv2)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Topic :: Software Development :: Libraries :: Python Modules
