Skip to content

Commit 0c88e6e

Browse files
committed
fix: add SELF auth role so users can remove themselves from a workspace (#16066)
1 parent 692d597 commit 0c88e6e

File tree

4 files changed

+7
-11
lines changed

4 files changed

+7
-11
lines changed

airbyte-api/server-api/src/main/openapi/config.yaml

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13602,17 +13602,13 @@ components:
1360213602
PermissionDeleteUserFromWorkspaceRequestBody:
1360313603
type: object
1360413604
required:
13605-
- userIdToRemove
13605+
- userId
1360613606
- workspaceId
1360713607
properties:
13608-
userIdToRemove:
13609-
type: string
13610-
format: uuid
13611-
description: The user ID for which to remove workspace permissions
13608+
userId:
13609+
$ref: "#/components/schemas/UserId"
1361213610
workspaceId:
13613-
type: string
13614-
format: uuid
13615-
description: The workspace ID from which to remove all workspace-level permissions for the indicated user
13611+
$ref: "#/components/schemas/WorkspaceId"
1361613612
PermissionRead:
1361713613
type: object
1361813614
required:

airbyte-commons-server/src/main/java/io/airbyte/commons/server/handlers/PermissionHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -429,7 +429,7 @@ public void deletePermission(final PermissionIdRequestBody permissionIdRequestBo
429429
*/
430430
public void deleteUserFromWorkspace(final PermissionDeleteUserFromWorkspaceRequestBody deleteUserFromWorkspaceRequestBody)
431431
throws IOException {
432-
final UUID userId = deleteUserFromWorkspaceRequestBody.getUserIdToRemove();
432+
final UUID userId = deleteUserFromWorkspaceRequestBody.getUserId();
433433
final UUID workspaceId = deleteUserFromWorkspaceRequestBody.getWorkspaceId();
434434

435435
// delete all workspace-level permissions that match the userId and workspaceId

airbyte-commons-server/src/test/java/io/airbyte/commons/server/handlers/PermissionHandlerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -712,7 +712,7 @@ void testDeleteUserFromWorkspace() throws Exception {
712712
when(permissionPersistence.listPermissionsByUser(USER_ID)).thenReturn(
713713
List.of(workspacePermission, otherWorkspacePermission, orgPermission));
714714

715-
permissionHandler.deleteUserFromWorkspace(new PermissionDeleteUserFromWorkspaceRequestBody().userIdToRemove(USER_ID).workspaceId(WORKSPACE_ID));
715+
permissionHandler.deleteUserFromWorkspace(new PermissionDeleteUserFromWorkspaceRequestBody().userId(USER_ID).workspaceId(WORKSPACE_ID));
716716

717717
// verify the intended permission was deleted
718718
verify(permissionService).deletePermissions(List.of(workspacePermission.getPermissionId()));

airbyte-server/src/main/kotlin/io/airbyte/server/apis/controllers/PermissionApiController.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ open class PermissionApiController(
102102
}
103103
}
104104

105-
@Secured(AuthRoleConstants.ORGANIZATION_ADMIN, AuthRoleConstants.WORKSPACE_ADMIN)
105+
@Secured(AuthRoleConstants.ORGANIZATION_ADMIN, AuthRoleConstants.WORKSPACE_ADMIN, AuthRoleConstants.SELF)
106106
@Post("/delete_user_from_workspace")
107107
override fun deleteUserFromWorkspace(
108108
@Body permissionDeleteUserFromWorkspaceRequestBody: PermissionDeleteUserFromWorkspaceRequestBody,

0 commit comments

Comments
 (0)