美文网首页
权限管理_表

权限管理_表

作者: 两点半的杂货铺 | 来源:发表于2018-03-12 22:22 被阅读6次
image.png
image.png

一、思路

+##### 权限下对应多个地址,所以用户和权限下的连接就会出现重复对应

  • 用户和权限应该是多对多,也就是一个用户可以有多个权限,一个权限对应多个用户,普通人员有普通的权限,老板既可以有普通权限也可以有自己的权限
  • 网站权限拆分,一般一个网站有多个网址,他们分别对应增删改操作,为了让权限更加细致化,我们把增删改查,从网址中拆出来
  • 拆分出来的网址和权限形成多对多关系
class userinfo(models.Model):
    nid = models.AutoField(primary_key=True)
    username = models.CharField(max_length=32,unique=True)
    password = models.CharField(max_length=64)
    nickname = models.CharField(max_length=32)
    email = models.EmailField(unique=True)
    creat_time = models.DateTimeField(auto_now_add=True)
    admin_choice = [
        (1,'普通用户'),
        (2,'工程师'),
        (3,'boss'),
    ]
    admin = models.IntegerField(choices=admin_choice,default=1)


class Role(models.Model):
    '''
    权限
    '''

    caption = models.CharField(max_length=32)
    class Meta:
        verbose_name_plural = "权限"

    def __str__(self):
        return self.caption


class User2Role(models.Model):
    '''
    用户和权限的关系
    '''
    u = models.ForeignKey('userinfo')
    r = models.ForeignKey(Role)
    class Meta:
        verbose_name_plural = "用户权限"

    def __str__(self):
        return '%s-%s'%(self.u.username,self.r.caption)

class Acion(models.Model):
    #get 获取用户
    #post 获取用户
    #delete 获取用户
    #put 获取用户
    code = models.CharField(max_length=32)
    capation = models.CharField(max_length=32)


class Menu(models.Model):
    '''
    创建关联菜单,创建菜单
    '''
    caption = models.CharField(max_length=32)
    parent = models.ForeignKey('self',related_name='p',null=True,blank=True)
    

class Url(models.Model):
    '''
    连接
    '''
    #http://127.0.0.1:8000/user.htnl
    caption = models.CharField(max_length=32)
    url = models.CharField(max_length=32)
    #和 菜单关联
    menu= models.ForeignKey(Menu,null=True,blank=True)
    class Meta:
        verbose_name_plural = "url"

    def __str__(self):
        return self.caption


class Url2Action(models.Model):
    '''
    组合连接
    '''
    url = models.ForeignKey(Url)
    a = models.ForeignKey(Acion)

class Url2Action2Role(models.Model):
    '''
    连接分支和权限的关系
    '''
    url2a = models.ForeignKey(Url2Action)
    r = models.ForeignKey(Role)

相关文章

网友评论

      本文标题:权限管理_表

      本文链接:https://www.haomeiwen.com/subject/zfynfftx.html