一、管理员分配权限
1、把rbac组件拷贝到项目目录下
2、在crm_s9/settings.py中注册app
3、crm/models.py中UserInfo与rbac/models.py中User表一对一进行关联(因为是临时加的字段,所以添加null=True)
4、在rbac项目下添加stark.py文件,用来注册权限表,录入权限数据
5、添加权限组
6、添加权限
7、创建角色并分配权限
8、为user分配角色
9、为员工分配对应user
二、设计登录
1、crm/view.py
from django.shortcuts import render,HttpResponse from rbac.models import User from rbac.service.perssions import initial_session #登录视图 def login(request): if request.method=="POST": user=request.POST.get("user") pwd=request.POST.get("pwd") user=User.objects.filter(name=user,pwd=pwd).first() if user: request.session["user_id"]=user.pk #把用户主键注册到session中 initial_session(user,request) #注册权限到session中国 return HttpResponse("登录成功") #这里应该返回一个主页面,为了简化直接返回一个“登录成功” return render(request,"login.html")
2、crm_s9/templates/login.py
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> <form action="" method="post"> {% csrf_token %} 用户名<input type="text" name="user"> 密码<input type="password" name="pwd"> <input type="submit"> </form> </body> </html>
3、把rbac里面的中间件引入到settings中
三、展示菜单
把rbac/templates/rbac中的base.html拷贝到crm_s9/templates中,让stark/templates下面的增改查以及mycustomer.html、public.html都继承base.html,为了页面简洁把add_view.html和list_view.htm中的css样式放到stark/static/css目录下,然后在base.html中用link标签进行引入。
通过以上操作就把增改查页面加入了统一的菜单了
关于权限控制:查看的权限展示到左侧菜单栏,增删改权限通过按钮控制:没有哪个权限就没有哪个权限按钮。
用户登录后根据所拥有的权限能够拥有不同的操作: