• Django-admin自定义用户信息表


    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'
  • 相关阅读:
    hibernate>悲观锁和乐观锁 小强斋
    hibernate>查询语言hql 小强斋
    hibernate>查询语言hql 小强斋
    hibernate>Collection映射 小强斋
    【java&&jni】jni入门篇
    【C++ Primer】第十三章 类继承
    【android&&jni&&NDk】详细介绍每一步,让你轻松掌握android JNI NDk
    【android】错误集锦及解决办法
    【Android】入门级连接网络示例: 网页浏览和播放网络MP3
    【python】入门第一篇
  • 原文地址:https://www.cnblogs.com/harryblog/p/11646078.html
Copyright © 2020-2023  润新知