3. 用户权限

需求: 用位运算实现用户权限,用户id为单数可以访问用户管理,双数访问用户详情
可以修改用户权限

1. 代码: 中间件实现

1
2
3
4
5
class MyMiddlewareMixin(MiddlewareMixin):
def process_request(self, request):
if id:
# user = User_Identity.objects.filter(user_id=uid).first()
request.level = int(id) & 1

2. setting:

1
'userapp.views.MyMiddlewareMixin'

3. 修改用户权限

1
2
3
4
5
6
7
8
9
10
class QX(APIView):

def get(self, request):
return Response(qx == request.level)

def put(self, request):
global qx
qx = int(not qx)
print(qx)
return Response({'msg': '已修改'})

4. vue路由守卫:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
path:'/add',
name:'detail',
component:detail,
beforeEnter: (to, from, next) => {
var id = localStorage.getItem('id')
axios.get('http://127.0.0.1:8000/app2/qx/?id=' + id)
.then(resp => {
var rs = resp.data
if (!rs) {
// 请求接口结果判断通过
next()
} else {
message.info('没有权限');
}
})