Ejemplo n.º 1
0
 def _design_allowed(self, design, context, meta_type):
     rules = self._restrictions_index.get(design.get_design_identifier())
     if rules is None:
         return True
     user_role = IAuthorizationManager(context).get_user_role()
     for rule in rules:
         if meta_type is not None and meta_type != rule.content_type:
             continue
         if roleinfo.isEqualToOrGreaterThan(user_role, rule.role):
             continue
         return False
     return True
Ejemplo n.º 2
0
    def list_page_model(self, context, meta_type):
        models = []
        resolve = getUtility(IIntIds).getObject
        user_role = 'Manager'
        if context is not None:
            user_role = IAuthorizationManager(context).get_user_role()
        for identifier in self._page_models.values():
            try:
                model = resolve(identifier)
            except KeyError:
                continue
            role = model.get_role()
            if (role is not None and
                not roleinfo.isEqualToOrGreaterThan(user_role, role)):
                continue
            if (meta_type is None and
                meta_type not in model.get_allowed_content_types()):
                continue
            models.append(model)

        return models