1
2
3
4
5
6
7
8
9
10
11
12
13 """
14 AdministrativeRoleable.py
15
16 Created by Marc Irlandez on 2007-04-05.
17 """
18
19 from AccessControl import ClassSecurityInfo
20 from Products.ZenModel.AdministrativeRole import AdministrativeRole
21 from Globals import InitializeClass
22 from zope.event import notify
23 from Products.Zuul.catalog.events import IndexingEvent
24 from ZenossSecurity import *
25 from Products.ZenWidgets import messaging
26
28
29 security = ClassSecurityInfo()
30
31 security.declareProtected(ZEN_ADMINISTRATORS_VIEW,
32 'getAdministrativeRoles')
34 "Get the Admin Roles on this device"
35 return self.adminRoles.objectValuesAll()
36
37 security.declareProtected(ZEN_ADMINISTRATORS_EDIT,
38 'manage_addAdministrativeRole')
53
54 security.declareProtected(ZEN_ADMINISTRATORS_EDIT,
55 'manage_editAdministrativeRoles')
77
78
79 security.declareProtected(ZEN_ADMINISTRATORS_EDIT,
80 'manage_deleteAdministrativeRole')
82 "Delete a admin role to this device"
83 if isinstance(delids, basestring):
84 delids = [delids]
85 for userid in delids:
86 ar = self.adminRoles._getOb(userid, None)
87 if ar is not None: ar.delete()
88 self.manage_delLocalRoles((userid,))
89 self.setAdminLocalRoles()
90 self.index_object()
91 notify(IndexingEvent(self))
92 if REQUEST:
93 if delids:
94 messaging.IMessageSender(self).sendToBrowser(
95 'Admin Roles Deleted',
96 ('The following administrative roles have been deleted: '
97 '%s' % ", ".join(delids))
98 )
99 return self.callZenScreen(REQUEST)
100
102 """List the user and their roles on an object"""
103 return [ (ar.id, (ar.role,)) for ar in self.adminRoles() ]
104
105
107 """Hook for setting permissions"""
108 pass
109
110
111 InitializeClass(AdministrativeRoleable)
112