day3 crm客户管理之初始化用户权限
用户登录时,就可以根据自己的【用户】找到所有的角色,再根据角色找到所有的权限,再将权限信息放入session
目录结构:
路由设置
web/urls.py
from django.conf.urls import url
from web.views import account
urlpatterns = [
url(r'^login/$',account.login)
]
luffy_permission_simon/urls.py
from django.contrib import admin
from django.conf.urls import include,url
urlpatterns = [
url('^admin/', admin.site.urls),
url('^', include('web.urls'))
]
用户登录视图放在web/views/account.py
# -*- encoding: utf-8 -*-
"""
@File : account.py
@Time : 2021-12-15 22:04
@Author : tangsai
@Email : 294168604@qq.com
@Software: PyCharm
"""
from django.shortcuts import HttpResponse, render, redirect
from rbac import models
def login(request):
# 1. 用户登录
if request.method == 'GET':
return render(request, 'login.html')
user = request.POST.get('user')
pwd = request.POST.get('pwd')
current_user = models.UserInfo.objects.filter(name=user, password=pwd).first()
if not current_user:
return render(request, 'login.html', {'msg': '用户名或密码错误'})
# 2. 权限信息初始化
# 根据当前用户信息获取此用户所拥有的所有权限,并放入session。
# 当前用户所有权限
permission_queryset = current_user.roles.filter(permissions__isnull=False).values("permissions__id",
"permissions__url").distinct()
# 获取权限中所有的URL
# permission_list = []
# for item in permission_queryset:
# permission_list.append(item['permissions__url'])
permission_list = [item['permissions__url'] for item in permission_queryset]
# for item in permission_list:
# print(item)
# request.session[settings.PERMISSION_SESSION_KEY] = permission_list
request.session['luffy_permission_url_list_key'] = permission_list
return redirect('/customer/list/')
模板
login.html
Title
用户登录