问题:
在用户登录后,如何只显示出用户权限的菜单呢?
需要设置显示菜单权限
1.为了显示菜单,需要在models权限上添加is_menu(手动判断是否是查看)的icon(图标字符串)
在rbac中录入另一个的权限,判断是否显示菜单的,若是没有,返回一个空列表[],有则添加session中permission_menu_list=[{},{}]
1 from rbac.models import Role 2 3 4 def initial_sesson(user,request): 5 """ 6 功能:将当前登录人的所有权限录入session中 7 :param user: 当前登录人 8 """ 9 # 查询当前登录人的所有权限列表 10 # 查看当前登录人的所有角色 11 # ret=Role.objects.filter(user=user) 12 permissions = Role.objects.filter(user=user).values("permissions__url", 13 "permissions__is_menu", 14 "permissions__title", 15 "permissions__icon", 16 ).distinct() 17 print(permissions) 18 19 permission_list = [] 20 permission_menu_list = [] 21 22 for item in permissions: 23 # 构建权限列表 24 permission_list.append(item["permissions__url"]) 25 26 # 构建菜单权限列表 27 if item["permissions__is_menu"]: 28 permission_menu_list.append({ 29 "title":item["permissions__title"], 30 "icon":item["permissions__icon"], 31 "url":item["permissions__url"], 32 }) 33 34 # 将当前登录人的权限列表注入session中 35 request.session["permission_list"] = permission_list 36 # 将当前登录人的菜单权限列表注入session中 37 print("permission_menu_list",permission_menu_list) 38 request.session["permission_menu_list"] = permission_menu_list
rbac
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:django 权限设置-菜单显示 - Python技术站