9
9
workspaces_users_admin_router = APIRouter (dependencies = [Depends (get_current_admin_user )])
10
10
workspaces_users_shared_router = APIRouter (dependencies = [Depends (get_current_workspace_owner_or_researcher_user_or_airlock_manager_or_tre_admin )])
11
11
12
+
12
13
@workspaces_users_shared_router .get ("/workspaces/{workspace_id}/users" , response_model = UsersInResponse , name = strings .API_GET_WORKSPACE_USERS )
13
14
async def get_workspace_users (workspace = Depends (get_workspace_by_id_from_path )) -> UsersInResponse :
14
15
access_service = get_access_service ()
15
16
users = access_service .get_workspace_users (workspace )
16
17
return UsersInResponse (users = users )
17
18
19
+
18
20
@workspaces_users_admin_router .get ("/workspaces/{workspace_id}/assignable-users" , response_model = AssignableUsersInResponse , name = strings .API_GET_ASSIGNABLE_USERS )
19
21
async def get_assignable_users (workspace = Depends (get_workspace_by_id_from_path )) -> AssignableUsersInResponse :
20
22
access_service = get_access_service ()
@@ -28,6 +30,7 @@ async def get_workspace_roles(workspace=Depends(get_workspace_by_id_from_path))
28
30
roles = access_service .get_workspace_roles (workspace )
29
31
return RolesInResponse (roles = roles )
30
32
33
+
31
34
@workspaces_users_admin_router .post ("/workspaces/{workspace_id}/users/assign" , status_code = status .HTTP_202_ACCEPTED , name = strings .API_ASSIGN_WORKSPACE_USER )
32
35
async def assign_workspace_user (response : Response , user_email : str , role_name : str , workspace = Depends (get_workspace_by_id_from_path )) -> UsersInResponse :
33
36
access_service = get_access_service ()
@@ -38,12 +41,13 @@ async def assign_workspace_user(response: Response, user_email: str, role_name:
38
41
access_service .assign_workspace_user (
39
42
user ,
40
43
workspace ,
41
- role ,
44
+ role
42
45
)
43
46
44
47
users = access_service .get_workspace_users (workspace )
45
48
return UsersInResponse (users = users )
46
49
50
+
47
51
@workspaces_users_admin_router .delete ("/workspaces/{workspace_id}/users/assign" ,
48
52
status_code = status .HTTP_202_ACCEPTED ,
49
53
name = strings .API_REMOVE_WORKSPACE_USER_ASSIGNMENT )
0 commit comments