| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- from django.db import models
- class Permission(models.Model):
- name = models.CharField(max_length=255, verbose_name="权限名称")
- description = models.TextField(blank=True, verbose_name="权限描述")
- primary_page = models.CharField(max_length=255, verbose_name="主页面")
- page = models.CharField(max_length=255, verbose_name="页面路径")
- component = models.CharField(max_length=255, verbose_name="组件标识", blank=True, null=True)
- enabled = models.BooleanField(default=True, verbose_name="是否启用")
-
- class Meta:
- verbose_name = "权限配置"
- verbose_name_plural = "权限配置"
- unique_together = ('page', 'component')
- class Role(models.Model):
- name = models.CharField(max_length=100, unique=True, verbose_name="角色名称")
- permissions = models.ManyToManyField(Permission, verbose_name="权限集合")
- description = models.TextField(blank=True, verbose_name="角色描述")
-
- class Meta:
- verbose_name = "角色"
- verbose_name_plural = "角色"
- class ListModel(models.Model):
- staff_name = models.CharField(max_length=255, verbose_name="Staff Name")
- staff_type = models.CharField(max_length=255, verbose_name="Staff Type")
- role = models.ForeignKey(Role, on_delete=models.SET_NULL, null=True, blank=True, verbose_name="关联角色")
- check_code = models.IntegerField(default=8888, verbose_name="Check Code")
- openid = models.CharField(max_length=255, verbose_name="Openid")
- appid = models.CharField(max_length=100, verbose_name='APPID')
- is_delete = models.BooleanField(default=False, verbose_name='Delete Label')
- create_time = models.DateTimeField(auto_now_add=True, verbose_name="Create Time")
- update_time = models.DateTimeField(auto_now=True, blank=True, null=True, verbose_name="Update Time")
- error_check_code_counter = models.IntegerField(default=0,verbose_name='check_code error counter')
- is_lock = models.BooleanField(default=False,verbose_name='Whether the lock')
- is_look = models.BooleanField(default=False,verbose_name='Whether the look')
- is_edit = models.BooleanField(default=False,verbose_name='Whether the edit')
-
- class Meta:
- db_table = 'staff'
- verbose_name = 'Staff'
- verbose_name_plural = "Staff"
- ordering = ['staff_name']
-
- def has_permission(self, page, component=None):
- """检查用户是否有特定页面或组件的权限"""
- if not self.role:
- return False
-
- if component:
- return self.role.permissions.filter(page=page, component=component, enabled=True).exists()
- else:
- return self.role.permissions.filter(page=page, enabled=True).exists()
- class TypeListModel(models.Model):
- staff_type = models.CharField(max_length=255, verbose_name="Staff Type")
- openid = models.CharField(max_length=255, verbose_name="Openid")
- creater = models.CharField(max_length=255, verbose_name="Creater")
- create_time = models.DateTimeField(auto_now_add=True, verbose_name="Create Time")
- update_time = models.DateTimeField(auto_now=True, blank=True, null=True, verbose_name="Update Time")
- class Meta:
- db_table = 'stafftype'
- verbose_name = 'Staff Type'
- verbose_name_plural = "Staff Type"
- ordering = ['staff_type']
|