class Role(models.Model): id = UUIDField() name = models.CharField(max_length=64, verbose_name='角色', default='', unique=True) createBy = models.CharField(null=True, max_length=64, verbose_name='创建者', default='') updateBy = models.CharField(null=True, max_length=64, verbose_name='修改者', default='') create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间') # 创建时间 update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间') # 修改时间 permissions = models.ManyToManyField(Permission, verbose_name=_('permissions'), blank=True) objects = GroupManager() def __str__(self): return self.name def natural_key(self): return (self.name, ) class Meta: db_table = 'role' verbose_name = '角色' verbose_name_plural = verbose_name ordering = ['-create_time', '-update_time']
class Group(models.Model): """ This is a clone of django.contrib.auth.Group, but nonrelationalized. Doesn't user Permission but directly uses the permission names """ name = models.CharField(_('name'), max_length=80, unique=True) permissions = ListField(models.CharField(max_length=500), verbose_name=_('permissions'), blank=True) objects = GroupManager() class Meta: db_table = 'djangae_group' verbose_name = _('group') verbose_name_plural = _('groups') def __str__(self): return self.name def natural_key(self): return (self.name, ) def __init__(self, *args, **kwargs): """We need to override this to make the choices lazy and prevent import madness""" super(Group, self).__init__(*args, **kwargs) field = self._meta.get_field('permissions') field._choices = lazy(get_permission_choices, list)() field.item_field_type._choices = lazy(get_permission_choices, list)()
class Group(models.Model): """ 用户群,群里的用户拥有该群绑定的权限 """ name = models.CharField(_(u'群名称'), max_length=80, unique=True) permissions = models.ManyToManyField( Permission, verbose_name=_(u'群权限'), blank=True, ) is_active = models.BooleanField( _(u'是否激活'), default=True, help_text=_(u'用户群激活后权限才会生效'), ) created = models.DateTimeField(_(u'创建时间'), auto_now_add=True) notes = models.TextField(_(u'备注'), default=True) objects = GroupManager() class Meta: verbose_name = _('group') verbose_name_plural = _('groups') def __str__(self): return self.name def natural_key(self): return (self.name, )
class GroupBasic(models.Model): """ Groups are a generic way of categorizing users to apply permissions, or some other label, to those users. A user can belong to any number of groups. A user in a group automatically has all the permissions granted to that group. For example, if the group Site editors has the permission can_edit_home_page, any user in that group will have that permission. Beyond permissions, groups are a convenient way to categorize users to apply some label, or extended functionality, to them. For example, you could create a group 'Special users', and you could write code that would do special things to those users -- such as giving them access to a members-only portion of your site, or sending them members-only email messages. """ name = models.CharField(_('name'), max_length=80, unique=True) permissions = models.ManyToManyField(Permission, verbose_name=_('permissions'), blank=True) objects = GroupManager() class Meta: verbose_name = _('group') verbose_name_plural = _('groups') def __str__(self): return self.name def natural_key(self): return (self.name, )
class Group(RESTModelMixin, DjangoGroup): """ Extend the django group with support of our REST and caching system. """ access_permissions = GroupAccessPermissions() objects = GroupManager() class Meta: default_permissions = ()
class GroupOfAggregations(models.Model): name = models.CharField(_('name'), max_length=80, unique=True) permissions = models.ManyToManyField(Permission, verbose_name=_('permissions'), blank=True) aggregations = models.ManyToManyField(Aggregation, blank=True) objects = GroupManager() class Meta: verbose_name = _('Group of aggregations') verbose_name_plural = _('Groups of aggregations') app_label = 'poem' def __str__(self): return self.name def natural_key(self): return (self.name,)
class Group(models.Model): name = models.CharField(_('name'), max_length=80, unique=True) permissions = models.ManyToManyField(Permission, verbose_name=_('permissions'), blank=True) objects = GroupManager() class Meta: verbose_name = _('group') verbose_name_plural = _('groups') def __unicode__(self): return u'%s' % (self.name) def natural_key(self): return (self.name, )
class Department(models.Model): name = models.CharField(_('name'), max_length=80, unique=True) permissions = models.ManyToManyField(Permission, verbose_name=_('Permissions'), blank=True) objects = GroupManager() class Meta: verbose_name = _('Department') verbose_name_plural = _('Departments') def __str__(self): return self.name def natural_key(self): return (self.name,)
class AbstractGroup(models.Model): name = models.CharField(_("name"), max_length=150, unique=True) permissions = models.ManyToManyField( Permission, verbose_name=_("permissions"), blank=True, ) objects = GroupManager() class Meta: verbose_name = _("group") verbose_name_plural = _("groups") abstract = True def __str__(self): return self.name def natural_key(self): return (self.name, )
class Group(models.Model): """ This is a clone of django.contrib.auth.Group, but nonrelationalized """ name = models.CharField(_('name'), max_length=80, unique=True) permissions = ListField(models.ForeignKey(Permission), verbose_name=_('permissions'), blank=True) objects = GroupManager() class Meta: verbose_name = _('group') verbose_name_plural = _('groups') def __str__(self): return self.name def natural_key(self): return (self.name, )
class Role(models.Model): """ Job role that has associated permissions. Modeled using ``auth.Group`` model, but separated to prevent assigning users directly to the role (group) globally. Users can be assigned to this role through scoped models like ``CaseloadRole``. """ name = models.CharField(max_length=150, unique=True) permissions = models.ManyToManyField( Permission, blank=True, ) objects = GroupManager() class Meta: verbose_name = 'Role' verbose_name_plural = 'Roles' def __str__(self): return self.name def natural_key(self): return (self.name, )
class UserGroups(models.Model): id = models.UUIDField(default=uuid4, primary_key=True) name = models.CharField(max_length=128, verbose_name=_('Name')) permissions = models.ManyToManyField( Permission, verbose_name=_('permissions'), blank=True, ) comment = models.TextField(blank=True, verbose_name=_('Comment')) date_created = models.DateTimeField(auto_now_add=True, null=True, verbose_name=_('Date created')) created_by = models.CharField(max_length=100, null=True, blank=True) objects = GroupManager() def __str__(self): return self.name class Meta: ordering = ['name'] verbose_name = _("User groups")
class Group(BaseModel, Group): parent = models.ForeignKey('self', blank=True, null=True, on_delete=models.SET_NULL, verbose_name='父级角色') code = models.CharField(max_length=32, unique=True, verbose_name='代码') sequence = models.SmallIntegerField(default=0, verbose_name='排序值') roles = models.ManyToManyField( Role, verbose_name='roles', blank=True, ) def __str__(self): return "{parent}{name}".format(name=self.name, parent="%s-->" % self.parent.name if self.parent else '') class Meta: verbose_name = '分组' verbose_name_plural = verbose_name objects = GroupManager() # 创建用户
class Group(models.Model): """ This is a clone of django.contrib.auth.Group, but nonrelationalized. Doesn't user Permission but directly uses the permission names """ name = models.CharField(_('name'), max_length=80, unique=True) permissions = ListField(models.CharField(max_length=500, choices=get_permission_choices()), verbose_name=_('permissions'), blank=True, choices=get_permission_choices()) objects = GroupManager() class Meta: verbose_name = _('group') verbose_name_plural = _('groups') app_label = "djangae" def __str__(self): return self.name def natural_key(self): return (self.name, )
class Project(Group): members = models.ManyToManyField(Student, through='Membership', through_fields=('project', 'member'), blank=True) title = models.CharField('Название', max_length=30, default="Unnamed") category = models.CharField('Категория', choices=GROUP_CATEGORY, max_length=30, default='Sport') status = models.CharField(max_length=30, blank=True) pub_date = models.DateField(auto_now=True, editable=False) release_date = models.DateField(auto_now=False, default=date_across_days(3)) describe = models.CharField('Описание', max_length=6000, default="Описание проекта одним абзацем") logo = models.ImageField('Лого', max_length=300, null=True, blank=True, default='default.jpg') # as link on file rate = models.CharField(max_length=300, blank=True) # as link on file admin = Student() objects = GroupManager() def get_admin(self): return Membership.admin_as_membership(self).member def is_member(self, user): return user in self.members.all() def is_admin(self, user): if user.is_anonymous(): return False return Student.get_by_name( user.username) == Membership.admin_as_membership(self).member def __str__(self): return self.id def time_before_release(self): return self.release_date - datetime.date.today() def finish_project(self): is_formed = self.status is not TEAM_STATUS[ 'Start'] and self.pub_date <= datetime.date.today() if is_formed: self.status = TEAM_STATUS['Released'] else: self.delete() @staticmethod def get_by_bounds(bottom, top): return Project.objects.all()[bottom:top] @staticmethod def get_by_name(group_name): return Project.objects.get(name=group_name) @staticmethod def set_admin_or_create_it(user, project): any_members_exists = Membership.objects.filter( member=user, project=project).count() > 0 if any_members_exists: relation = Membership.objects.get(member=user, project=project) relation.status = MEMBER_STATUS[2] relation.save() else: m = Membership.objects.create(project=project, member=user, status=MEMBER_STATUS[2], role='Создатель группы') m.save()