12589 update menu permissions for auth models

This commit is contained in:
Arthur 2023-07-17 20:27:19 +07:00
parent a1af7f2f76
commit 2c7c3bc2da
2 changed files with 16 additions and 8 deletions

View File

@ -60,17 +60,25 @@ class Menu:
# Utility functions
#
def get_model_item(app_label, model_name, label, actions=('add', 'import')):
def get_model_item(app_label, model_name, label, actions=('add', 'import'), permission_app_label=None, permission_model_name=None):
if not permission_app_label:
permission_app_label = app_label
if not permission_model_name:
permission_model_name = model_name
return MenuItem(
link=f'{app_label}:{model_name}_list',
link_text=label,
permissions=[f'{app_label}.view_{model_name}'],
buttons=get_model_buttons(app_label, model_name, actions)
permissions=[f'{permission_app_label}.view_{permission_model_name}'],
buttons=get_model_buttons(app_label, model_name, actions, permission_app_label, permission_model_name)
)
def get_model_buttons(app_label, model_name, actions=('add', 'import')):
def get_model_buttons(app_label, model_name, actions=('add', 'import'), permission_app_label=None, permission_model_name=None):
buttons = []
if not permission_app_label:
permission_app_label = app_label
if not permission_model_name:
permission_model_name = model_name
if 'add' in actions:
buttons.append(
@ -78,7 +86,7 @@ def get_model_buttons(app_label, model_name, actions=('add', 'import')):
link=f'{app_label}:{model_name}_add',
title='Add',
icon_class='mdi mdi-plus-thick',
permissions=[f'{app_label}.add_{model_name}'],
permissions=[f'{permission_app_label}.add_{permission_model_name}'],
color=ButtonColorChoices.GREEN
)
)
@ -88,7 +96,7 @@ def get_model_buttons(app_label, model_name, actions=('add', 'import')):
link=f'{app_label}:{model_name}_import',
title='Import',
icon_class='mdi mdi-upload',
permissions=[f'{app_label}.add_{model_name}'],
permissions=[f'{permission_app_label}.add_{permission_model_name}'],
color=ButtonColorChoices.CYAN
)
)

View File

@ -353,8 +353,8 @@ ADMIN_MENU = Menu(
MenuGroup(
label=_('Users'),
items=(
get_model_item('users', 'netboxuser', _('Users'), actions=['add']),
get_model_item('users', 'netboxgroup', _('Groups'), actions=['add']),
get_model_item('users', 'netboxuser', _('Users'), actions=['add'], permission_app_label='auth', permission_model_name='users'),
get_model_item('users', 'netboxgroup', _('Groups'), actions=['add'], permission_app_label='auth', permission_model_name='groups'),
get_model_item('users', 'objectpermission', _('Permissions'), actions=['add']),
),
),