There are now membership hooks defined, and a basic membership source defined for exUserFolder. This is a first stab at this, so please be careful :-) Membership adds a level of complexity to everything, and basically is a controlled way of breaching your security. You will need to prepare a few things before trying to add an exUserFolder with Membership support; a) You will need a MailHost object available b) You will need to define some methods for Membership to use i) a Login Page ii) a Change Password Page iii) a Signup Page iv) a Forgot My Password Page (optional) v) a change Properties Page (optional) These should live at the same level as your acl_user (i.e. not inside). These should be fairly simple, I've included some examples below. These should just wrap the ones below acl_users. There will be methods you can edit to get all your fields and layout done. c) If you want the results pages from Signup, Change Password, etc to fit your site, you'll need to add a MessageDialog document in the contents of the XUF. See FAQ 15 for more When you see the creation form, obviously some of the options are mutually exclusive. e.g. You can't choose system defined passwords, and have the system email a hint, if they forgot their password. So try to pick sane combinations of options. If you choose to have Home Directories, basicMemberSource will create the path you provide, so you don't need to do that in advance. If you want to have skeleton files copied to their homedir you'll need to have that directory (it can be empty) setup and ready to go, before the first user signs up. WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING If you get basicMembershipSource to create Home Directories for your users, it will create a 'Folder' and it will give the user management permissions on that Folder. This means that they will be able to add any object you can, just at a level below this. You should create/have a proper HomeFolder object that is restricted in what is available for adding, and change makeHomeDir() in basicMemberSource.py to create one of those. I will look at creating a restricted HomeDirectory Object in a later release, and allow you to add and remove meta_types from it. WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ======================================================================== ------------------------------------------------------------------------ LoginForm ------------------------------------------------------------------------ <dtml-with acl_users> <dtml-var docLogin> </dtml-with> ------------------------------------------------------------------------ ------------------------------------------------------------------------ ChangePasswordForm ------------------------------------------------------------------------ <dtml-var standard_html_header> <dtml-with acl_users> <dtml-with currentMembershipSource> <dtml-var PasswordForm> </dtml-with> </dtml-with> <dtml-var standard_html_footer> ------------------------------------------------------------------------ ------------------------------------------------------------------------ SignupForm ------------------------------------------------------------------------ <dtml-var standard_html_header> <dtml-with acl_users> <dtml-with currentMembershipSource> <dtml-var SignupForm> </dtml-with> </dtml-with> <dtml-var standard_html_footer> ------------------------------------------------------------------------ ForgotMyPassword ------------------------------------------------------------------------ <dtml-var standard_html_header> <form action="acl_users/manage_forgotPassword" method="POST"> Username: <input type="text" name="username"> </form> <dtml-var standard_html_footer> ------------------------------------------------------------------------ ChangePropertiesForm ------------------------------------------------------------------------ <dtml-var standard_html_header> <h2> Changing Properties for <dtml-var AUTHENTICATED_USER></h2> <dtml-with acl_users> <form action="acl_users/manage_changeProps" method="POST"> <hr> <h2>Properties</h2> <table border> <tr> <th>Property Name</th><th>Value</th> </tr> <dtml-in "AUTHENTICATED_USER.listProperties()"> <tr> <td><dtml-var sequence-item></td> <td><input name="user_<dtml-var sequence-item>" value="<dtml-var "AUTHENTICATED_USER.getProperty(_['sequence-item'])">"></td> </tr> </dtml-in> </table> <input type="submit" value=" Change "> </form> </dtml-with> <dtml-var standard_html_footer> ------------------------------------------------------------------------