Hi, We get the following permissions error when attempting to set the id of our custom remember.content.member.Member subclass either by using an event subscriber, abusing the Archetypes validation hooks or setting _at_rename_after_creation=True and overriding generateNewId:
2008-06-03T18:08:38 ERROR Zope.SiteErrorLog http://localhost:8080/durban/portal_memberdata/portal_factory/eThekwiniMember/ethekwinimember.2008-06-03.1147579855/reg_form Traceback (innermost last): Module ZPublisher.Publish, line 115, in publish Module ZPublisher.mapply, line 88, in mapply Module ZPublisher.Publish, line 41, in call_object Module Products.CMFPlone.FactoryTool, line 369, in __call__ Module ZPublisher.mapply, line 88, in mapply Module ZPublisher.Publish, line 41, in call_object Module Products.CMFFormController.FSControllerPageTemplate, line 90, in __call__ Module Products.CMFFormController.BaseControllerPageTemplate, line 28, in _call Module Products.CMFFormController.ControllerBase, line 232, in getNext - __traceback_info__: ['id = reg_form', 'status = success', 'button=register', 'errors={}', 'context=<eThekwiniMember at ethekwinimember.2008-06-03.1147579855>', "kwargs={'portal_status_message': 'Changes saved.'}", 'next_action=None', ''] Module Products.CMFFormController.Actions.TraverseTo, line 38, in __call__ Module ZPublisher.mapply, line 88, in mapply Module ZPublisher.Publish, line 41, in call_object Module Products.CMFFormController.FSControllerPythonScript, line 104, in __call__ Module Products.CMFFormController.Script, line 145, in __call__ Module Products.CMFCore.FSPythonScript, line 108, in __call__ Module Shared.DC.Scripts.Bindings, line 311, in __call__ Module Shared.DC.Scripts.Bindings, line 348, in _bindAndExec Module Products.CMFCore.FSPythonScript, line 164, in _exec Module None, line 5, in do_register - <FSControllerPythonScript at /durban/do_register used for /durban/ portal_memberdata/portal_factory/eThekwiniMember/ethekwinimember. 2008-06-03.1147579855> - Line 5 Module Products.Archetypes.BaseObject, line 649, in processForm Module Products.Archetypes.BaseObject, line 752, in _renameAfterCreation Module Products.remember.content.member, line 100, in setId Module Products.Archetypes.BaseObject, line 236, in setId Module OFS.CopySupport, line 344, in manage_renameObject Copy Error: <HTML> <HEAD> <TITLE>Not Supported</TITLE> </HEAD> <BODY BGCOLOR="#FFFFFF"> <FORM ACTION="manage_main" METHOD="GET" > <TABLE BORDER="0" WIDTH="100%" CELLPADDING="10"> <TR> <TD VALIGN="TOP"> <BR> <CENTER><B><FONT SIZE="+6" COLOR="#77003B">!</FONT></B></CENTER> </TD> <TD VALIGN="TOP"> <BR><BR> <CENTER> The action against the <em>ethekwinimember.2008-06-03.1147579855</ em> object could not be carried out. One of the following constraints caused the problem: <br><br>The object does not support this operation.<br><br>-- OR --<br><br>The currently logged-in user does not have the <b>Copy or Move</b> permission respective to the object. </CENTER> </TD> </TR> <TR> <TD VALIGN="TOP"> </TD> <TD VALIGN="TOP"> <CENTER> <INPUT TYPE="SUBMIT" VALUE=" Ok "> </CENTER> </TD> </TR> </TABLE> </FORM> </BODY></HTML> My analysis is that the Anonymous user doesn't have the 'Copy or Move' permission on portal_membership- how can I change this? I've already given the Anonymous user the following permissions: Add portal member Copy or Move membrane: Edit member id membrane: Register member remember: Add FolderishMember Any ideas? thanks michael On May 13, 12:48 am, Rob Miller <[EMAIL PROTECTED]> wrote: > HodrenNaidoo wrote: > > I wanna create a new user profile but I want the username to be generated > > using the first name and second name. Is there a way this can be done? > > yes, it can be done, it may have a few tricky corners. the id field of the > member object is what is used as the username, by default, and id fields are a > bit special; they're roughly the ZODB equivalent of a relational database's > primary key. you have to have an id, and once you set the id you shouldn't > change it. > > i'd probably do something like this: > > - tweak the id widget's 'visible' settings so it no longer shows up on the > edit forms (also make regfield=0 so it doesn't show up on join form). > > - create an IObjectAdded event subscriber that generates the id value and sets > it on the member object. probably want to check to make sure that the id is > an auto-generated one, so you don't accidentally change the id should this > event ever get fired when you don't expect it to. > > keep in mind that if you allow users to edit their first and last names, > there's a possibility that the id and the names may become out of sync. > > -r > > I was thinking of inserting an algorithm that runs once the register button > has been clicked. Can this be done? Thanks in advance > > > > > -- > > Archive:http://www.openplans.org/projects/remember/lists/remember/archive/200... > > To unsubscribe send an email with subject unsubscribe to [EMAIL PROTECTED] > > Please contact [EMAIL PROTECTED] for questions. > > -- > Archive:http://www.openplans.org/projects/remember/lists/remember/archive/200... > To unsubscribe send an email with subject unsubscribe to [EMAIL PROTECTED] > Please contact [EMAIL PROTECTED] for questions. -- Archive: http://www.openplans.org/projects/remember/lists/remember/archive/2008/06/1212753067279 To unsubscribe send an email with subject unsubscribe to [EMAIL PROTECTED] Please contact [EMAIL PROTECTED] for questions.
