128 |
128 |
129 # generic secondary actions ################################################### |
129 # generic secondary actions ################################################### |
130 |
130 |
131 class ManagePermissionsAction(Action): |
131 class ManagePermissionsAction(Action): |
132 id = 'managepermission' |
132 id = 'managepermission' |
133 __select__ = one_line_rset() & match_user_groups('managers') |
133 __select__ = one_line_rset() & non_final_entity() & match_user_groups('managers') |
134 |
134 |
135 title = _('manage permissions') |
135 title = _('manage permissions') |
136 category = 'moreactions' |
136 category = 'moreactions' |
137 order = 100 |
137 order = 100 |
138 |
138 |
139 @classmethod |
139 @classmethod |
140 def registered(cls, vreg): |
140 def registered(cls, vreg): |
141 super(ManagePermissionsAction, cls).registered(vreg) |
141 super(ManagePermissionsAction, cls).registered(vreg) |
142 if 'require_permission' in vreg.schema: |
142 if 'require_permission' in vreg.schema: |
143 cls.__select__ |= relation_possible('require_permission', 'subject', 'EPermission', |
143 cls.__select__ = (one_line_rset() & non_final_entity() & |
144 action='add') |
144 (match_user_groups('managers') |
|
145 | relation_possible('require_permission', 'subject', 'EPermission', |
|
146 action='add'))) |
145 return super(ManagePermissionsAction, cls).registered(vreg) |
147 return super(ManagePermissionsAction, cls).registered(vreg) |
146 |
148 |
147 def url(self): |
149 def url(self): |
148 return self.rset.get_entity(0, 0).absolute_url(vid='security') |
150 return self.rset.get_entity(0, 0).absolute_url(vid='security') |
149 |
151 |