Exemple #1
0
 def convert(self, scope, hashkey, resource, find_related=False):
     if resource.user is not None:
         owner_key = resource.user.hashkey
         res_scope = "user"
     elif resource.group is not None:
         owner_key = resource.group.hashkey
         res_scope = "group"
     else:
         raise InvalidScopeException()
     permissions = []
     for p in resource.permissions:
         if p.user is not None:
             key = p.user.hashkey
         elif p.group is not None:
             key = p.group.hashkey
         else:
             key = None
         permissions.append(dict(
             public=p.public,
             hashkey=key,
             scope=p.scope
         ))
     layout = dict(
         row=resource.layout.row,
         col=resource.layout.col,
         sizeX=resource.layout.sizeX,
         sizeY=resource.layout.sizeY
     )
     vals = dict(
         hashkey=resource.hashkey,
         name=resource.name,
         type=resource.type,
         settings=resource.settings,
         owner_scope=res_scope,
         owner_hashkey=owner_key,
         views=[v.hashkey for v in resource.views],
         permissions=permissions,
         current_view=resource.current_view,
         parents=[r.hashkey for r in resource.parents],
         layout=layout
     )
     if find_related:
         related = []
         context, mod = get_context_for_scope(scope, hashkey)
         manager = ResourceManager(context)
         for r in resource.related:
             if manager.check_permissions(r, "view"):
                 related.append(r)
         vals['related'] = [self.convert(scope, hashkey, r, find_related=find_related) for r in related]
     return vals
 def convert(self, scope, hashkey, resource, find_related=False):
     if resource.user is not None:
         owner_key = resource.user.hashkey
         res_scope = "user"
     elif resource.group is not None:
         owner_key = resource.group.hashkey
         res_scope = "group"
     else:
         raise InvalidScopeException()
     permissions = []
     for p in resource.permissions:
         if p.user is not None:
             key = p.user.hashkey
         elif p.group is not None:
             key = p.group.hashkey
         else:
             key = None
         permissions.append(dict(public=p.public, hashkey=key, scope=p.scope))
     layout = dict(
         row=resource.layout.row, col=resource.layout.col, sizeX=resource.layout.sizeX, sizeY=resource.layout.sizeY
     )
     vals = dict(
         hashkey=resource.hashkey,
         name=resource.name,
         type=resource.type,
         settings=resource.settings,
         owner_scope=res_scope,
         owner_hashkey=owner_key,
         views=[v.hashkey for v in resource.views],
         permissions=permissions,
         current_view=resource.current_view,
         parents=[r.hashkey for r in resource.parents],
         layout=layout,
     )
     if find_related:
         related = []
         context, mod = get_context_for_scope(scope, hashkey)
         manager = ResourceManager(context)
         for r in resource.related:
             if manager.check_permissions(r, "view"):
                 related.append(r)
         vals["related"] = [self.convert(scope, hashkey, r, find_related=find_related) for r in related]
     return vals