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

Commitbe24cb8

Browse files
committed
Scope create template button to any org
If you can create a template in any organization, you will see thecreate template button in the workspace page. The permission is renamedto canCreateAnyTemplate to make it clear any org will work.Additionally, renamed updateTemplates to updateAllTemplates to make itclear the permission is site-wide.I removed deleteTemplates because it is not used anywhere.
1 parent848815c commitbe24cb8

File tree

13 files changed

+43
-46
lines changed

13 files changed

+43
-46
lines changed

‎site/src/contexts/auth/permissions.tsx

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,9 @@ export const checks = {
22
viewAllUsers:"viewAllUsers",
33
updateUsers:"updateUsers",
44
createUser:"createUser",
5-
createTemplates:"createTemplates",
6-
updateTemplates:"updateTemplates",
7-
deleteTemplates:"deleteTemplates",
85
viewAuditLog:"viewAuditLog",
6+
createAnyTemplate:"createAnyTemplate",
7+
updateAllTemplates:"updateAllTemplates",
98
viewDeploymentValues:"viewDeploymentValues",
109
createGroup:"createGroup",
1110
viewUpdateCheck:"viewUpdateCheck",
@@ -33,24 +32,19 @@ export const permissionsToCheck = {
3332
},
3433
action:"create",
3534
},
36-
[checks.createTemplates]:{
35+
[checks.createAnyTemplate]:{
3736
object:{
3837
resource_type:"template",
38+
any_org:true,
3939
},
4040
action:"update",
4141
},
42-
[checks.updateTemplates]:{
42+
[checks.updateAllTemplates]:{
4343
object:{
4444
resource_type:"template",
4545
},
4646
action:"update",
4747
},
48-
[checks.deleteTemplates]:{
49-
object:{
50-
resource_type:"template",
51-
},
52-
action:"delete",
53-
},
5448
[checks.viewAuditLog]:{
5549
object:{
5650
resource_type:"audit_log",

‎site/src/pages/TemplateVersionPage/TemplateVersionPage.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,9 @@ export const TemplateVersionPage: FC = () => {
7474
versionName={versionName}
7575
templateName={templateName}
7676
createWorkspaceUrl={
77-
permissions.updateTemplates ?createWorkspaceUrl :undefined
77+
// TODO: Does it make sense to allow org admins to create a workspace
78+
// from this version too if it belongs to their org?
79+
permissions.updateAllTemplates ?createWorkspaceUrl :undefined
7880
}
7981
/>
8082
</>

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,17 +36,17 @@ const findFeaturedExamples = (examples: TemplateExample[]) => {
3636
};
3737

3838
interfaceEmptyTemplatesProps{
39-
canCreateTemplates:boolean;
39+
canCreateAnyTemplate:boolean;
4040
examples:TemplateExample[];
4141
}
4242

4343
exportconstEmptyTemplates:FC<EmptyTemplatesProps>=({
44-
canCreateTemplates,
44+
canCreateAnyTemplate,
4545
examples,
4646
})=>{
4747
constfeaturedExamples=findFeaturedExamples(examples);
4848

49-
if(canCreateTemplates){
49+
if(canCreateAnyTemplate){
5050
return(
5151
<TableEmpty
5252
message="Create your first template"

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export const TemplatesPage: FC = () => {
1414
consttemplatesQuery=useQuery(templates(organizationId));
1515
constexamplesQuery=useQuery({
1616
...templateExamples(organizationId),
17-
enabled:permissions.createTemplates,
17+
enabled:permissions.createAnyTemplate,
1818
});
1919
consterror=templatesQuery.error||examplesQuery.error;
2020

@@ -25,7 +25,7 @@ export const TemplatesPage: FC = () => {
2525
</Helmet>
2626
<TemplatesPageView
2727
error={error}
28-
canCreateTemplates={permissions.createTemplates}
28+
canCreateAnyTemplate={permissions.createAnyTemplate}
2929
examples={examplesQuery.data}
3030
templates={templatesQuery.data}
3131
/>

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ type Story = StoryObj<typeof TemplatesPageView>;
1919

2020
exportconstWithTemplates:Story={
2121
args:{
22-
canCreateTemplates:true,
22+
canCreateAnyTemplate:true,
2323
error:undefined,
2424
templates:[
2525
MockTemplate,
@@ -69,7 +69,7 @@ export const WithTemplates: Story = {
6969

7070
exportconstEmptyCanCreate:Story={
7171
args:{
72-
canCreateTemplates:true,
72+
canCreateAnyTemplate:true,
7373
error:undefined,
7474
templates:[],
7575
examples:[MockTemplateExample,MockTemplateExample2],
@@ -81,7 +81,7 @@ export const EmptyCannotCreate: Story = {
8181
error:undefined,
8282
templates:[],
8383
examples:[MockTemplateExample,MockTemplateExample2],
84-
canCreateTemplates:false,
84+
canCreateAnyTemplate:false,
8585
},
8686
};
8787

@@ -92,6 +92,6 @@ export const Error: Story = {
9292
}),
9393
templates:undefined,
9494
examples:undefined,
95-
canCreateTemplates:false,
95+
canCreateAnyTemplate:false,
9696
},
9797
};

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -154,14 +154,14 @@ export interface TemplatesPageViewProps {
154154
error?:unknown;
155155
examples:TemplateExample[]|undefined;
156156
templates:Template[]|undefined;
157-
canCreateTemplates:boolean;
157+
canCreateAnyTemplate:boolean;
158158
}
159159

160160
exportconstTemplatesPageView:FC<TemplatesPageViewProps>=({
161161
templates,
162162
error,
163163
examples,
164-
canCreateTemplates,
164+
canCreateAnyTemplate,
165165
})=>{
166166
constisLoading=!templates;
167167
constisEmpty=templates&&templates.length===0;
@@ -171,7 +171,7 @@ export const TemplatesPageView: FC<TemplatesPageViewProps> = ({
171171
<Margins>
172172
<PageHeader
173173
actions={
174-
canCreateTemplates&&<CreateTemplateButtononNavigate={navigate}/>
174+
canCreateAnyTemplate&&<CreateTemplateButtononNavigate={navigate}/>
175175
}
176176
>
177177
<PageHeaderTitle>
@@ -206,7 +206,7 @@ export const TemplatesPageView: FC<TemplatesPageViewProps> = ({
206206

207207
{isEmpty ?(
208208
<EmptyTemplates
209-
canCreateTemplates={canCreateTemplates}
209+
canCreateAnyTemplate={canCreateAnyTemplate}
210210
examples={examples??[]}
211211
/>
212212
) :(

‎site/src/pages/WorkspacePage/WorkspacePage.test.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,9 +121,9 @@ describe("WorkspacePage", () => {
121121
server.use(
122122
http.post("/api/v2/authcheck",async()=>{
123123
returnHttpResponse.json({
124-
updateTemplates:true,
125-
updateWorkspace:true,
126124
updateTemplate:true,
125+
updateWorkspace:true,
126+
createAnyTemplate:true,
127127
});
128128
}),
129129
);

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ import { TableEmpty } from "components/TableEmpty/TableEmpty";
88
exportconstWorkspacesEmpty=(props:{
99
isUsingFilter:boolean;
1010
templates?:Template[];
11-
canCreateTemplate:boolean;
11+
canCreateAnyTemplate:boolean;
1212
})=>{
13-
const{ isUsingFilter, templates,canCreateTemplate}=props;
13+
const{ isUsingFilter, templates,canCreateAnyTemplate}=props;
1414
consttotalFeaturedTemplates=6;
1515
constfeaturedTemplates=templates?.slice(0,totalFeaturedTemplates);
1616
constdefaultTitle="Create a workspace";
@@ -38,7 +38,7 @@ export const WorkspacesEmpty = (props: {
3838
return<TableEmptymessage="No results matched your search"/>;
3939
}
4040

41-
if(templates&&templates.length===0&&canCreateTemplate){
41+
if(templates&&templates.length===0&&canCreateAnyTemplate){
4242
return(
4343
<TableEmpty
4444
message={defaultTitle}
@@ -61,7 +61,7 @@ export const WorkspacesEmpty = (props: {
6161
);
6262
}
6363

64-
if(templates&&templates.length===0&&!canCreateTemplate){
64+
if(templates&&templates.length===0&&!canCreateAnyTemplate){
6565
return(
6666
<TableEmpty
6767
message={defaultTitle}

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,10 @@ const WorkspacesPage: FC = () => {
8484
</Helmet>
8585

8686
<WorkspacesPageView
87-
canCreateTemplate={permissions.createTemplates}
88-
canChangeVersions={permissions.updateTemplates}
87+
canCreateAnyTemplate={permissions.createAnyTemplate}
88+
// TODO: Does it make sense to allow org admins too if the selected
89+
// templates belong to their org?
90+
canChangeVersions={permissions.updateAllTemplates}
8991
checkedWorkspaces={checkedWorkspaces}
9092
onCheckChange={setCheckedWorkspaces}
9193
canCheckWorkspaces={canCheckWorkspaces}

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ export const OwnerHasNoWorkspaces: Story = {
185185
args:{
186186
workspaces:[],
187187
count:0,
188-
canCreateTemplate:true,
188+
canCreateAnyTemplate:true,
189189
},
190190
};
191191

@@ -194,15 +194,15 @@ export const OwnerHasNoWorkspacesAndNoTemplates: Story = {
194194
workspaces:[],
195195
templates:[],
196196
count:0,
197-
canCreateTemplate:true,
197+
canCreateAnyTemplate:true,
198198
},
199199
};
200200

201201
exportconstUserHasNoWorkspaces:Story={
202202
args:{
203203
workspaces:[],
204204
count:0,
205-
canCreateTemplate:false,
205+
canCreateAnyTemplate:false,
206206
},
207207
};
208208

@@ -211,7 +211,7 @@ export const UserHasNoWorkspacesAndNoTemplates: Story = {
211211
workspaces:[],
212212
templates:[],
213213
count:0,
214-
canCreateTemplate:false,
214+
canCreateAnyTemplate:false,
215215
},
216216
};
217217

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ export interface WorkspacesPageViewProps {
6161
canCheckWorkspaces:boolean;
6262
templatesFetchStatus:TemplateQuery["status"];
6363
templates:TemplateQuery["data"];
64-
canCreateTemplate:boolean;
64+
canCreateAnyTemplate:boolean;
6565
canChangeVersions:boolean;
6666
}
6767

@@ -84,7 +84,7 @@ export const WorkspacesPageView = ({
8484
canCheckWorkspaces,
8585
templates,
8686
templatesFetchStatus,
87-
canCreateTemplate,
87+
canCreateAnyTemplate,
8888
canChangeVersions,
8989
}:WorkspacesPageViewProps)=>{
9090
// Let's say the user has 5 workspaces, but tried to hit page 100, which does
@@ -207,7 +207,7 @@ export const WorkspacesPageView = ({
207207
/>
208208
) :(
209209
<WorkspacesTable
210-
canCreateTemplate={canCreateTemplate}
210+
canCreateAnyTemplate={canCreateAnyTemplate}
211211
workspaces={workspaces}
212212
isUsingFilter={filterProps.filter.used}
213213
onUpdateWorkspace={onUpdateWorkspace}

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ export interface WorkspacesTableProps {
3838
onCheckChange:(checkedWorkspaces:readonlyWorkspace[])=>void;
3939
canCheckWorkspaces:boolean;
4040
templates?:Template[];
41-
canCreateTemplate:boolean;
41+
canCreateAnyTemplate:boolean;
4242
}
4343

4444
exportconstWorkspacesTable:FC<WorkspacesTableProps>=({
@@ -49,7 +49,7 @@ export const WorkspacesTable: FC<WorkspacesTableProps> = ({
4949
onCheckChange,
5050
canCheckWorkspaces,
5151
templates,
52-
canCreateTemplate,
52+
canCreateAnyTemplate,
5353
})=>{
5454
consttheme=useTheme();
5555

@@ -105,7 +105,7 @@ export const WorkspacesTable: FC<WorkspacesTableProps> = ({
105105
<WorkspacesEmpty
106106
templates={templates}
107107
isUsingFilter={isUsingFilter}
108-
canCreateTemplate={canCreateTemplate}
108+
canCreateAnyTemplate={canCreateAnyTemplate}
109109
/>
110110
)}
111111
{workspaces&&

‎site/src/testHelpers/entities.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2473,10 +2473,9 @@ export const MockTemplateExample2: TypesGen.TemplateExample = {
24732473

24742474
exportconstMockPermissions:Permissions={
24752475
createGroup:true,
2476-
createTemplates:true,
2476+
createAnyTemplate:true,
24772477
createUser:true,
2478-
deleteTemplates:true,
2479-
updateTemplates:true,
2478+
updateAllTemplates:true,
24802479
viewAllUsers:true,
24812480
updateUsers:true,
24822481
viewAuditLog:true,

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp