diff -r e95cfd5eca61 -r 40a49f4350a5 web/views/actions.py --- 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)