# Django SimpleUI2024.4.1版本自定义菜单权限设置
项目中使用simpleui 在配置文件中添加了几个自定义SIMPLEUI_CONFIG.发现这几个新增的菜单路径没有权限控制默认显示出来不能动态显示(官网也配有关于菜单权限的说明)。
后来百度了下看了下 simplegs.py源码。发现最新的版本有权限配置的,关键代码
看到此代码后就在配置文件中添加 “permission” 选择项定义菜单权限
这个权限 就是django里面的权限app_label + codename.
PS: 此版本有一个bug,添加权限无法实时渲染 权限菜单,因为代码读取配置菜单是使用浅copy。但是重启服务后会生效控制 菜单
临时解决办法,使用猴子补丁,在python加载模块的时候替换simpletags模块中的一个函数 __get_config
# menu.py 我是把 simpleui 单独抽取到一个.py文件中。 在Django settings中 from menu import *
# 菜单设置
SIMPLEUI_CONFIG = get_menus()
import os
from simpleui.templatetags import simpletags
def __get_config(name):
if name == 'SIMPLEUI_CONFIG':
return get_menus()
from django.conf import settings
value = os.environ.get(name, getattr(settings, name, None))
return value
simpletags.__get_config = __get_config