entities/authobjs.py
brancholdstable
changeset 5993 50e1a6ad3e98
parent 5426 0d4853a6e5ee
child 5556 9ab2b4c74baf
equal deleted inserted replaced
5487:3ab2682a4b37 5993:50e1a6ad3e98
   107 
   107 
   108     def owns(self, eid):
   108     def owns(self, eid):
   109         try:
   109         try:
   110             return self._cw.execute(
   110             return self._cw.execute(
   111                 'Any X WHERE X eid %(x)s, X owned_by U, U eid %(u)s',
   111                 'Any X WHERE X eid %(x)s, X owned_by U, U eid %(u)s',
   112                 {'x': eid, 'u': self.eid}, 'x')
   112                 {'x': eid, 'u': self.eid})
   113         except Unauthorized:
   113         except Unauthorized:
   114             return False
   114             return False
   115     owns = cached(owns, keyarg=1)
   115     owns = cached(owns, keyarg=1)
   116 
   116 
   117     def has_permission(self, pname, contexteid=None):
   117     def has_permission(self, pname, contexteid=None):
   118         rql = 'Any P WHERE P is CWPermission, U eid %(u)s, U in_group G, '\
   118         rql = 'Any P WHERE P is CWPermission, U eid %(u)s, U in_group G, '\
   119               'P name %(pname)s, P require_group G'
   119               'P name %(pname)s, P require_group G'
   120         kwargs = {'pname': pname, 'u': self.eid}
   120         kwargs = {'pname': pname, 'u': self.eid}
   121         cachekey = None
       
   122         if contexteid is not None:
   121         if contexteid is not None:
   123             rql += ', X require_permission P, X eid %(x)s'
   122             rql += ', X require_permission P, X eid %(x)s'
   124             kwargs['x'] = contexteid
   123             kwargs['x'] = contexteid
   125             cachekey = 'x'
       
   126         try:
   124         try:
   127             return self._cw.execute(rql, kwargs, cachekey)
   125             return self._cw.execute(rql, kwargs)
   128         except Unauthorized:
   126         except Unauthorized:
   129             return False
   127             return False
   130 
   128 
   131     # presentation utilities ##################################################
   129     # presentation utilities ##################################################
   132 
   130