1919 get_subject_role_assignments ,
2020 get_subject_role_assignments_for_role_in_scope ,
2121 get_subject_role_assignments_in_scope ,
22+ get_subjects_for_role ,
2223 unassign_role_from_subject_in_scope ,
2324)
2425
3233 "get_user_role_assignments_for_role_in_scope" ,
3334 "get_all_user_role_assignments_in_scope" ,
3435 "is_user_allowed" ,
36+ "get_users_for_role" ,
3537]
3638
3739
38- def assign_role_to_user_in_scope (
39- user_external_key : str , role_external_key : str , scope_external_key : str
40- ) -> bool :
40+ def assign_role_to_user_in_scope (user_external_key : str , role_external_key : str , scope_external_key : str ) -> bool :
4141 """Assign a role to a user in a specific scope.
4242
4343 Args:
4444 user (str): ID of the user (e.g., 'john_doe').
4545 role_external_key (str): Name of the role to assign.
4646 scope (str): Scope in which to assign the role.
47+
48+ Returns:
49+ bool: True if the role was assigned successfully, False otherwise.
4750 """
48- assign_role_to_subject_in_scope (
51+ return assign_role_to_subject_in_scope (
4952 UserData (external_key = user_external_key ),
5053 RoleData (external_key = role_external_key ),
5154 ScopeData (external_key = scope_external_key ),
5255 )
5356
5457
55- def batch_assign_role_to_users_in_scope (
56- users : list [str ], role_external_key : str , scope_external_key : str
57- ):
58+ def batch_assign_role_to_users_in_scope (users : list [str ], role_external_key : str , scope_external_key : str ):
5859 """Assign a role to multiple users in a specific scope.
5960
6061 Args:
@@ -70,26 +71,25 @@ def batch_assign_role_to_users_in_scope(
7071 )
7172
7273
73- def unassign_role_from_user (
74- user_external_key : str , role_external_key : str , scope_external_key : str
75- ):
74+ def unassign_role_from_user (user_external_key : str , role_external_key : str , scope_external_key : str ):
7675 """Unassign a role from a user in a specific scope.
7776
7877 Args:
7978 user_external_key (str): ID of the user (e.g., 'john_doe').
8079 role_external_key (str): Name of the role to unassign.
8180 scope_external_key (str): Scope in which to unassign the role.
81+
82+ Returns:
83+ bool: True if the role was unassigned successfully, False otherwise.
8284 """
83- unassign_role_from_subject_in_scope (
85+ return unassign_role_from_subject_in_scope (
8486 UserData (external_key = user_external_key ),
8587 RoleData (external_key = role_external_key ),
8688 ScopeData (external_key = scope_external_key ),
8789 )
8890
8991
90- def batch_unassign_role_from_users (
91- users : list [str ], role_external_key : str , scope_external_key : str
92- ):
92+ def batch_unassign_role_from_users (users : list [str ], role_external_key : str , scope_external_key : str ):
9393 """Unassign a role from multiple users in a specific scope.
9494
9595 Args:
@@ -117,9 +117,7 @@ def get_user_role_assignments(user_external_key: str) -> list[RoleAssignmentData
117117 return get_subject_role_assignments (UserData (external_key = user_external_key ))
118118
119119
120- def get_user_role_assignments_in_scope (
121- user_external_key : str , scope_external_key : str
122- ) -> list [RoleAssignmentData ]:
120+ def get_user_role_assignments_in_scope (user_external_key : str , scope_external_key : str ) -> list [RoleAssignmentData ]:
123121 """Get the roles assigned to a user in a specific scope.
124122
125123 Args:
@@ -164,9 +162,7 @@ def get_all_user_role_assignments_in_scope(
164162 Returns:
165163 list[RoleAssignmentData]: A list of user role assignments and all their metadata in the specified scope.
166164 """
167- return get_all_subject_role_assignments_in_scope (
168- ScopeData (external_key = scope_external_key )
169- )
165+ return get_all_subject_role_assignments_in_scope (ScopeData (external_key = scope_external_key ))
170166
171167
172168def is_user_allowed (
@@ -189,3 +185,16 @@ def is_user_allowed(
189185 ActionData (external_key = action_external_key ),
190186 ScopeData (external_key = scope_external_key ),
191187 )
188+
189+
190+ def get_users_for_role (role_external_key : str ) -> list [UserData ]:
191+ """Get all the users assigned to a specific role.
192+
193+ Args:
194+ role_external_key (str): The role to filter users (e.g., 'library_admin').
195+
196+ Returns:
197+ list[UserData]: A list of users assigned to the specified role.
198+ """
199+ users = get_subjects_for_role (RoleData (external_key = role_external_key ))
200+ return [UserData (namespaced_key = user .namespaced_key ) for user in users ]
0 commit comments