提交 6c48ff32 编写于 作者: 码心永恒's avatar 码心永恒

权限9

上级 03414e6a
...@@ -22,13 +22,13 @@ IS_SHOW_NAV_SIDEBAR = True ...@@ -22,13 +22,13 @@ IS_SHOW_NAV_SIDEBAR = True
# 显示空值的字符串 # 显示空值的字符串
EMPTY_VALUE_DISPLAY = '~' EMPTY_VALUE_DISPLAY = '~'
# 自定义主页索引视图模板路径 # 自定义主页索引视图模板路径
INDEX_TEMPLATE = 'dadmin/index.html' INDEX_TEMPLATE = None
# 自定义应用索引视图模板路径 # 自定义应用索引视图模板路径
APP_INDEX_TEMPLATE = None APP_INDEX_TEMPLATE = None
# 是否添加一个总括视图 # 是否添加一个总括视图
FINAL_CATCH_ALL_VIEW = True FINAL_CATCH_ALL_VIEW = True
# 自定义登录模板 # 自定义登录模板
LOGIN_TEMPLATE = 'dadmin/login.html' LOGIN_TEMPLATE = None
# 登录视图需要使用的form表单类 # 登录视图需要使用的form表单类
LOGIN_FORM = None LOGIN_FORM = None
# 退出登录模板路径 # 退出登录模板路径
......
...@@ -33,9 +33,9 @@ SECRET_KEY = 'django-insecure-uxdgnr)5q9*9q_g#$ui$)ov^*gy-&)xo^cqq$x_w#01wbpr#pe ...@@ -33,9 +33,9 @@ SECRET_KEY = 'django-insecure-uxdgnr)5q9*9q_g#$ui$)ov^*gy-&)xo^cqq$x_w#01wbpr#pe
# Application definition # Application definition
INSTALLED_APPS = [ INSTALLED_APPS = [
# 'django.contrib.admin', 'django.contrib.admin',
# 阻止发现默认管理站点 # 阻止发现默认管理站点
'django.contrib.admin.apps.SimpleAdminConfig', # 'django.contrib.admin.apps.SimpleAdminConfig',
'django.contrib.auth', 'django.contrib.auth',
'django.contrib.contenttypes', 'django.contrib.contenttypes',
'django.contrib.sessions', 'django.contrib.sessions',
......
...@@ -21,11 +21,11 @@ from django.urls.conf import include ...@@ -21,11 +21,11 @@ from django.urls.conf import include
from apps.dadmin.admin import admin_site from apps.dadmin.admin import admin_site
from DJMall import conf from DJMall import conf
# admin.autodiscover()
urlpatterns = [ urlpatterns = [
path('admin/', admin.site.urls), path('admin/', admin.site.urls),
path('dadmin/', admin_site.urls), path('dadmin/', admin_site.urls),
path('byadmin/', include('dadmin.urls')) path('byadmin/', include('dadmin.urls')),
] ]
if conf.DEVORDEP == 'develop': if conf.DEVORDEP == 'develop':
......
...@@ -4,8 +4,8 @@ from django.views.decorators.cache import never_cache ...@@ -4,8 +4,8 @@ from django.views.decorators.cache import never_cache
# Register your models here. # Register your models here.
from DJMall import conf from DJMall import conf
from dadmin.models.rbac import ( from .models.rbac import (
UsertoRole, Role, PermissionToActionToRole, Menu, UsertoRole, Role, PermissionToActionToRole,
PermissionToAction PermissionToAction
) )
...@@ -61,8 +61,8 @@ class DJMallAdminSite(AdminSite): ...@@ -61,8 +61,8 @@ class DJMallAdminSite(AdminSite):
permission_action_list = PermissionToAction.objects.filter( permission_action_list = PermissionToAction.objects.filter(
permissiontoactiontorole__role__in=roles).values( permissiontoactiontorole__role__in=roles).values(
'permission__url','action__code').distinct() 'permission__url','action__code').distinct()
print(permission_action_list) # print(permission_action_list)
extra_context = {'index': request.user.username} # extra_context = {'index': request.user.username}
return super().index(request, extra_context=extra_context) return super().index(request, extra_context=extra_context)
...@@ -95,13 +95,40 @@ class DJMallAdminSite(AdminSite): ...@@ -95,13 +95,40 @@ class DJMallAdminSite(AdminSite):
menu_leaf_list = PermissionToAction.objects.filter( menu_leaf_list = PermissionToAction.objects.filter(
permissiontoactiontorole__role__in=roles).exclude( permissiontoactiontorole__role__in=roles).exclude(
permission__menu__isnull=True).values( permission__menu__isnull=True).values(
'permission__url', 'permission__name').distinct() 'permission_id','permission__url',
print(menu_leaf_list) 'permission__name', 'permission__menu').distinct()
# 不含code # print(menu_leaf_list)
# for item in url_list: # 构造数据
# print(item) menu_leaf_dict = {}
for item in menu_leaf_list:
# 观看到08 item = {
'id': item['permission_id'],
'url': item['permission__url'],
'name': item['permission__name'],
'parent_id': item['permission__menu'],
'child': []
}
if item['parent_id'] in menu_leaf_dict:
menu_leaf_dict[item['parent_id']].append(item)
else:
menu_leaf_dict[item['parent_id']] = [ item ]
for k, v in menu_leaf_dict.items():
print(k, v)
print('挂钩上的位置')
menu_list = Menu.objects.values('id', 'name', 'parent_id')
menu_dict = {}
for item in menu_list:
item['child'] = []
menu_dict[item['id']] = item
# 把袜子挂载衣钩上
for k, v in menu_leaf_dict.items():
menu_dict[k]['child'] = v
for k, v in menu_dict.items():
print(k, v)
# 观看到09
extra_context = {'ceshi': request.user.username} extra_context = {'ceshi': request.user.username}
......
...@@ -8,10 +8,10 @@ from django.utils.module_loading import autodiscover_modules ...@@ -8,10 +8,10 @@ from django.utils.module_loading import autodiscover_modules
# default_site = 'apps.dadmin.admin.DJMallAdminSite' # default_site = 'apps.dadmin.admin.DJMallAdminSite'
class DAdminConfig(AdminConfig): class DAdminConfig(AppConfig):
default_site = 'apps.dadmin.admin.DJMallAdminSite' default_site = 'apps.dadmin.admin.DJMallAdminSite'
default_auto_field = 'django.db.models.BigAutoField' default_auto_field = 'django.db.models.BigAutoField'
name = 'dadmin' name = 'apps.dadmin'
verbose_name = '管理站点' verbose_name = '管理站点'
def ready(self): def ready(self):
......
from django.contrib import auth from django.contrib import admin
from .admin import admin_site
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
from django.contrib.auth.models import Group from django.contrib.auth.models import Group
User = get_user_model() from .admin import admin_site
from .models import ( from .models import (
Role, Action, Permission, PermissionToActionToRole, Role, Action, Permission, PermissionToActionToRole,
PermissionToAction, UsertoRole, Menu) PermissionToAction, UsertoRole, Menu)
User = get_user_model()
class RoleAdmin(admin.ModelAdmin):
list_display = ('id', 'name')
admin_site.register(User) admin_site.register(User)
admin_site.register(Group) admin_site.register(Group)
admin_site.register(Role) admin_site.register(Role, RoleAdmin)
admin_site.register(Action) admin_site.register(Action)
admin_site.register(Permission) admin_site.register(Permission)
admin_site.register(PermissionToAction) admin_site.register(PermissionToAction)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册