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

Commita40ba7d

Browse files
committed
feat: idp sync initial commit
1 parent661d226 commita40ba7d

File tree

5 files changed

+111
-20
lines changed

5 files changed

+111
-20
lines changed

‎site/src/api/api.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -704,6 +704,27 @@ class ApiMethods {
704704
returnresponse.data;
705705
};
706706

707+
getGroupIdpSyncSettingsByOrganization=async(
708+
organization:string,
709+
):Promise<TypesGen.GroupSyncSettings>=>{
710+
constresponse=awaitthis.axios.get<TypesGen.GroupSyncSettings>(
711+
`/api/v2/organizations/${organization}/settings/idpsync/groups`,
712+
);
713+
returnresponse.data;
714+
};
715+
716+
/**
717+
*@param organization Can be the organization's ID or name
718+
*/
719+
getRoleIdpSyncSettingsByOrganization=async(
720+
organization:string,
721+
):Promise<TypesGen.RoleSyncSettings>=>{
722+
constresponse=awaitthis.axios.get<TypesGen.RoleSyncSettings>(
723+
`/api/v2/organizations/${organization}/settings/idpsync/roles`,
724+
);
725+
returnresponse.data;
726+
};
727+
707728
getTemplate=async(templateId:string):Promise<TypesGen.Template>=>{
708729
constresponse=awaitthis.axios.get<TypesGen.Template>(
709730
`/api/v2/templates/${templateId}`,

‎site/src/api/queries/organizations.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,32 @@ export const provisionerDaemonGroups = (organization: string) => {
141141
};
142142
};
143143

144+
exportconstgetGroupIdpSyncSettingsKey=(organization:string)=>[
145+
"organization",
146+
organization,
147+
"groupIdpSyncSettings",
148+
];
149+
150+
exportconstgroupIdpSyncSettings=(organization:string)=>{
151+
return{
152+
queryKey:getGroupIdpSyncSettingsKey(organization),
153+
queryFn:()=>API.getGroupIdpSyncSettingsByOrganization(organization),
154+
};
155+
};
156+
157+
exportconstgetRoleIdpSyncSettingsKey=(organization:string)=>[
158+
"organization",
159+
organization,
160+
"roleIdpSyncSettings",
161+
];
162+
163+
exportconstroleIdpSyncSettings=(organization:string)=>{
164+
return{
165+
queryKey:getRoleIdpSyncSettingsKey(organization),
166+
queryFn:()=>API.getRoleIdpSyncSettingsByOrganization(organization),
167+
};
168+
};
169+
144170
/**
145171
* Fetch permissions for a single organization.
146172
*

‎site/src/pages/DeploySettingsPage/AppearanceSettingsPage/AppearanceSettingsPageView.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ export const AppearanceSettingsPageView: FC<
7474
<PopoverContentcss={{transform:"translateY(-28px)"}}>
7575
<PopoverPaywall
7676
message="Appearance"
77-
description="With a Premium license, you can customize the appearance of your deployment."
77+
description="With a Premium license, you can customize the appearanceand brandingof your deployment."
7878
documentationLink="https://coder.com/docs/admin/appearance"
7979
/>
8080
</PopoverContent>

‎site/src/pages/ManagementSettingsPage/IdpSyncPage/IdpSyncPage.tsx

Lines changed: 41 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,20 @@ import { SettingsHeader } from "components/SettingsHeader/SettingsHeader";
66
import{Stack}from"components/Stack/Stack";
77
importtype{FC}from"react";
88
import{Helmet}from"react-helmet-async";
9-
import{LinkasRouterLink}from"react-router-dom";
9+
import{LinkasRouterLink,useParams}from"react-router-dom";
1010
import{docs}from"utils/docs";
1111
import{pageTitle}from"utils/page";
1212
import{IdpSyncHelpTooltip}from"./IdpSyncHelpTooltip";
1313
importIdpSyncPageViewfrom"./IdpSyncPageView";
14+
import{
15+
organizationsPermissions,
16+
groupIdpSyncSettings,
17+
roleIdpSyncSettings,
18+
}from"api/queries/organizations";
19+
import{useQuery}from"react-query";
20+
import{useOrganizationSettings}from"../ManagementSettingsLayout";
21+
import{Loader}from"components/Loader/Loader";
22+
import{EmptyState}from"components/EmptyState/EmptyState";
1423

1524
constmockOIDCConfig={
1625
allow_signups:true,
@@ -45,19 +54,39 @@ const mockOIDCConfig = {
4554
};
4655

4756
exportconstIdpSyncPage:FC=()=>{
57+
const{organization:organizationName}=useParams()as{
58+
organization:string;
59+
};
60+
4861
// feature visibility and permissions to be implemented when integrating with backend
4962
// const feats = useFeatureVisibility();
5063
// const { organization: organizationName } = useParams() as {
5164
// organization: string;
5265
// };
53-
// const { organizations } = useOrganizationSettings();
54-
// const organization = organizations?.find((o) => o.name === organizationName);
55-
// const permissionsQuery = useQuery(organizationPermissions(organization?.id));
66+
const{ organizations}=useOrganizationSettings();
67+
constorganization=organizations?.find((o)=>o.name===organizationName);
68+
constpermissionsQuery=useQuery(
69+
organizationsPermissions(organizations?.map((o)=>o.id)),
70+
);
71+
constgroupIdpSyncSettingsQuery=useQuery(
72+
groupIdpSyncSettings(organizationName),
73+
);
74+
constroleIdpSyncSettingsQuery=useQuery(
75+
roleIdpSyncSettings(organizationName),
76+
);
5677
// const permissions = permissionsQuery.data;
5778

58-
// if (!permissions) {
59-
// return <Loader />;
60-
// }
79+
if(!organization){
80+
return<EmptyStatemessage="Organization not found"/>;
81+
}
82+
83+
if(
84+
permissionsQuery.isLoading||
85+
groupIdpSyncSettingsQuery.isLoading||
86+
roleIdpSyncSettingsQuery.isLoading
87+
){
88+
return<Loader/>;
89+
}
6190

6291
return(
6392
<>
@@ -91,7 +120,11 @@ export const IdpSyncPage: FC = () => {
91120
</Stack>
92121
</Stack>
93122

94-
<IdpSyncPageViewoidcConfig={mockOIDCConfig}/>
123+
<IdpSyncPageView
124+
oidcConfig={mockOIDCConfig}
125+
groupSyncSettings={groupIdpSyncSettingsQuery.data}
126+
roleSyncSettings={roleIdpSyncSettingsQuery.data}
127+
/>
95128
</>
96129
);
97130
};

‎site/src/pages/ManagementSettingsPage/IdpSyncPage/IdpSyncPageView.tsx

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,11 @@ import TableCell from "@mui/material/TableCell";
99
importTableContainerfrom"@mui/material/TableContainer";
1010
importTableHeadfrom"@mui/material/TableHead";
1111
importTableRowfrom"@mui/material/TableRow";
12-
importtype{OIDCConfig}from"api/typesGenerated";
12+
importtype{
13+
OIDCConfig,
14+
GroupSyncSettings,
15+
RoleSyncSettings,
16+
}from"api/typesGenerated";
1317
import{ChooseOne,Cond}from"components/Conditionals/ChooseOne";
1418
import{EmptyState}from"components/EmptyState/EmptyState";
1519
import{Paywall}from"components/Paywall/Paywall";
@@ -25,16 +29,17 @@ import { docs } from "utils/docs";
2529

2630
exporttypeIdpSyncPageViewProps={
2731
oidcConfig:OIDCConfig|undefined;
32+
groupSyncSettings:GroupSyncSettings|undefined;
33+
roleSyncSettings:RoleSyncSettings|undefined;
2834
};
2935

30-
exportconstIdpSyncPageView:FC<IdpSyncPageViewProps>=({ oidcConfig})=>{
36+
exportconstIdpSyncPageView:FC<IdpSyncPageViewProps>=({
37+
oidcConfig,
38+
groupSyncSettings,
39+
roleSyncSettings,
40+
})=>{
3141
consttheme=useTheme();
32-
const{
33-
groups_field,
34-
user_role_field,
35-
group_regex_filter,
36-
group_auto_create,
37-
}=oidcConfig||{};
42+
const{ user_role_field}=oidcConfig||{};
3843
return(
3944
<>
4045
<ChooseOne>
@@ -54,16 +59,22 @@ export const IdpSyncPageView: FC<IdpSyncPageViewProps> = ({ oidcConfig }) => {
5459
<Stackdirection={"row"}alignItems={"center"}spacing={8}>
5560
<IdpField
5661
name={"Sync Field"}
57-
fieldText={groups_field}
62+
fieldText={groupSyncSettings?.field}
5863
showStatusIndicator
5964
/>
6065
<IdpField
6166
name={"Regex Filter"}
62-
fieldText={group_regex_filter}
67+
fieldText={
68+
typeofgroupSyncSettings?.regex_filter==="string"
69+
?groupSyncSettings?.regex_filter
70+
:""
71+
}
6372
/>
6473
<IdpField
6574
name={"Auto Create"}
66-
fieldText={group_auto_create?.toString()}
75+
fieldText={String(
76+
groupSyncSettings?.auto_create_missing_groups,
77+
)}
6778
/>
6879
</Stack>
6980
</fieldset>

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp