Пример #1
0
 def __new__(cls, name, bases, attrs):
     module = attrs.pop('__module__')
     parents = [b for b in bases if isinstance(b, ProfilePermissonBase)]
     if parents:
         fields = []
         for obj_name, obj in attrs.items():
             if isinstance(obj, models.Field):
                 fields.append(obj_name)
             Permission.add_to_class(obj_name, obj)
     return super(ProfilePermissonBase,
                  cls).__new__(cls, name, bases, attrs)
Пример #2
0
    return True

def create_admin_role(content_object, user):
    content_type = ContentType.objects.get_for_model(content_object)
    object_id = content_object.id

    try:
        generic_member = GenericMember.objects.get(
            user=user, content_type= content_type, object_id= object_id)
    except GenericMember.DoesNotExist:
        generic_member = GenericMember.objects.create(
            user= user, content_type= content_type, object_id= object_id,
            )
    try:
        role = Role.objects.get(
            content_type= content_type, object_id=object_id,
            name= "admin")
    except Role.DoesNotExist:
        role = Role.objects.create(
            content_type= content_type, object_id= object_id,
            name = "admin"
        )

    generic_member.role = role
    generic_member.save()


BulkInvitation.add_to_class('send_invitations', send_invitations)

Permission.add_to_class('__str__', permission_str_method)
Пример #3
0
                                       null=True))
Group.add_to_class('updated_at',
                   models.DateTimeField(auto_now=True, blank=True, null=True))
Group.add_to_class('guard_name',
                   models.CharField(blank=True, null=True, max_length=191))

# class AbPermissions(models.Model):
#     name = models.CharField(max_length=191)
#     guard_name = models.CharField(max_length=191)
#     created_at = models.DateTimeField(blank=True, null=True)
#     updated_at = models.DateTimeField(blank=True, null=True)

#     class Meta:
#         managed = True
#         db_table = 'ab_permissions'
Permission.add_to_class(
    'guard_name', models.CharField(blank=True, null=True, max_length=191))
Permission.add_to_class(
    'created_at', models.DateTimeField(auto_now_add=True,
                                       blank=True,
                                       null=True))
Permission.add_to_class(
    'updated_at', models.DateTimeField(auto_now=True, blank=True, null=True))

# class AbRoleHasPermissions(models.Model):
#     permission = models.ForeignKey(AbPermissions, models.DO_NOTHING)
#     role = models.ForeignKey('AbRoles', models.DO_NOTHING)

#     class Meta:
#         managed = True
#         db_table = 'ab_role_has_permissions'
#         unique_together = (('permission', 'role'),)
Пример #4
0
from django.contrib.contenttypes.models import ContentType
from django.contrib.auth.models import Permission, Group
from django.db import models
from constants.global_constant import PERMISSION_CODENAME_FORMAT
from django.contrib.auth import get_user_model

ContentType._meta.get_field("app_label").max_length = 1000
Permission._meta.get_field("codename").max_length = 1000


def custom(self):
    def __get_permission_name(perm, curr_instance):
        return perm.content_type.model + ' | ' + str(curr_instance)

    if self.uuid_codename:
        __Class = PERMISSION_CODENAME_FORMAT.get(self.content_type.model, None)
        if __Class:
            instance = __Class.objects.get(pk=str(self.uuid_codename))
            return __get_permission_name(self, instance)
    else:
        return self.content_type.model + ' | ' + self.name


Permission.add_to_class('uuid_codename', models.CharField(max_length=1000))
Permission._meta.get_field("codename")._unique = True
Permission._meta.get_field("name").max_length = 1000

Permission.__str__ = custom

Group.add_to_class('owner', models.ForeignKey(get_user_model()))
Пример #5
0
# -*- coding: utf-8 -*-
from django.contrib.auth.models import Permission


def __str__(self):
    return self.name


Permission.add_to_class('__str__', __str__)