def install_permission_handler(self): from lino.core.perms import make_view_permission_handler # ~ if self.name == 'newcomers_left': # required.has_key('user_groups'): #~ logger.info("20121130 install_permission_handler() %s %s",self,self.required) #~ if self.required.get('user_groups') == 'integ': #~ raise Exception("20121130") self.allow_read = curry(make_view_permission_handler( self, True, self.debug_permissions, **self.required), self)
def __init__(self, actor, action): if not isinstance(action, actions.Action): raise Exception("%s : %r is not an Action" % (actor, action)) self.action = action self.actor = actor required = dict() if action.readonly: required.update(actor.required) #~ elif isinstance(action,InsertRow): #~ required.update(actor.create_required) elif isinstance(action, actions.DeleteSelected): required.update(actor.delete_required) else: required.update(actor.update_required) required.update(action.required) #~ print 20120628, str(a), required #~ def wrap(a,required,fn): #~ return fn debug_permissions = actor.debug_permissions and \ action.debug_permissions if debug_permissions: if settings.DEBUG: logger.info("debug_permissions active for %r (required=%s)", self, required) else: raise Exception( "settings.DEBUG is False, but `debug_permissions` " "for %r (required=%s) is active." % (self, required)) from lino.core.perms import ( make_permission_handler, make_view_permission_handler) self.allow_view = curry(make_view_permission_handler( self, action.readonly, debug_permissions, **required), action) self._allow = curry(make_permission_handler( action, actor, action.readonly, debug_permissions, **required), action)