mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-25 08:46:10 -06:00
12589 update menu permissions for auth models
This commit is contained in:
parent
a1af7f2f76
commit
2c7c3bc2da
@ -60,17 +60,25 @@ class Menu:
|
|||||||
# Utility functions
|
# 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(
|
return MenuItem(
|
||||||
link=f'{app_label}:{model_name}_list',
|
link=f'{app_label}:{model_name}_list',
|
||||||
link_text=label,
|
link_text=label,
|
||||||
permissions=[f'{app_label}.view_{model_name}'],
|
permissions=[f'{permission_app_label}.view_{permission_model_name}'],
|
||||||
buttons=get_model_buttons(app_label, model_name, actions)
|
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 = []
|
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:
|
if 'add' in actions:
|
||||||
buttons.append(
|
buttons.append(
|
||||||
@ -78,7 +86,7 @@ def get_model_buttons(app_label, model_name, actions=('add', 'import')):
|
|||||||
link=f'{app_label}:{model_name}_add',
|
link=f'{app_label}:{model_name}_add',
|
||||||
title='Add',
|
title='Add',
|
||||||
icon_class='mdi mdi-plus-thick',
|
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
|
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',
|
link=f'{app_label}:{model_name}_import',
|
||||||
title='Import',
|
title='Import',
|
||||||
icon_class='mdi mdi-upload',
|
icon_class='mdi mdi-upload',
|
||||||
permissions=[f'{app_label}.add_{model_name}'],
|
permissions=[f'{permission_app_label}.add_{permission_model_name}'],
|
||||||
color=ButtonColorChoices.CYAN
|
color=ButtonColorChoices.CYAN
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -353,8 +353,8 @@ ADMIN_MENU = Menu(
|
|||||||
MenuGroup(
|
MenuGroup(
|
||||||
label=_('Users'),
|
label=_('Users'),
|
||||||
items=(
|
items=(
|
||||||
get_model_item('users', 'netboxuser', _('Users'), 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']),
|
get_model_item('users', 'netboxgroup', _('Groups'), actions=['add'], permission_app_label='auth', permission_model_name='groups'),
|
||||||
get_model_item('users', 'objectpermission', _('Permissions'), actions=['add']),
|
get_model_item('users', 'objectpermission', _('Permissions'), actions=['add']),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
Loading…
Reference in New Issue
Block a user