Skip to content

Commit c0dea5f

Browse files
committed
fix nav_menu
in commit 1d55f60, it remove the filter to avoid an exception when adding custom site menu without submenu. But it result in showing a raw menu title when the menu has submenu and user has no permission to all the submenu items.
1 parent f7721cf commit c0dea5f

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

xadmin/views/base.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -403,11 +403,16 @@ def check_menu_permission(item):
403403

404404
def filter_item(item):
405405
if 'menus' in item:
406+
before_filter_length = len(item['menu'])
406407
item['menus'] = [filter_item(
407408
i) for i in item['menus'] if check_menu_permission(i)]
409+
after_filter_length = len(item['menus'])
410+
if after_filter_length == 0 and before_filter_length > 0:
411+
return None
408412
return item
409413

410414
nav_menu = [filter_item(item) for item in menus if check_menu_permission(item)]
415+
nav_menu = filter(lambda x:x, nav_menu)
411416

412417
if not settings.DEBUG:
413418
self.request.session['nav_menu'] = json.dumps(nav_menu)

0 commit comments

Comments
 (0)