项目积累 之 权限系统Hub(一)

一、什么是权限?

简而言之,就是使得相应的用户拥有对应的身份,或者是相应的用户分配对相应资源的读、写、授予权限。

权限机制能够约束用户行为,控制页面的显示内容,也能使得API(应用程序接口)更加安全和灵活;用好权限机制,能够让系统更加强大和健壮。

  • Django中自带的

1、Permission(权限表):

    Django用permission对象存储权限项,每个model默认都有三个permission:即①add model,②change model,③delete model

     Permission都是django.contrib.auth.Permission类型的实例,该类型包含三个字段name, codename 和 content_type,其中 content_type反应了permission属于哪个model,codename代码逻辑中检查权限时要用, name是permission的描述,将permission打印到屏幕或页面时默认显示的就是name。

 

 

2、User(用户表)

   Django内置的User模型,拥有以下的字段:

● username:用户名,非空 并且必须唯一。

● password:密码,经过哈希过后的密码。

● is_staff:是否可以进入到admin的站点,代表是否是员工。

● is_superuser:是否是超级管理员(admin),如果是超级管理员,那么拥有整个网站的所有权限。

● is_active:是否是可用的。对于一些想要删除账号的数据,我们设置这个值为0就可以了,而不是真正的从数据库中删除。

● last_login: 上次登录的时间

● date_joined: 账号创建的时间

1> 创建User

●通过create_user 内部方法创建user。

User.objects.create_user(username='xjy',email='xielang@qq.com',password='admin')

●update_or_create() 创建user: 修改或创建

User.objects.update_or_create(username=str(uuid_pattern),first_name=test_pattern)

2> 查询User

进入数据库,找到auth_user这张表,我们就能查到我们刚才创建的用户的信息。    

# 获取用户信息:get方法
user = User.objects.get(username='xjy')
user.last_name = 'aaa'
user.save()  #更改完数据之后一定要记得保存

3> model.objects.filter()

利用filter方法:

  • 查看User这个表中 username为depart_id的用户数量
User.objects.filter(username=depart_id).count()
  • 从数据库的取值匹配的结果,返回一个对象列表
User.objects.filter(user=pattern_user).all()

4> 为User添加上Permission

 try:
     # 为user添加权限: user_permissions.add()
     user.user_permissions.add(perm_ins)
     print("Success: 为user添加上permission")
 
 except Exception as e:
     print("====Failed: : 为user添加上permission ====")
     print e

3、Group()

    代表的是User的密级,1——6分别是 everyone、public、inside、secret、confidential、topSecret

                   

   Admin分配的密级是topSecret:最高级权限,能看这个系统所有人公开、涉密的信息。 

   普通用户分配的密级是:everyone、public,能看到自己的相关数据权限以及其他人共享的。

           

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值