权限分配、登录设计与展示菜单

一、管理员分配权限

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标签进行引入。

通过以上操作就把增改查页面加入了统一的菜单了

关于权限控制:查看的权限展示到左侧菜单栏,增删改权限通过按钮控制:没有哪个权限就没有哪个权限按钮。

用户登录后根据所拥有的权限能够拥有不同的操作:

 

posted @ 2020-05-23 22:40  zh_小猿  阅读(1064)  评论(0编辑  收藏  举报