appypod-rattail/gen/wrappers/GroupWrapper.py

50 lines
1.7 KiB
Python
Raw Normal View History

2011-11-28 15:50:01 -06:00
# ------------------------------------------------------------------------------
from appy.gen import WorkflowOwner
from appy.gen.wrappers import AbstractWrapper
2011-11-28 15:50:01 -06:00
# ------------------------------------------------------------------------------
class GroupWrapper(AbstractWrapper):
workflow = WorkflowOwner
2011-11-28 15:50:01 -06:00
def showLogin(self):
'''When must we show the login field?'''
if self.o.isTemporary(): return 'edit'
return ('view', 'result')
2011-11-28 15:50:01 -06:00
def showGroups(self):
'''Only the admin can view or edit roles.'''
return self.user.has_role('Manager')
2011-11-28 15:50:01 -06:00
def validateLogin(self, login):
'''Is this p_login valid?'''
return True
def getGrantableRoles(self):
'''Returns the list of roles that the admin can grant to a user.'''
res = []
for role in self.o.getProductConfig().grantableRoles:
res.append( (role, self.translate('role_%s' % role)) )
return res
def validate(self, new, errors):
'''Inter-field validation.'''
return self._callCustom('validate', new, errors)
def addUser(self, user):
'''Adds a p_user to this group.'''
# Update the Ref field.
self.link('users', user)
def removeUser(self, user):
'''Removes a p_user from this group.'''
self.unlink('users', user)
def onEdit(self, created):
# If the group was created by anon, anon can't stay its Owner.
if 'anon' in self.o.__ac_local_roles__:
del self.o.__ac_local_roles__['anon']
if 'system' in self.o.__ac_local_roles__:
del self.o.__ac_local_roles__['system']
2011-11-28 15:50:01 -06:00
return self._callCustom('onEdit', created)
# ------------------------------------------------------------------------------