2005-11-11 Rob Miller <ra@burningman.com> (rafrombrc)

   * changed permission guarding 'visible_ids' field to ensure that
     a member can always access his own

2005-11-06 Rob Miller <ra@burningman.com> (rafrombrc)

   * schema changes to better match the default Plone 2.1 member
     properties

2005-10-15 Rob Miller <ra@burningman.com> (rafrombrc)

   * removed the 'folder_contents' method that was overriding the
     default folder_contents template

2005-09-30 Rob Miller <ra@burningman.com> (rafrombrc)

   * added 'fullname' criteria to member search page

   * changed member_search_results to go directly to the
     member catalog instead of using mtool.searchForMembers
     (means that search can now supports searching on any
      arbitrary member catalog index)

2005-09-21 Rob Miller <ra@burningman.com> (rafrombrc)

   * fixed BaseMember inheritance bug (thanks to azazel)
     (http://plone.org/development/teams/developer/groups/issues/207)

   * fixed csv import bug when using different default member
     types (thanks to egoens)
     (http://plone.org/development/teams/developer/groups/issues/208/)

   * better integration with ATSchemaEditorNG:

     - added support for 'regfield' management

     - better support for USE_SCHEMA_EDITOR being set to True after
       CMFMember has already been in use

2005-09-19 Rob Miller <ra@burningman.com> (rafrombrc)

   * 'roles' field edit_accessor and vocabulary bug fixes

   * removed the 'Plone setup' action from migration
     since Plone has moved this out of the personal bar

   * filtering member types that aren't installed in the
     Plone site from showing up in the preferences

2005-09-13 Rob Miller <ra@burningman.com> (rafrombrc)

   * removed getProperty call from MembershipTool.getMemberInfo()
     to avoid explicit security checks

   * added member data configlet

   * plone 2.0 member management interface fixes

   * improved multiple schemata registration support
     (thanks to mdrev)

2005-08-27 Rob Miller <ra@burningman.com> (rafrombrc)

   * added support for custom default member default

2005-08-24 Rob Miller <ra@burningman.com> (rafrombrc)

   * lots of work getting Plone user and group management
     interface to work correctly

2005-08-18 Rob Miller <ra@burningman.com> (rafrombrc)

   * added some multple member type niceties

   * improvements in title field handling, added fileAs() hook to
     allow support for alternate member filing policies

2005-08-17 Rob Miller <ra@burningman.com> (rafrombrc)

   * renamed join_form.cpt to reg_form.cpt, used join_form id as an
     alias for createMember so that links to join_form in a regular
     Plone site will keep working when they upgrade to CMFMember.

   * changed createMember to a .cpy to allow for better traversal
     management.

   * added cmfmember_plone2_0 skin for backwards compatible templates

   * added 'future' module to use for future-compatibility monkey
     patching

   * changed custom schema migration to actually instantiate a schema
     object rather than generate a string for eval

   * future patched StringField to support raw mode for custom schema
     migration

2005-07-28 Rob Miller <ra@burningman.com> (rafrombrc)

   * ATSE is now an optional dependency

   * unit tests use ATSE (or not) appropriately

   * portal_membership.createMemberArea fixes

   * some Member object copy and rename fixes

   * all unit tests now work w/ Plone 2.1

2005-04-18 Rob Miller <ra@burningman.com> (rafrombrc)

   * reindex member when setSecurityProfile is called

   * fix up setSecurityProfile so it no longer caches the security info
     (i.e. roles, domains, password) on the member object, always
     retrieving from the user object

2005-04-03 Rob Miller <ra@burningman.com> (rafrombrc)

   * got create member area functionality working, w/ unit tests to prove

   Unit test love

   * testLogin needs to call 'logged_in' script instead of 'login_success'
     template since last_login_time calculation has been fixed in CMFPlone

   * testImport only needs to test that the expected users are imported,
     not whether or not members yet exist for admin and portal owner users

   * removed 'portal_owner' from search result comparison in
     testMemberSearch.testSearchByLoginTime, since portal_owner is never
     logged in

   * changed testMigration.propName from a lambda to a 'def' in for
     readability

2005-1-17 whit morriss( whit@burningman.com )

    Debugging and simplifying

    * Removed unused imports from MemberDataContainer

    * added portal factory support to toolbox.SetupMember

    * in MemberDataContainer and ControlTool, consolidated schema and attribute references to member type 
      to use default specified in config, and properly bound setDefaultType to schema ( rather that a non-setting override )

    * on upgrade, add code for ControlTool 
      to add default type information to MemberDataContainer
      if specified

    * fixed migration test so it would run as a standalone test again

2004-11-11 whit morriss( whit@burningman.com )

    * set default behavior on MemberDataContainer.registerType to default to False 
      and not default to setting registeredType as default member type

2004-09-16  Rob Miller <ra@burningman.com> (rafrombrc)

    * Removed simple_member_workflow.  This was a single
      state workflow that was unused (and practically
      unusable)

    * lots of other miscellaneous improvements... I'm not
      going to track them all here anymore, but i'm making
      good notes when committing, please see CVS history
      for details

2004-08-04  Rob Miller <ra@burningman.com> (rafrombrc)

    * Member object now empties the stored 'password'
      attribute as soon as a permanent user object
      is created (password retrieval is delegated to
      the user object)

2004-08-02  Rob Miller <ra@burningman.com> (rafrombrc)

    * MemberDataContainer.getMemberSchema() now returns
      an acquisition-wrapped schema to work with the newly
      functioning Archetypes security

2004-07-26  Rob Miller <ra@burningman.com> (rafrombrc)

    * Slight changes to migration code to preserve any custom
      portal_membership actions  

2004-06-25  Rob Miller <ra@burningman.com> (rafrombrc)

    * Added 'absolute_url' metadata to the member_catalog brains
      objects

2004-06-23  Rob Miller <ra@burningman.com> (rafrombrc)

    * Removed GRUF dependency by copying 'unique' utility
      method to Products.CMFMember.utils

2004-06-22  Rob Miller <ra@burningman.com> (rafrombrc)

    * Improved MemberDataContainer.getMemberSchema() so that it
      returns the schema for the default member type instead of
      the hard-coded Member type

    * Changed some imports to be from Archetypes.public instead of
      other Archetypes modules (which are subject to change)

2004-06-03  Rob Miller <ra@burningman.com> (rafrombrc)

    * Changed migration process to use quick installer's
      reinstall method instead of uninstall/install

    * Applied alecm's monkeypatch to acl_users to allow for
      deletion of the Member object when the Plone interface
      is used to delete users (issue 48)

2004-06-02  Rob Miller <ra@burningman.com> (rafrombrc)

    * Fixed install script so it doesn't barf on a pre-existing
      member_catalog (issue 53)

    * Modified default workflows to explicitly give View permission
      to Members (not just Authenticated) and fixed typo in
      Member.isListed() (issue 51)

    * Integrated alecm's patch to improve group handling for temporary
      user objects (i.e. at registration time) (issue 47)

    * added private declaration to Member.setMemberProperties() method

    * added missing 'privacy' to email field widget description

2004-06-01  Rob Miller <ra@burningman.com> (rafrombrc)

    * Added 'expose_var_schema' flag to MemberDataContainer (0 by 
      default) to allow control of exposure of variable schema support.
      (thanks to bbollenbach for finding this hole and implementing
      a partial fix)

    * Added address validation for all MailHost usage.

2004-05-07  Bill Schindler <bill@bitranch.com>  (bitranch)

    * Member.view() was failing in a VHM site. Stripping off the
      leading slash on the path returned from the action now allows
      restrictedTraverse to look in the right places.

    * The groups field was limping badly. Added special handling for
      editing groups on a pending member.

      Also getRawGroups() is the default name of the field's edit_accessor.
      The name collision blocked the field from showing the current
      settings. Fixed by explicitly setting the group field's
      edit_accessor to getGroups.

2004-05-06  Bill Schindler <bill@bitranch.com>  (bitranch)

    * Put 'mail_me' back into the Member schema and condition the
      widget to only display on join_form. The static 'mail_me'
      field was showing up on all fieldset pages and needed too
      many special conditions to make it work with fieldsets.

    * Password fields are now also conditioned off of the site
      properties validate_email property. The registered email is
      sent when validate_email is set -- no matter what the state
      of 'mail_me' is.

    * Added member_edit template to clean up the edit screen when
      it's being accessed under preferences. (member_edit is a set
      of macros called by base_edit -- no Archetypes code was harmed
      in this change.)

    * Added a prefs_user_details script to redirect the preferences
      to the member object's base_edit. The member_edit template needs
      to be conditioned to look a little better when it's called this
      way.

2004-05-05  Bill Schindler <bill@bitranch.com>  (bitranch)

    * Set a condition on the skins field so that it doesn't display
      when it's turned off for the site.

    * Condition the password fields to only display on the join_form.
      (The user's password is changed using a separate form under
      preferences.)

    * Clean up description text in the schema so it mostly matches the
      text displayed in Plone 2.

2004-05-02  Rob Miller <ra@burningman.com> (rafrombrc)

    * Removed 'mail_me' from the Member schema and instead
      just made it a UI hook in join_form

2004-04-29  Joshua LaPlace <josh@clearnoodle.com> (swampmonkey)

    * Changed MembershipTool.addMember to check for typeName on 
      memberdata_tool and use that instead of 'Member'

2004-04-19  Rob Miller <ra@burningman.com> (rafrombrc)

    * Finished the custom memberdata migration.  Selections and multiple
      selections come across correctly, including Vocabularies.  Tokens
      might still be a little wonky, but who uses tokens, anyway?  :-P

2004-04-16  Rob Miller <ra@burningman.com> (rafrombrc)
            Whit Morriss <whit@burningman.com> (brcwhit)

    * Lots of improvements to the migration unit tests to
      make sure the custom memberdata migration works correctly.
      The test passes, but there are still some known issues
      with some of the weirder property types (tokens, etc.)

2004-04-14  Rob Miller <ra@burningman.com> (rafrombrc)

    * Modified the Plone->1.0 migration code to migrate custom
      memberdata into the schema of CMFMember's Member class.

2004-04-06  Bill Schindler <bill@bitranch.com> (bitranch)

    * Moved mail password logic from Member to RegistrationTool to kill the
      permissions errors coming from the dtml template.

    * Rewrote the mail_password_template to make it work with CMFMember and
      get around a couple of other permission problems. Gave it full legal
      email headers while I was at it, so it can use an rfc-abiding email
      server rather than generating bounces.

2004-04-05  Bill Schindler <bill@bitranch.com> (bitranch)

    * VariableSchemaSupport.py:
      The field._properties dict is a constant. Switched to use
      field.__dict__ instead to detect changes within the schema. (This
      should probably be fixed in Archetypes, too.)

    * Member.py:
      Changed attributes on fields after registration. This allows fields to be
      (for example) required during registration, but not required afterwards.
      This appears to fix the problem with Archetypes 1.2.5 validation
      breaking on a required id/user name when updating user preferences.

2004-04-04  Bill Schindler <bill@bitranch.com> (bitranch)

    * Changed the name attributes on the join_form buttons so they can
      work with CMFFormController.

    * VariableSchemaSupport.py:
      Major clean-up. Tried to bring VariableSchemaSupport back in line with
      current versions of Archetypes. Made Schemata() return schematas in
      proper order.

2004-04-01 Bill Schindler  <bill@bitranch.com> (bitranch)

    * README.txt: First pass at a real README.

2004-03-31  Bill Schindler <bill@bitranch.com> (bitranch)

    * join_form: Added confirm_password to hidden fields for fieldsets
      so that the form validation doesn't get hung up on validating the
      hidden password.

2004-03-31  Rob Miller <ra@burningman.com> (RaFromBRC)

    * changed the valid_roles() and getRoles() implementation so that
      they do not filter out the auto-added roles.  added a getFilteredRoles()
      method that does

2004-03-30  Rob Miller <ra@burningman.com> (RaFromBRC)

    * added "cmfmember_ctrl" skin directory, moved all skin templates
      related to the ControlTool into this directory

    * modified the installer to install all skins, but to only add
      "cmfmember_ctrl" to the skins path

    * modified default plone -> CMFMember migration path to install
      the additional cmfmember skins at migration time

2004-03-29  Rob Miller <ra@burningman.com> (RaFromBRC)

    * changed member_auto_workflow to have an auto_register transition
      instead of register.  this transition checks the value of the "mail_me"
      attribute when deciding whether or not to send the registration email
      notifier

2004-03-21  Bill Schindler <bill@bitranch.com>  (bitranch)

    * Member.py: Changed FieldList to Schema to match current Archetypes
      usage.

2004-03-12  Bill Schindler <bill@bitranch.com>  (bitranch)

    * MemberDataContainer.py: Use a real vocab method instead of a field
      accessor -- an accessor gets bad params when called as a vocab method.

2004-03-09  Rob Miller <ra@burningman.com> (RaFromBRC)

    * Replaced single member_workflow with member_auto_workflow and
      member_approval_workflow

2004-02-24  Sasha Vincic <sasha@systemvaruhuset.com> sVincic
 
    * Added Migration tool where all migrations are handled. After a install 
      you need to manually do a migration. This is needed since you may 
      have your own Member type to migrate too. The tool is ready for external
      migrations and setup such us imports.

    * Migrations for Plone->CMFMember and OldCMFMember->CMFMember are included.
      OldCMFMember is when MemberDataTool wasn't a container.

    * Simple CSV import available under setup tab Plone controlpanel ->
      cmfmember migration tool. See CMFMember/setup/ImportMembers.py for
      file format and path. This link disappears after zope restart due
      to PloneControlPanel behavior -- see  http://plone.org/collector/2749 .
      You can restore it by reinstalling CMFMember.

    * Installation of CMFMember handles installation of dependencies, you
      only need to check CMFMember in Quickinstaller.

    * Plone setup link is restored.

2004-02-09  Rob Miller <ra@burningman.com> (rafrombrc)

    * major overhaul to registration process, refactored
      to use Archetypes UI framework

    * refactored security setup

2004-02-08  Rob Miller <ra@burningman.com> (rafrombrc)

    * Removed unnecessary skins, minor cleanup re: bringing CMFMember current
      to plone2

2004-02-08  Geoff Davis <geoff@geoffdavis.net> (plonista)

    * Applied patch from Volodymyr Cherepanyak to Member._getProperty

    * Merged in fixes from HEAD

... lots of fixes by Helge Tesdal, Rob Miller, Whit

2003-12-16  Geoff Davis <geoff@geoffdavis.net> (plonista)

    * Fixed getPersonalPortrait in MembershipTool.py

2003-12-11  Geoff Davis <geoff@geoffdavis.net> (plonista)

    * Fixed ownership of member objects after copy / rename

2003-10-03  Geoff Davis <geoff@geoffdavis.net> (plonista)

    * Check for presence of portal_groups in MemberDataTool in case we're
      working with Plone 1.0.x.

2003-09-09  Geoff Davis <geoff@geoffdavis.net> (plonista)

    * Applied some fixes contributed by Robert Rotterman and Volodymyr 
      Cherepanyak:

    * Modified methods used in Member.py to access and set user passwords / 
      roles / domains to make things work with GRUF.

    * Fixed Member.getSchema so that things work with users defined outside the
      portal acl_users folder.

    * Fixed migration in MemberData to work better with GRUF

    * Modified MemberData.getProperty so that it first looks for default values
      in MemberData properties and then falls back to the defaults defined in
      the Member object schema.  This lets one set member defaults TTW.

2003-07-21  Geoff Davis <geoff@geoffdavis.net> (plonista)

    * Factory tool now gives ownership of new objects to the currently 
      authenticated member.

    * Modified MemberData.getProperty and Member.getProperty to make them 
      consistent with the CMFCore behavior when a Member property is not found.

    * Added a missing import to Member.py.

    * Made some fixes to Install to make re-installations work.

    * Made Member.getRoles and Member.getDomains public for consistency with
      CMFCore MemberData.
     
2003-07-02  Geoff Davis <geoff@geoffdavis.net> (plonista)

    * Added mechanism to log tracebacks for exceptions thrown by methods called 
      by workflow to aid in debugging (ideally we should filter out 
      ConflictErrors).

    * Refactored test.py into a sequence of standalone tests.  All tests 
      now run except for test_MemberData (and this might run with CMF 1.4 --
      I haven't checked).

2003-06-24  Geoff Davis <geoff@geoffdavis.net> (plonista)

    * Removed test for mail_me from Member.register().  If you want to test for
      the mail_me flag, at the very least, make sure that the user had the
      ability to modify their password at startup (check the permissions).
      Alternatively, you can customize the registration tool's registeredNotify
      or override register in a subclass.

2003-06-22  Geoff Davis <geoff@geoffdavis.net> (plonista)

    * Fixed tabs in portal_memberdata.  You now will get the standard tabs after
      creation.  Adding actions now works, too.

    * Enabled the option to mail your password to yourself when you change it.

    * Minor code cleanup in the factory tool.

    * Code cleanup in the main test (which still doesn't run because of some
      evil code in Archetypes)

2003-06-13  Geoff Davis <geoff@geoffdavis.net> (plonista)

    * Fixed a couple of pretty serious bugs in Member.py that had to do with
      deleting members with user objects that come from outside the current
      portal.  First, the test for the source of the user objects' acl_users 
      folder was broken, which meant that one could delete the site administrator.
      Even worse, when one deleted the site administrator, all the objects they
      owned were deleted recursively, which included the portal itself!  This
      wreaked all sorts of havoc and is now fixed.

    * Updated skins/content_edit.py to work with changes in Archetypes'
      handling of schemata

2003-06-10  Geoff Davis <geoff@geoffdavis.net> (plonista)

    * MemberDataTool.py: removed a spurious declaration of registerType and 
    cleaned up the remaining registerType

    * VariableSchemaSupport.py: fixed declaration for getSchema

    * Extensions/Install.py: fixed portal_types icons for MemberArea and 
    TempFolder

    * types/Member.py: 

        - changed formtooltips from an ObjectField to a BooleanField

        - made mail_me read only and require EDIT_PASSWORD_PERMISSION to write

        - improved validate_id error messages

        - updated migration code to reflect changes to Field.py in Archetypes

    * tests/test.py, test_MemberDataTool.py, test_migration.py: 

        - fixed initialization of Zope in unit tests, so all should run.
        Something in archetypes is messing up test.py, and test_MemberDataTool 
        only works with CMF 1.4, but test_migration now works
