码迷,mamicode.com
首页 > 其他好文 > 详细

Django-admin自定义用户信息表

时间:2019-10-10 10:43:38      阅读:87      评论:0      收藏:0      [点我收藏+]

标签:信息   active   bind   lse   cad   null   auth   堡垒机   action   

class UserProfile(auth.AbstractBaseUser, auth.PermissionsMixin):
    email = models.EmailField(
        verbose_name=email address,
        max_length=255,
        unique=True,
    )
    is_active = models.BooleanField(default=True)
    # 是否是admin账户
    is_admin = models.BooleanField(default=False)
    is_staff = models.BooleanField(
        verbose_name=staff status,
        default=False,
        help_text=Designates whether the user can log into this admin site.,
    )
    name = models.CharField(max_length=32)
    # token = models.CharField(‘token‘, max_length=128,default=None,blank=True,null=True)
    department = models.ForeignKey(Department, verbose_name=部门, blank=True, null=True, on_delete=models.CASCADE)
    host_groups = models.ManyToManyField(HostGroups, verbose_name=授权主机组, blank=True)
    bind_hosts = models.ManyToManyField(BindHosts, verbose_name=授权主机, blank=True)

    memo = models.TextField(备注, blank=True, null=True, default=None)
    date_joined = models.DateTimeField(blank=True, null=True, auto_now_add=True)
    valid_begin_time = models.DateTimeField(default=django.utils.timezone.now, help_text="yyyy-mm-dd HH:MM:SS")
    valid_end_time = models.DateTimeField(blank=True, null=True, help_text="yyyy-mm-dd HH:MM:SS")

    # 把哪个字段当做用户名
    USERNAME_FIELD = email
    # REQUIRED_FIELDS = [‘name‘,‘token‘,‘department‘,‘tel‘,‘mobile‘,‘memo‘]
    # 必须有的字段
    REQUIRED_FIELDS = [name]

    def get_full_name(self):
        # The user is identified by their email address
        return self.email

    def get_short_name(self):
        # The user is identified by their email address
        return self.email

    def __str__(self):  # __str__ on Python 2
        return self.email

    # def has_perm(self, perm, obj=None):
    #     "Does the user have a specific permission?"
    #     # Simplest possible answer: Yes, always
    #     return True
    def has_perms(self, perm, obj=None):
        "Does the user have a specific permission?"
        # Simplest possible answer: Yes, always
        return True

    def has_module_perms(self, app_label):
        "Does the user have permissions to view the app `app_label`?"
        # Simplest possible answer: Yes, always
        return True

    # @property
    # def is_staff(self):
    #     "Is the user a member of staff?"
    #     # Simplest possible answer: All admins are staff
    #     return self.is_admin
    @property
    def is_superuser(self):
        "Is the user a member of staff?"
        # Simplest possible answer: All admins are staff
        return self.is_admin

    objects = auth.UserManager()

    class Meta:
        verbose_name = 用户信息
        verbose_name_plural = "用户信息"

    def __str__(self):
        return self.name

    class Meta:
        verbose_name = CrazyEye账户
        verbose_name_plural = CrazyEye账户

        permissions = (
            (web_access_dashboard, 可以访问 审计主页),
            (web_batch_cmd_exec, 可以访问 批量命令执行页面),
            (web_batch_batch_file_transfer, 可以访问 批量文件分发页面),
            (web_config_center, 可以访问 堡垒机配置中心),
            (web_config_items, 可以访问 堡垒机各配置列表),
            (web_invoke_admin_action, 可以进行admin action执行动作),
            (web_table_change_page, 可以访问 堡垒机各配置项修改页),
            (web_table_change, 可以修改 堡垒机各配置项),
        )


最后还需要在配置文件加上:AUTH_USER_MODEL = web.UserProfile

 

Django-admin自定义用户信息表

标签:信息   active   bind   lse   cad   null   auth   堡垒机   action   

原文地址:https://www.cnblogs.com/harryblog/p/11646078.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!