1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-08-02 15:57:31 +00:00

update admin role

if admin role is not a valid role, user audit admin role as default
This commit is contained in:
lian 2021-12-02 11:28:14 +08:00
parent cf208eea5b
commit dd18807dae
2 changed files with 12 additions and 4 deletions

View File

@ -3,12 +3,13 @@ from copy import deepcopy
import logging
from django.conf import settings
from seahub.constants import DEFAULT_USER, GUEST_USER, DEFAULT_ORG, \
from seahub.constants import DEFAULT_USER, GUEST_USER, \
DEFAULT_ADMIN, SYSTEM_ADMIN, DAILY_ADMIN, AUDIT_ADMIN
# Get an instance of a logger
logger = logging.getLogger(__name__)
def merge_roles(default, custom):
"""Merge custom dict into the copy of default dict, and return the copy."""
copy = deepcopy(default)
@ -22,6 +23,7 @@ def merge_roles(default, custom):
return copy
DEFAULT_ENABLED_ROLE_PERMISSIONS = {
DEFAULT_USER: {
'can_add_repo': True,
@ -122,6 +124,7 @@ try:
except AttributeError:
pass # ignore error if ENABLED_ADMIN_ROLE_PERMISSIONS is not set in settings.py
def get_enabled_admin_role_permissions():
permissions = {}
for role, perms in admin_role_permissions.items():
@ -140,4 +143,5 @@ def get_enabled_admin_role_permissions():
return permissions
ENABLED_ADMIN_ROLE_PERMISSIONS = get_enabled_admin_role_permissions()

View File

@ -3,15 +3,17 @@ import logging
from .settings import ENABLED_ROLE_PERMISSIONS, ENABLED_ADMIN_ROLE_PERMISSIONS
from seahub.constants import DEFAULT_USER, DEFAULT_ADMIN
from seahub.constants import DEFAULT_USER, DEFAULT_ADMIN, AUDIT_ADMIN
logger = logging.getLogger(__name__)
def get_available_roles():
"""Get available roles defined in `ENABLED_ROLE_PERMISSIONS`.
"""
return list(ENABLED_ROLE_PERMISSIONS.keys())
def get_enabled_role_permissions_by_role(role):
"""Get permissions dict(perm_name: bool) of a role.
"""
@ -24,11 +26,13 @@ def get_enabled_role_permissions_by_role(role):
return ENABLED_ROLE_PERMISSIONS[role]
def get_available_admin_roles():
"""Get available admin roles defined in `ENABLED_ADMIN_ROLE_PERMISSIONS`.
"""
return list(ENABLED_ADMIN_ROLE_PERMISSIONS.keys())
def get_enabled_admin_role_permissions_by_role(role):
"""Get permissions dict(perm_name: bool) of a admin role.
"""
@ -37,7 +41,7 @@ def get_enabled_admin_role_permissions_by_role(role):
role = DEFAULT_ADMIN
if role not in list(ENABLED_ADMIN_ROLE_PERMISSIONS.keys()):
logger.warn('%s is not a valid admin role, use default admin role.' % role)
role = DEFAULT_ADMIN
logger.warn('%s is not a valid admin role, use audit admin role.' % role)
role = AUDIT_ADMIN
return ENABLED_ADMIN_ROLE_PERMISSIONS[role]