コード例 #1
0
ファイル: models.py プロジェクト: goldsoft1206/ella
 def sync_denormalized(self):
     from ella.newman.permission import compute_applicable_categories_objects
     denormalized = []
     cats = []
     #for p in self.group.permissions.all():
     for p in self.group.permissions.all().iterator():
         code = '%s.%s' % (p.content_type.app_label, p.codename)
         # Category list is NOT NECESSARILY identical for every permission code in CUR's group
         cats = compute_applicable_categories_objects(self.user, code)
         #print 'Denormalizing %s for %d categories' % (code, len(cats))
         # create denormalized roles
         for c in cats:
             root_cat = c.main_parent
             if not root_cat:
                 root_cat = c #c is top category
             elif root_cat.tree_parent_id:
                 root_cat = root_cat.get_tree_parent()
             try:
                 obj = DenormalizedCategoryUserRole.objects.create(
                     contenttype_id=p.content_type.pk,
                     user_id=self.user.pk,
                     permission_codename=code,
                     permission_id=p.pk,
                     category_id=c.pk,
                     root_category_id=root_cat.pk
                 )
                 denormalized.append(obj)
             except IntegrityError:
                 pass
     return denormalized
コード例 #2
0
ファイル: models.py プロジェクト: yulongsun/ella
 def sync_denormalized(self):
     from ella.newman.permission import compute_applicable_categories_objects
     for p in self.group.permissions.all():
         code = '%s.%s' % (p.content_type.app_label, p.codename)
         cats = compute_applicable_categories_objects(self.user, code)
         # create denormalized roles
         for c in cats:
             root_cat = c.main_parent
             if not root_cat:
                 root_cat = c #c is top category
             elif root_cat.tree_parent_id:
                 root_cat = root_cat.get_tree_parent()
             obj, created = DenormalizedCategoryUserRole.objects.get_or_create(
                 contenttype_id=p.content_type.pk,
                 user_id=self.user.pk,
                 permission_codename=code,
                 permission_id=p.pk,
                 category_id=c.pk,
                 root_category_id=root_cat.pk
             )