diff --git a/hb_server/apps/system/permission.py b/hb_server/apps/system/permission.py index 397d906..ef60799 100644 --- a/hb_server/apps/system/permission.py +++ b/hb_server/apps/system/permission.py @@ -8,17 +8,21 @@ def get_permission_list(user): """ 获取权限列表,可用redis存取 """ - perms_list = ['visitor'] + perms_list = [] if user.is_superuser: perms_list = ['admin'] else: - perms = Permission.objects.none() + perms = Permission.objects.filter() roles = user.roles.all() if roles: for i in roles: perms = perms | i.perms.all() - perms_list = perms.values_list('method', flat=True) - perms_list = list(set(perms_list)) + perms_list_l = perms.values_list('method', flat=True) + for i in perms_list_l: + if i and i not in perms_list: + perms_list.append(i) + if len(perms_list) == 0: + perms_list = ['visitor'] cache.set(user.username + '__perms', perms_list, 60*60) return perms_list