diff --git a/simpleui/templates/admin/index.html b/simpleui/templates/admin/index.html index 33860a77d5b10bda24b0f9e1d6f172c08e2ef4ef..4aa84df56b0ba00777f56ec36f840abeb529e52b 100755 --- a/simpleui/templates/admin/index.html +++ b/simpleui/templates/admin/index.html @@ -50,7 +50,7 @@ {% block menus %} {% autoescape off %} - {% menus %} + {% menus req=request %} {% endautoescape %} {% endblock %}
diff --git a/simpleui/templatetags/simpletags.py b/simpleui/templatetags/simpletags.py index 3653e5015d8ce50bcf420f453b7afe4831d8ebf3..8b45d3b16df621a5259f5400cf36a11f4eaef650 100644 --- a/simpleui/templatetags/simpletags.py +++ b/simpleui/templatetags/simpletags.py @@ -178,7 +178,12 @@ def format_table(d): @register.simple_tag(takes_context=True) -def menus(context, _get_config=None): +def menus(context, _get_config=None,**kwargs): + #获取request对象 + is_superuser_flag = False + req = kwargs.get("req",None) + if req: + is_superuser_flag = req.user.is_superuser data = [] # return request.user.has_perm("%s.%s" % (opts.app_label, codename)) @@ -244,16 +249,19 @@ def menus(context, _get_config=None): else: data = config.get('menus') - # 获取侧边栏排序, 如果设置了就按照设置的内容排序, 留空则表示默认排序以及全部显示 - if config.get('menu_display') is not None: - display_data = list() - for _app in data: - if _app['name'] not in config.get('menu_display'): - continue - _app['_weight'] = config.get('menu_display').index(_app['name']) - display_data.append(_app) - display_data.sort(key=lambda x: x['_weight']) - data = display_data + #管理员menu_display_admin_skip 设置为True,就跳过菜单显示过滤 + if is_superuser_flag and (config.get("menu_display_admin_skip") is False or config.get("menu_display_admin_skip") is None): + # 获取侧边栏排序, 如果设置了就按照设置的内容排序, 留空则表示默认排序以及全部显示 + if config.get('menu_display') is not None: + display_data = list() + for _app in data: + if _app['name'] not in config.get('menu_display'): + continue + _app['_weight'] = config.get('menu_display').index(_app['name']) + display_data.append(_app) + display_data.sort(key=lambda x: x['_weight']) + data = display_data + # 给每个菜单增加一个唯一标识,用于tab页判断 eid = 1000