[Checkins]
SVN: Sandbox/ulif/grok-adminui-with-principals/src/grok/admin/view
Added functionality to update principal data (including roles).
Uli Fouquet
uli at gnufix.de
Sun Aug 19 17:42:40 EDT 2007
Log message for revision 79003:
Added functionality to update principal data (including roles).
Changed:
U Sandbox/ulif/grok-adminui-with-principals/src/grok/admin/view.py
U Sandbox/ulif/grok-adminui-with-principals/src/grok/admin/view_templates/users.pt
-=-
Modified: Sandbox/ulif/grok-adminui-with-principals/src/grok/admin/view.py
===================================================================
--- Sandbox/ulif/grok-adminui-with-principals/src/grok/admin/view.py 2007-08-19 21:07:17 UTC (rev 79002)
+++ Sandbox/ulif/grok-adminui-with-principals/src/grok/admin/view.py 2007-08-19 21:42:40 UTC (rev 79003)
@@ -490,9 +490,34 @@
def setPassword(self, id, password):
pass
- def updatePrincipal(self, id, login, title, description):
- pass
+ def updatePrincipal(self, id, login, title, description, roles):
+ if id is None:
+ id = login
+ principals = self.getPrincipals()
+ if login not in [x.login for x in principals]:
+ self.msg = (u'Login `%s` does not exist.' % (login,))
+ return
+ for key in [login, title]:
+ if key is None or key == '':
+ self.msg= (u'Login and title must not be empty.')
+ return
+
+ # Update generic data...
+ principal = self.userfolder[id[len(self.userfolder.prefix):]]
+ principal.title = title
+ principal.description = description
+
+ # Update roles...
+ role_manager = IPrincipalRoleManager(self.context)
+ role_manager = removeSecurityProxy(role_manager)
+ for role in self.roles:
+ if role in roles:
+ role_manager.assignRoleToPrincipal(role, id)
+ else:
+ role_manager.unsetRoleForPrincipal(role, id)
+ self.msg=u'Principal `%s` successfully updated.' % (title,)
+
def update(self, id=None, login=None, title=None, description=None,
passwd=None, roles=[], addprincipal=None, delprincipal=None,
setpassword=None, update=None):
Modified: Sandbox/ulif/grok-adminui-with-principals/src/grok/admin/view_templates/users.pt
===================================================================
--- Sandbox/ulif/grok-adminui-with-principals/src/grok/admin/view_templates/users.pt 2007-08-19 21:07:17 UTC (rev 79002)
+++ Sandbox/ulif/grok-adminui-with-principals/src/grok/admin/view_templates/users.pt 2007-08-19 21:42:40 UTC (rev 79003)
@@ -29,8 +29,10 @@
</tr>
<tr>
<td><label for="login">Login:</label></td>
- <td><input type="text" name="login"
+ <td><input type="text" name="login" disabled="disabled"
tal:attributes="value principal/login" />
+ <input type="hidden" name="login"
+ tal:attributes="value principal/login" />
</td>
<td><label for="roles">Roles:</label></td>
</tr>
More information about the Checkins
mailing list