权限管理_表

2018-03-12  本文已影响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)
上一篇 下一篇

猜你喜欢

热点阅读