Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitae67e33

Browse files
authored
fix: set permissions for experimental Createworkspace page (#17254)
1 parent510bc37 commitae67e33

13 files changed

+54
-47
lines changed

‎site/src/modules/permissions/workspaces.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ export const workspacePermissionChecks = (
33
userId:string,
44
)=>
55
({
6-
createWorkspace:{
6+
createWorkspaceForUserID:{
77
object:{
88
resource_type:"workspace",
99
organization_id:organizationId,

‎site/src/pages/CreateWorkspacePage/CreateWorkspacePage.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,10 @@ import { pageTitle } from "utils/page";
2626
importtype{AutofillBuildParameter}from"utils/richParameters";
2727
import{paramsUsedToCreateWorkspace}from"utils/workspace";
2828
import{CreateWorkspacePageView}from"./CreateWorkspacePageView";
29-
import{typeCreateWSPermissions,createWorkspaceChecks}from"./permissions";
29+
import{
30+
typeCreateWorkspacePermissions,
31+
createWorkspaceChecks,
32+
}from"./permissions";
3033

3134
exportconstcreateWorkspaceModes=["form","auto","duplicate"]asconst;
3235
exporttypeCreateWorkspaceMode=(typeofcreateWorkspaceModes)[number];
@@ -206,7 +209,7 @@ const CreateWorkspacePage: FC = () => {
206209
externalAuthPollingState={externalAuthPollingState}
207210
startPollingExternalAuth={startPollingExternalAuth}
208211
hasAllRequiredExternalAuth={hasAllRequiredExternalAuth}
209-
permissions={permissionsQuery.dataasCreateWSPermissions}
212+
permissions={permissionsQuery.dataasCreateWorkspacePermissions}
210213
parameters={realizedParametersasTemplateVersionParameter[]}
211214
presets={templateVersionPresetsQuery.data??[]}
212215
creatingWorkspace={createWorkspaceMutation.isLoading}

‎site/src/pages/CreateWorkspacePage/CreateWorkspacePageExperimental.tsx

Lines changed: 6 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-
typeWorkspacePermissions,
22-
workspacePermissionChecks,
23-
}from"modules/permissions/workspaces";
2420
import{generateWorkspaceName}from"modules/workspaces/generateWorkspaceName";
2521
import{typeFC,useCallback,useEffect,useRef,useState}from"react";
2622
import{Helmet}from"react-helmet-async";
@@ -32,6 +28,10 @@ import { paramsUsedToCreateWorkspace } from "utils/workspace";
3228
import{CreateWorkspacePageViewExperimental}from"./CreateWorkspacePageViewExperimental";
3329
exportconstcreateWorkspaceModes=["form","auto","duplicate"]asconst;
3430
exporttypeCreateWorkspaceMode=(typeofcreateWorkspaceModes)[number];
31+
import{
32+
typeCreateWorkspacePermissions,
33+
createWorkspaceChecks,
34+
}from"./permissions";
3535

3636
exporttypeExternalAuthPollingState="idle"|"polling"|"abandoned";
3737

@@ -66,10 +66,7 @@ const CreateWorkspacePageExperimental: FC = () => {
6666
constpermissionsQuery=useQuery(
6767
templateQuery.data
6868
?checkAuthorization({
69-
checks:workspacePermissionChecks(
70-
templateQuery.data.organization_id,
71-
me.id,
72-
),
69+
checks:createWorkspaceChecks(templateQuery.data.organization_id),
7370
})
7471
:{enabled:false},
7572
);
@@ -211,7 +208,7 @@ const CreateWorkspacePageExperimental: FC = () => {
211208
externalAuthPollingState={externalAuthPollingState}
212209
startPollingExternalAuth={startPollingExternalAuth}
213210
hasAllRequiredExternalAuth={hasAllRequiredExternalAuth}
214-
permissions={permissionsQuery.dataasWorkspacePermissions}
211+
permissions={permissionsQuery.dataasCreateWorkspacePermissions}
215212
parameters={realizedParametersasTemplateVersionParameter[]}
216213
presets={templateVersionPresetsQuery.data??[]}
217214
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-
createWorkspaceForUser:true,
30+
createWorkspaceForAny:true,
3131
},
3232
onCancel:action("onCancel"),
3333
},

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ import type {
4646
ExternalAuthPollingState,
4747
}from"./CreateWorkspacePage";
4848
import{ExternalAuthButton}from"./ExternalAuthButton";
49-
importtype{CreateWSPermissions}from"./permissions";
49+
importtype{CreateWorkspacePermissions}from"./permissions";
5050
exportconstLanguage={
5151
duplicationWarning:
5252
"Duplicating a workspace only copies its parameters. No state from the old workspace is copied over.",
@@ -68,7 +68,7 @@ export interface CreateWorkspacePageViewProps {
6868
parameters:TypesGen.TemplateVersionParameter[];
6969
autofillParameters:AutofillBuildParameter[];
7070
presets:TypesGen.Preset[];
71-
permissions:CreateWSPermissions;
71+
permissions:CreateWorkspacePermissions;
7272
creatingWorkspace:boolean;
7373
onCancel:()=>void;
7474
onSubmit:(
@@ -255,7 +255,7 @@ export const CreateWorkspacePageView: FC<CreateWorkspacePageViewProps> = ({
255255
<FormSection
256256
title="General"
257257
description={
258-
permissions.createWorkspaceForUser
258+
permissions.createWorkspaceForAny
259259
?"The name of the workspace and its owner. Only admins can create workspaces for other users."
260260
:"The name of your new workspace."
261261
}
@@ -300,7 +300,7 @@ export const CreateWorkspacePageView: FC<CreateWorkspacePageViewProps> = ({
300300
</FormHelperText>
301301
</div>
302302

303-
{permissions.createWorkspaceForUser&&(
303+
{permissions.createWorkspaceForAny&&(
304304
<UserAutocomplete
305305
value={owner}
306306
onChange={(user)=>{

‎site/src/pages/CreateWorkspacePage/CreateWorkspacePageViewExperimental.tsx

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import { Stack } from "components/Stack/Stack";
1515
import{UserAutocomplete}from"components/UserAutocomplete/UserAutocomplete";
1616
import{typeFormikContextType,useFormik}from"formik";
1717
import{ArrowLeft}from"lucide-react";
18-
importtype{WorkspacePermissions}from"modules/permissions/workspaces";
1918
import{generateWorkspaceName}from"modules/workspaces/generateWorkspaceName";
2019
import{
2120
typeFC,
@@ -37,7 +36,7 @@ import type {
3736
ExternalAuthPollingState,
3837
}from"./CreateWorkspacePage";
3938
import{ExternalAuthButton}from"./ExternalAuthButton";
40-
39+
importtype{CreateWorkspacePermissions}from"./permissions";
4140
exportconstLanguage={
4241
duplicationWarning:
4342
"Duplicating a workspace only copies its parameters. No state from the old workspace is copied over.",
@@ -59,7 +58,7 @@ export interface CreateWorkspacePageViewExperimentalProps {
5958
parameters:TypesGen.TemplateVersionParameter[];
6059
autofillParameters:AutofillBuildParameter[];
6160
presets:TypesGen.Preset[];
62-
permissions:WorkspacePermissions;
61+
permissions:CreateWorkspacePermissions;
6362
creatingWorkspace:boolean;
6463
onCancel:()=>void;
6564
onSubmit:(
@@ -253,7 +252,7 @@ export const CreateWorkspacePageViewExperimental: FC<
253252
<hgroup>
254253
<h2className="text-xl font-semibold m-0">General</h2>
255254
<pclassName="text-sm text-content-secondary mt-0">
256-
{permissions.createWorkspace
255+
{permissions.createWorkspaceForAny
257256
?"Only admins can create workspaces for other users."
258257
:"The name of your new workspace."}
259258
</p>
@@ -300,7 +299,7 @@ export const CreateWorkspacePageViewExperimental: FC<
300299
</div>
301300
</div>
302301
</div>
303-
{permissions.createWorkspace&&(
302+
{permissions.createWorkspaceForAny&&(
304303
<divclassName="flex flex-col gap-2 flex-1">
305304
<LabelclassName="text-sm"htmlFor={`${id}-workspace-name`}>
306305
Owner
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
exportconstcreateWorkspaceChecks=(organizationId:string)=>
22
({
3-
createWorkspaceForUser:{
3+
createWorkspaceForAny:{
44
object:{
55
resource_type:"workspace",
66
organization_id:organizationId,
@@ -10,7 +10,7 @@ export const createWorkspaceChecks = (organizationId: string) =>
1010
},
1111
})asconst;
1212

13-
exporttypeCreateWSPermissions=Record<
13+
exporttypeCreateWorkspacePermissions=Record<
1414
keyofReturnType<typeofcreateWorkspaceChecks>,
1515
boolean
1616
>;

‎site/src/pages/TemplatePage/TemplateLayout.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@ import { Loader } from "components/Loader/Loader";
66
import{Margins}from"components/Margins/Margins";
77
import{TabLink,Tabs,TabsList}from"components/Tabs/Tabs";
88
import{useAuthenticated}from"contexts/auth/RequireAuth";
9-
import{workspacePermissionChecks}from"modules/permissions/workspaces";
9+
import{
10+
typeWorkspacePermissions,
11+
workspacePermissionChecks,
12+
}from"modules/permissions/workspaces";
1013
import{
1114
typeFC,
1215
typePropsWithChildren,
@@ -113,7 +116,9 @@ export const TemplateLayout: FC<PropsWithChildren> = ({
113116
template={data.template}
114117
activeVersion={data.activeVersion}
115118
permissions={data.permissions}
116-
workspacePermissions={workspacePermissionsQuery.data}
119+
workspacePermissions={
120+
workspacePermissionsQuery.dataasWorkspacePermissions
121+
}
117122
onDeleteTemplate={()=>{
118123
navigate("/templates");
119124
}}

‎site/src/pages/TemplatePage/TemplatePageHeader.stories.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ const meta: Meta<typeof TemplatePageHeader> = {
1414
canUpdateTemplate:true,
1515
},
1616
workspacePermissions:{
17-
createWorkspace:true,
17+
createWorkspaceForUserID:true,
1818
},
1919
},
2020
};
@@ -35,7 +35,7 @@ export const CanNotUpdate: Story = {
3535
exportconstCannotCreateWorkspace:Story={
3636
args:{
3737
workspacePermissions:{
38-
createWorkspace:false,
38+
createWorkspaceForUserID:false,
3939
},
4040
},
4141
};

‎site/src/pages/TemplatePage/TemplatePageHeader.tsx

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import {
3131
import{Pill}from"components/Pill/Pill";
3232
import{Stack}from"components/Stack/Stack";
3333
import{linkToTemplate,useLinks}from"modules/navigation";
34+
importtype{WorkspacePermissions}from"modules/permissions/workspaces";
3435
importtype{FC}from"react";
3536
import{useQuery}from"react-query";
3637
import{LinkasRouterLink,useNavigate}from"react-router-dom";
@@ -158,7 +159,7 @@ export type TemplatePageHeaderProps = {
158159
template:Template;
159160
activeVersion:TemplateVersion;
160161
permissions:AuthorizationResponse;
161-
workspacePermissions:AuthorizationResponse;
162+
workspacePermissions:WorkspacePermissions;
162163
onDeleteTemplate:()=>void;
163164
};
164165

@@ -179,16 +180,17 @@ export const TemplatePageHeader: FC<TemplatePageHeaderProps> = ({
179180
<PageHeader
180181
actions={
181182
<>
182-
{!template.deprecated&&workspacePermissions.createWorkspace&&(
183-
<Button
184-
variant="contained"
185-
startIcon={<AddIcon/>}
186-
component={RouterLink}
187-
to={`${templateLink}/workspace`}
188-
>
189-
Create Workspace
190-
</Button>
191-
)}
183+
{!template.deprecated&&
184+
workspacePermissions.createWorkspaceForUserID&&(
185+
<Button
186+
variant="contained"
187+
startIcon={<AddIcon/>}
188+
component={RouterLink}
189+
to={`${templateLink}/workspace`}
190+
>
191+
Create Workspace
192+
</Button>
193+
)}
192194

193195
{permissions.canUpdateTemplate&&(
194196
<TemplateMenu

‎site/src/pages/TemplatesPage/TemplatesPageView.stories.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ export const WithTemplates: Story = {
7676
examples:[],
7777
workspacePermissions:{
7878
[MockTemplate.organization_id]:{
79-
createWorkspace:true,
79+
createWorkspaceForUserID:true,
8080
},
8181
},
8282
},
@@ -94,7 +94,7 @@ export const CannotCreateWorkspaces: Story = {
9494
...WithTemplates.args,
9595
workspacePermissions:{
9696
[MockTemplate.organization_id]:{
97-
createWorkspace:false,
97+
createWorkspaceForUserID:false,
9898
},
9999
},
100100
},

‎site/src/pages/TemplatesPage/TemplatesPageView.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ const TemplateRow: FC<TemplateRowProps> = ({
160160
{template.deprecated ?(
161161
<DeprecatedBadge/>
162162
) :workspacePermissions?.[template.organization_id]
163-
?.createWorkspace ?(
163+
?.createWorkspaceForUserID ?(
164164
<MuiButton
165165
size="small"
166166
css={styles.actionButton}

‎site/src/pages/WorkspacesPage/WorkspacesPage.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ const WorkspacesPage: FC = () => {
4545

4646
consttemplatesQuery=useQuery(templates());
4747

48-
constorgPermissionsQuery=useQuery(
48+
constworkspacePermissionsQuery=useQuery(
4949
workspacePermissionsByOrganization(
5050
templatesQuery.data?.map((template)=>template.organization_id),
5151
me.id,
@@ -54,15 +54,16 @@ const WorkspacesPage: FC = () => {
5454

5555
// Filter templates based on workspace creation permission
5656
constfilteredTemplates=useMemo(()=>{
57-
if(!templatesQuery.data||!orgPermissionsQuery.data){
57+
if(!templatesQuery.data||!workspacePermissionsQuery.data){
5858
returntemplatesQuery.data;
5959
}
6060

6161
returntemplatesQuery.data.filter((template)=>{
62-
constorgPermission=orgPermissionsQuery.data[template.organization_id];
63-
returnorgPermission?.createWorkspace;
62+
constworkspacePermission=
63+
workspacePermissionsQuery.data[template.organization_id];
64+
returnworkspacePermission?.createWorkspaceForUserID;
6465
});
65-
},[templatesQuery.data,orgPermissionsQuery.data]);
66+
},[templatesQuery.data,workspacePermissionsQuery.data]);
6667

6768
constfilterProps=useWorkspacesFilter({
6869
searchParamsResult,

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp