diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/.idea/workspace.xml" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/.idea/workspace.xml" index b2e3ab23b351616211b8087e4ec535962f86999e..661dca560bc86938d69c034eee56c03952bfc86d 100644 --- "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/.idea/workspace.xml" +++ "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/.idea/workspace.xml" @@ -2,10 +2,13 @@ - - + - + + + + + - + + + + + + + + + - - - + - - + + - + @@ -336,16 +339,6 @@ - - - - - - - - - - @@ -363,7 +356,7 @@ - + @@ -373,13 +366,6 @@ - - - - - - - @@ -404,10 +390,17 @@ - + - - + + + + + + + + + @@ -418,37 +411,64 @@ + + + + + + + + + + + + + + + + + - - + + - + - - + + - + - - + + + + + + + + + - + - - + + + + + diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/db.sqlite3" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/db.sqlite3" index 65fecdddace6a872de2fbb22c40e4ddb7633da4b..8169a0391af5c4557d351d9a5332ec0b2077ddb9 100644 Binary files "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/db.sqlite3" and "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/db.sqlite3" differ diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/service/__pycache__/init_permission.cpython-36.pyc" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/service/__pycache__/init_permission.cpython-36.pyc" new file mode 100644 index 0000000000000000000000000000000000000000..5bdc2db4e483115a30ddd2a5bc1b082f53c585e0 Binary files /dev/null and "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/service/__pycache__/init_permission.cpython-36.pyc" differ diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/service/init_permission.py" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/service/init_permission.py" new file mode 100644 index 0000000000000000000000000000000000000000..435864c235a0a5c269881339a81b89a7884f4363 --- /dev/null +++ "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/service/init_permission.py" @@ -0,0 +1,25 @@ +from django.conf import settings + + +def init_permission(request, obj): + permissions = obj.roles.filter(permissions__url__isnull=False).values( + 'permissions__url', + 'permissions__title', + 'permissions__icon', + 'permissions__is_menu', + ).distinct() + # 权限信息的列表 + permissions_list = [] + # 菜单信息的列表 + menu_list = [] + for i in permissions: + permissions_list.append({'url': i['permissions__url']}) + if i['permissions__is_menu']: + menu_list.append({ + 'url': i['permissions__url'], + 'title': i['permissions__title'], + 'icon': i['permissions__icon'], + }) + request.session[settings.PERMISSION_SESSION_KEY] = permissions_list + request.session[settings.MENU_SESSION_KEY] = menu_list + request.session['is_login'] = True diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/static/rbac/css/menu.css" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/static/rbac/css/menu.css" new file mode 100644 index 0000000000000000000000000000000000000000..f952ea9e7e0fe6e61cdf7e308b09cf41f82e0ef7 --- /dev/null +++ "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/static/rbac/css/menu.css" @@ -0,0 +1,35 @@ + .left-menu .menu-body .static-menu { + + } + + .left-menu .menu-body .static-menu .icon-wrap { + width: 20px; + display: inline-block; + text-align: center; + } + + .left-menu .menu-body .static-menu a { + text-decoration: none; + padding: 8px 15px; + border-bottom: 1px solid #ccc; + color: #333; + display: block; + background: #efefef; + background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #efefef), color-stop(1, #fafafa)); + background: -ms-linear-gradient(bottom, #efefef, #fafafa); + background: -moz-linear-gradient(center bottom, #efefef 0%, #fafafa 100%); + background: -o-linear-gradient(bottom, #efefef, #fafafa); + filter: progid:dximagetransform.microsoft.gradient(startColorStr='#e3e3e3', EndColorStr='#ffffff'); + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#fafafa',EndColorStr='#efefef')"; + box-shadow: inset 0px 1px 1px white; + } + + .left-menu .menu-body .static-menu a:hover { + color: #2F72AB; + border-left: 2px solid #2F72AB; + } + + .left-menu .menu-body .static-menu a.active { + color: #2F72AB; + border-left: 2px solid #2F72AB; + } \ No newline at end of file diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/templates/menu.html" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/templates/rbac/menu.html" similarity index 100% rename from "DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/templates/menu.html" rename to "DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/templates/rbac/menu.html" diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/templatetags/__init__.py" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/templatetags/__init__.py" similarity index 100% rename from "DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/templatetags/__init__.py" rename to "DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/templatetags/__init__.py" diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/templatetags/__pycache__/__init__.cpython-36.pyc" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/templatetags/__pycache__/__init__.cpython-36.pyc" similarity index 65% rename from "DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/templatetags/__pycache__/__init__.cpython-36.pyc" rename to "DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/templatetags/__pycache__/__init__.cpython-36.pyc" index 7ab8148e15a3173f39756350eec0b0c0ddbb60e4..617de7edb5b5e27af3c7c1c508a9e45bbfbfe500 100644 Binary files "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/templatetags/__pycache__/__init__.cpython-36.pyc" and "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/templatetags/__pycache__/__init__.cpython-36.pyc" differ diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/templatetags/__pycache__/my_tags.cpython-36.pyc" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/templatetags/__pycache__/my_tags.cpython-36.pyc" new file mode 100644 index 0000000000000000000000000000000000000000..52d86c52b0655ec4562a861a58cd8c46fe740cc0 Binary files /dev/null and "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/templatetags/__pycache__/my_tags.cpython-36.pyc" differ diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/templatetags/my_tags.py" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/templatetags/my_tags.py" similarity index 86% rename from "DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/templatetags/my_tags.py" rename to "DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/templatetags/my_tags.py" index 03793c2624f6268bbb1f8b986429883cd18203c4..d743376c71f6a15c18acb4ab2060a8dbe0f8b936 100644 --- "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/templatetags/my_tags.py" +++ "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/templatetags/my_tags.py" @@ -6,10 +6,9 @@ import re register = template.Library() -@register.inclusion_tag('menu.html') +@register.inclusion_tag('rbac/menu.html') def menu(request): menu_list = request.session.get(settings.MENU_SESSION_KEY) - print(menu_list) url = request.path_info for i in menu_list: if re.match(r'{}$'.format(i['url']), url): diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/templates/layout.html" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/templates/layout.html" index 63c28873cfe23508b7eea44b7b144cd518c6c78a..f578dd2f1c33e1eb02fcdcac9db02fac1d6fd5ff 100644 --- "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/templates/layout.html" +++ "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/templates/layout.html" @@ -9,6 +9,7 @@ + diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/templatetags/__pycache__/my_tags.cpython-36.pyc" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/templatetags/__pycache__/my_tags.cpython-36.pyc" deleted file mode 100644 index 95f9fed4cb7d13c1443018e10a5ddf38551fba0b..0000000000000000000000000000000000000000 Binary files "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/templatetags/__pycache__/my_tags.cpython-36.pyc" and /dev/null differ diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/views/__pycache__/auth.cpython-36.pyc" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/views/__pycache__/auth.cpython-36.pyc" index 9419b79ba54d9b63a848373cf362fd8827842465..2af62544da1929ba07a1e1d87bf83502ed5e39a5 100644 Binary files "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/views/__pycache__/auth.cpython-36.pyc" and "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/views/__pycache__/auth.cpython-36.pyc" differ diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/views/auth.py" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/views/auth.py" index d0a65a57fd403de114fd86fe9e0c83ea1121cd41..43994dade1f3f5b1c2fadf385228eb7bd4801d28 100644 --- "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/views/auth.py" +++ "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/views/auth.py" @@ -1,5 +1,5 @@ from django.shortcuts import render, redirect, reverse -from django.conf import settings +from rbac.service.init_permission import init_permission from rbac import models @@ -11,28 +11,8 @@ def login(request): if not obj: # 验证不通过 return render(request, 'login.html', {'error': '用户名或密码错误'}) - permissions = obj.roles.filter(permissions__url__isnull=False).values( - 'permissions__url', - 'permissions__title', - 'permissions__icon', - 'permissions__is_menu', - ).distinct() - # 权限信息的列表 - permissions_list = [] - # 菜单信息的列表 - menu_list = [] - for i in permissions: - permissions_list.append({'url': i['permissions__url']}) - if i['permissions__is_menu']: - menu_list.append({ - 'url': i['permissions__url'], - 'title': i['permissions__title'], - 'icon': i['permissions__icon'], - }) - print(menu_list) - request.session[settings.PERMISSION_SESSION_KEY] = permissions_list - request.session[settings.MENU_SESSION_KEY] = menu_list - request.session['is_login'] = True + # 权限信息和菜单信息的初始化 + init_permission(request, obj) return redirect(reverse('index')) return render(request, 'login.html')