11from django .apps import apps
2- from django .conf import settings
2+ from django .conf import LazySettings , settings
33from django .db .models import Model
44from django .db .models .query import QuerySet
55from django .utils .translation import gettext_lazy as _
1212from ansible_base .rbac .validators import permissions_allowed_for_role
1313
1414
15- def visible_users (request_user , queryset = None , always_show_superusers = True , always_show_self = True ) -> QuerySet :
15+ def visible_users (request_user , queryset = None , always_show_superusers = True , always_show_self = True , settings_module : LazySettings = settings ) -> QuerySet :
1616 """Gives a queryset of users that another user should be able to view"""
1717 user_cls = permission_registry .user_model
1818 org_cls = apps .get_model (settings .ANSIBLE_BASE_ORGANIZATION_MODEL )
1919
20- if can_view_all_users (request_user ):
20+ if can_view_all_users (request_user , settings_module = settings_module ):
2121 if queryset is not None :
2222 return queryset
2323 else :
@@ -38,22 +38,22 @@ def visible_users(request_user, queryset=None, always_show_superusers=True, alwa
3838 return queryset .distinct ()
3939
4040
41- def can_view_all_users (request_user ):
41+ def can_view_all_users (request_user , settings_module : LazySettings = settings ):
4242 org_cls = apps .get_model (settings .ANSIBLE_BASE_ORGANIZATION_MODEL )
4343
4444 return has_super_permission (request_user , 'view' ) or (
45- get_setting ('ORG_ADMINS_CAN_SEE_ALL_USERS' , False ) and org_cls .access_ids_qs (request_user , 'change' ).exists ()
45+ get_setting ('ORG_ADMINS_CAN_SEE_ALL_USERS' , False , settings_module = settings_module ) and org_cls .access_ids_qs (request_user , 'change' ).exists ()
4646 )
4747
4848
49- def can_change_user (request_user , target_user ) -> bool :
49+ def can_change_user (request_user , target_user , settings_module : LazySettings = settings ) -> bool :
5050 """Tells if the request user can modify details of the target user"""
5151 if request_user .is_superuser :
5252 return True
5353 elif target_user .is_superuser :
5454 return False # target is a superuser and request user is not
5555
56- if not get_setting ('MANAGE_ORGANIZATION_AUTH' , False ):
56+ if not get_setting ('MANAGE_ORGANIZATION_AUTH' , False , settings_module = settings_module ):
5757 return False
5858
5959 # All users can change their own password and other details
0 commit comments