Skip to content

Commit 49951a6

Browse files
committed
fix: revert create createWorkspaceForUser permissions
1 parent af721d2 commit 49951a6

File tree

4 files changed

+24
-15
lines changed

4 files changed

+24
-15
lines changed

site/src/pages/CreateWorkspacePage/CreateWorkspacePage.tsx

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,6 @@ import { Loader } from "components/Loader/Loader";
1717
import { useAuthenticated } from "contexts/auth/RequireAuth";
1818
import { useEffectEvent } from "hooks/hookPolyfills";
1919
import { useDashboard } from "modules/dashboard/useDashboard";
20-
import {
21-
type WorkspacePermissions,
22-
workspacePermissionChecks,
23-
} from "modules/permissions/workspaces";
2420
import { generateWorkspaceName } from "modules/workspaces/generateWorkspaceName";
2521
import { type FC, useCallback, useEffect, useRef, useState } from "react";
2622
import { Helmet } from "react-helmet-async";
@@ -30,6 +26,7 @@ import { pageTitle } from "utils/page";
3026
import type { AutofillBuildParameter } from "utils/richParameters";
3127
import { paramsUsedToCreateWorkspace } from "utils/workspace";
3228
import { CreateWorkspacePageView } from "./CreateWorkspacePageView";
29+
import { type CreateWSPermissions, createWorkspaceChecks } from "./permissions";
3330

3431
export const createWorkspaceModes = ["form", "auto", "duplicate"] as const;
3532
export type CreateWorkspaceMode = (typeof createWorkspaceModes)[number];
@@ -67,10 +64,7 @@ const CreateWorkspacePage: FC = () => {
6764
const permissionsQuery = useQuery(
6865
templateQuery.data
6966
? checkAuthorization({
70-
checks: workspacePermissionChecks(
71-
templateQuery.data.organization_id,
72-
me.id,
73-
),
67+
checks: createWorkspaceChecks(templateQuery.data.organization_id),
7468
})
7569
: { enabled: false },
7670
);
@@ -212,7 +206,7 @@ const CreateWorkspacePage: FC = () => {
212206
externalAuthPollingState={externalAuthPollingState}
213207
startPollingExternalAuth={startPollingExternalAuth}
214208
hasAllRequiredExternalAuth={hasAllRequiredExternalAuth}
215-
permissions={permissionsQuery.data as WorkspacePermissions}
209+
permissions={permissionsQuery.data as CreateWSPermissions}
216210
parameters={realizedParameters as TemplateVersionParameter[]}
217211
presets={templateVersionPresetsQuery.data ?? []}
218212
creatingWorkspace={createWorkspaceMutation.isLoading}

site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.stories.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ const meta: Meta<typeof CreateWorkspacePageView> = {
2727
hasAllRequiredExternalAuth: true,
2828
mode: "form",
2929
permissions: {
30-
createWorkspace: true,
30+
createWorkspaceForUser: true,
3131
},
3232
onCancel: action("onCancel"),
3333
},

site/src/pages/CreateWorkspacePage/CreateWorkspacePageView.tsx

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ import { Stack } from "components/Stack/Stack";
2828
import { Switch } from "components/Switch/Switch";
2929
import { UserAutocomplete } from "components/UserAutocomplete/UserAutocomplete";
3030
import { type FormikContextType, useFormik } from "formik";
31-
import type { WorkspacePermissions } from "modules/permissions/workspaces";
3231
import { generateWorkspaceName } from "modules/workspaces/generateWorkspaceName";
3332
import { type FC, useCallback, useEffect, useMemo, useState } from "react";
3433
import {
@@ -47,7 +46,7 @@ import type {
4746
ExternalAuthPollingState,
4847
} from "./CreateWorkspacePage";
4948
import { ExternalAuthButton } from "./ExternalAuthButton";
50-
49+
import type { CreateWSPermissions } from "./permissions";
5150
export const Language = {
5251
duplicationWarning:
5352
"Duplicating a workspace only copies its parameters. No state from the old workspace is copied over.",
@@ -69,7 +68,7 @@ export interface CreateWorkspacePageViewProps {
6968
parameters: TypesGen.TemplateVersionParameter[];
7069
autofillParameters: AutofillBuildParameter[];
7170
presets: TypesGen.Preset[];
72-
permissions: WorkspacePermissions;
71+
permissions: CreateWSPermissions;
7372
creatingWorkspace: boolean;
7473
onCancel: () => void;
7574
onSubmit: (
@@ -256,7 +255,7 @@ export const CreateWorkspacePageView: FC<CreateWorkspacePageViewProps> = ({
256255
<FormSection
257256
title="General"
258257
description={
259-
permissions.createWorkspace
258+
permissions.createWorkspaceForUser
260259
? "The name of the workspace and its owner. Only admins can create workspaces for other users."
261260
: "The name of your new workspace."
262261
}
@@ -301,7 +300,7 @@ export const CreateWorkspacePageView: FC<CreateWorkspacePageViewProps> = ({
301300
</FormHelperText>
302301
</div>
303302

304-
{permissions.createWorkspace && (
303+
{permissions.createWorkspaceForUser && (
305304
<UserAutocomplete
306305
value={owner}
307306
onChange={(user) => {
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
export const createWorkspaceChecks = (organizationId: string) =>
2+
({
3+
createWorkspaceForUser: {
4+
object: {
5+
resource_type: "workspace",
6+
organization_id: organizationId,
7+
owner_id: "*",
8+
},
9+
action: "create",
10+
},
11+
}) as const;
12+
13+
export type CreateWSPermissions = Record<
14+
keyof ReturnType<typeof createWorkspaceChecks>,
15+
boolean
16+
>;

0 commit comments

Comments
 (0)