web/views/actions.py
branchtls-sprint
changeset 822 e3d8db01f3f5
parent 786 a261fee1bbde
child 824 a5e6acffde30
equal deleted inserted replaced
821:78cc1682c3a4 822:e3d8db01f3f5
   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