entities/authobjs.py
changeset 5174 78438ad513ca
parent 4835 13b0b96d7982
child 5423 e15abfdcce38
equal deleted inserted replaced
5173:73760bbb66bd 5174:78438ad513ca
    94 
    94 
    95     def owns(self, eid):
    95     def owns(self, eid):
    96         try:
    96         try:
    97             return self._cw.execute(
    97             return self._cw.execute(
    98                 'Any X WHERE X eid %(x)s, X owned_by U, U eid %(u)s',
    98                 'Any X WHERE X eid %(x)s, X owned_by U, U eid %(u)s',
    99                 {'x': eid, 'u': self.eid}, 'x')
    99                 {'x': eid, 'u': self.eid})
   100         except Unauthorized:
   100         except Unauthorized:
   101             return False
   101             return False
   102     owns = cached(owns, keyarg=1)
   102     owns = cached(owns, keyarg=1)
   103 
   103 
   104     def has_permission(self, pname, contexteid=None):
   104     def has_permission(self, pname, contexteid=None):
   105         rql = 'Any P WHERE P is CWPermission, U eid %(u)s, U in_group G, '\
   105         rql = 'Any P WHERE P is CWPermission, U eid %(u)s, U in_group G, '\
   106               'P name %(pname)s, P require_group G'
   106               'P name %(pname)s, P require_group G'
   107         kwargs = {'pname': pname, 'u': self.eid}
   107         kwargs = {'pname': pname, 'u': self.eid}
   108         cachekey = None
       
   109         if contexteid is not None:
   108         if contexteid is not None:
   110             rql += ', X require_permission P, X eid %(x)s'
   109             rql += ', X require_permission P, X eid %(x)s'
   111             kwargs['x'] = contexteid
   110             kwargs['x'] = contexteid
   112             cachekey = 'x'
       
   113         try:
   111         try:
   114             return self._cw.execute(rql, kwargs, cachekey)
   112             return self._cw.execute(rql, kwargs)
   115         except Unauthorized:
   113         except Unauthorized:
   116             return False
   114             return False
   117 
   115 
   118     # presentation utilities ##################################################
   116     # presentation utilities ##################################################
   119 
   117