From 3124cf7b942a931b72f39573c0ee6752000f4e74 Mon Sep 17 00:00:00 2001 From: seongjinyoon Date: Sun, 11 Jan 2026 15:11:13 -0800 Subject: [PATCH 1/2] fix revoke access to not clone workflow --- .../user/workflow/WorkflowResource.scala | 8 +++-- .../share-access/share-access.component.html | 2 +- .../share-access/share-access.component.ts | 32 +++++++++++++++++-- .../component/menu/menu.component.ts | 12 +++++-- 4 files changed, 47 insertions(+), 7 deletions(-) diff --git a/amber/src/main/scala/org/apache/texera/web/resource/dashboard/user/workflow/WorkflowResource.scala b/amber/src/main/scala/org/apache/texera/web/resource/dashboard/user/workflow/WorkflowResource.scala index 45ed49a23dc..fc59f91ae2f 100644 --- a/amber/src/main/scala/org/apache/texera/web/resource/dashboard/user/workflow/WorkflowResource.scala +++ b/amber/src/main/scala/org/apache/texera/web/resource/dashboard/user/workflow/WorkflowResource.scala @@ -431,8 +431,12 @@ class WorkflowResource extends LazyLogging { workflowDao.update(workflow) } else { if (!WorkflowAccessResource.hasReadAccess(workflow.getWid, user.getUid)) { - // not owner and no access record --> new record - workflow.setWid(null) + // Check if this is an existing workflow (has a wid) or a new one (wid is null) + if (workflow.getWid != null) { + // User trying to persist an existing workflow without access - reject + throw new ForbiddenException("No sufficient access privilege.") + } + // This is a new workflow being created (wid is null) insertWorkflow(workflow, user) WorkflowVersionResource.insertVersion(workflow, insertingNewWorkflow = true) } else if (WorkflowAccessResource.hasWriteAccess(workflow.getWid, user.getUid)) { diff --git a/frontend/src/app/dashboard/component/user/share-access/share-access.component.html b/frontend/src/app/dashboard/component/user/share-access/share-access.component.html index f181ef839d5..717c1cbc188 100644 --- a/frontend/src/app/dashboard/component/user/share-access/share-access.component.html +++ b/frontend/src/app/dashboard/component/user/share-access/share-access.component.html @@ -154,7 +154,7 @@ {{ entry.privilege }} {{ entry.email }} ({{ entry.name }})