web/views/actions.py
branchstable
changeset 7782 40a49f4350a5
parent 7780 a1d5365fefc1
child 7797 a71618a75b53
child 7806 aa30c665bd06
--- a/web/views/actions.py	Tue Sep 13 14:54:00 2011 +0200
+++ b/web/views/actions.py	Tue Sep 13 15:40:06 2011 +0200
@@ -182,6 +182,15 @@
     category = 'moreactions'
     order = 15
 
+    @classmethod
+    def __registered__(cls, reg):
+        if 'require_permission' in reg.schema:
+            cls.__select__ = (one_line_rset() & non_final_entity() &
+                              (match_user_groups('managers')
+                               | relation_possible('require_permission', 'subject', 'CWPermission',
+                                                   action='add')))
+        return super(ManagePermissionsAction, cls).__registered__(reg)
+
     def url(self):
         return self.cw_rset.get_entity(self.cw_row or 0, self.cw_col or 0).absolute_url(vid='security')
 
@@ -427,6 +436,7 @@
 ## default actions ui configuration ###########################################
 
 addmenu = uicfg.actionbox_appearsin_addmenu
+addmenu.tag_subject_of(('*', 'require_permission', '*'), False)
 addmenu.tag_object_of(('*', 'relation_type', 'CWRType'), True)
 addmenu.tag_object_of(('*', 'from_entity', 'CWEType'), False)
 addmenu.tag_object_of(('*', 'to_entity', 'CWEType'), False)