Skip to content

Commit b91b99f

Browse files
fix: add clear access vars and fix sandbox menu (#8823)
1 parent a4f0573 commit b91b99f

File tree

2 files changed

+24
-10
lines changed

2 files changed

+24
-10
lines changed

packages/app/src/app/hooks/useWorkspaceAuthorization.ts

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ type WorkspaceAuthorizationReturn =
1010
isTeamEditor: undefined;
1111
isTeamViewer: undefined;
1212
userRole: undefined;
13+
hasAdminAccess: undefined;
14+
hasEditorAccess: undefined;
15+
hasViewerAccess: undefined;
1316
}
1417
| {
1518
isAdmin: boolean;
@@ -19,6 +22,9 @@ type WorkspaceAuthorizationReturn =
1922
isTeamEditor: boolean;
2023
isTeamViewer: boolean;
2124
userRole: TeamMemberAuthorization;
25+
hasAdminAccess: boolean;
26+
hasEditorAccess: boolean;
27+
hasViewerAccess: boolean;
2228
};
2329

2430
export const useWorkspaceAuthorization = (): WorkspaceAuthorizationReturn => {
@@ -42,6 +48,9 @@ export const useWorkspaceAuthorization = (): WorkspaceAuthorizationReturn => {
4248
isTeamEditor: undefined,
4349
isTeamViewer: undefined,
4450
userRole: undefined,
51+
hasAdminAccess: undefined,
52+
hasEditorAccess: undefined,
53+
hasViewerAccess: undefined,
4554
};
4655
}
4756

@@ -52,10 +61,12 @@ export const useWorkspaceAuthorization = (): WorkspaceAuthorizationReturn => {
5261
const isAdmin = authorization === TeamMemberAuthorization.Admin;
5362

5463
const isTeamAdmin = isAdmin;
64+
const isTeamEditor = authorization === TeamMemberAuthorization.Write;
65+
const isTeamViewer = authorization === TeamMemberAuthorization.Read;
5566

56-
const isTeamEditor = authorization === TeamMemberAuthorization.Write || isTeamAdmin;
57-
58-
const isTeamViewer = authorization === TeamMemberAuthorization.Read || isTeamEditor || isTeamAdmin;
67+
const hasAdminAccess = isTeamAdmin;
68+
const hasEditorAccess = isTeamEditor || isTeamAdmin;
69+
const hasViewerAccess = isTeamViewer || isTeamEditor || isTeamAdmin;
5970

6071
return {
6172
isBillingManager: Boolean(teamManager) || isAdmin,
@@ -65,5 +76,8 @@ export const useWorkspaceAuthorization = (): WorkspaceAuthorizationReturn => {
6576
isTeamEditor,
6677
isTeamViewer,
6778
userRole: authorization ?? undefined,
79+
hasAdminAccess,
80+
hasEditorAccess,
81+
hasViewerAccess,
6882
};
6983
};

packages/app/src/app/pages/Dashboard/Components/Selection/ContextMenus/SandboxMenu.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ export const SandboxMenu: React.FC<SandboxMenuProps> = ({
3535
const { visible, setVisibility, position } = React.useContext(Context);
3636
const history = useHistory();
3737
const location = useLocation();
38-
const { userRole, isTeamAdmin, isTeamViewer } = useWorkspaceAuthorization();
38+
const { userRole, hasAdminAccess, hasEditorAccess } = useWorkspaceAuthorization();
3939
const { isFrozen } = useWorkspaceLimits();
4040

4141
const url = sandboxUrl(sandbox);
@@ -44,15 +44,15 @@ export const SandboxMenu: React.FC<SandboxMenuProps> = ({
4444

4545
const restrictedFork = isFrozen;
4646

47-
const hasAccess = React.useMemo(() => {
47+
const isInActiveTeam = React.useMemo(() => {
4848
if (item.sandbox.teamId === activeTeam) {
4949
return true;
5050
}
5151

5252
return false;
5353
}, [item, activeTeam]);
5454

55-
const hasWriteAccess = hasAccess && !isTeamViewer;
55+
const hasWriteAccess = isInActiveTeam && hasEditorAccess;
5656

5757
if (location.pathname.includes('deleted') && hasWriteAccess) {
5858
return (
@@ -127,7 +127,7 @@ export const SandboxMenu: React.FC<SandboxMenuProps> = ({
127127
>
128128
Copy link
129129
</MenuItem>
130-
{hasAccess && location.pathname === '/dashboard/recent' ? (
130+
{isInActiveTeam && location.pathname === '/dashboard/recent' ? (
131131
<MenuItem
132132
onSelect={() => {
133133
history.push(folderUrl, { sandboxId: sandbox.id });
@@ -278,7 +278,7 @@ export const SandboxMenu: React.FC<SandboxMenuProps> = ({
278278
</MenuItem>
279279
)}
280280

281-
{hasAccess &&
281+
{isInActiveTeam &&
282282
(isTemplate ? (
283283
<MenuItem
284284
onSelect={() => {
@@ -303,7 +303,7 @@ export const SandboxMenu: React.FC<SandboxMenuProps> = ({
303303
</MenuItem>
304304
))}
305305
{isPro &&
306-
isTeamAdmin &&
306+
hasAdminAccess &&
307307
(sandbox.permissions.preventSandboxLeaving ? (
308308
<MenuItem
309309
onSelect={() => {
@@ -329,7 +329,7 @@ export const SandboxMenu: React.FC<SandboxMenuProps> = ({
329329
))}
330330
{!sandbox.isV2 &&
331331
isPro &&
332-
isTeamAdmin &&
332+
hasAdminAccess &&
333333
(sandbox.permissions.preventSandboxExport ? (
334334
<MenuItem
335335
onSelect={() => {

0 commit comments

Comments
 (0)