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

Commit6790f98

Browse files
committed
feat: idp sync initial commit
1 parent3338f32 commit6790f98

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
@@ -5,11 +5,20 @@ import { SettingsHeader } from "components/SettingsHeader/SettingsHeader";
55
import{Stack}from"components/Stack/Stack";
66
importtype{FC}from"react";
77
import{Helmet}from"react-helmet-async";
8-
import{LinkasRouterLink}from"react-router-dom";
8+
import{LinkasRouterLink,useParams}from"react-router-dom";
99
import{docs}from"utils/docs";
1010
import{pageTitle}from"utils/page";
1111
import{IdpSyncHelpTooltip}from"./IdpSyncHelpTooltip";
1212
importIdpSyncPageViewfrom"./IdpSyncPageView";
13+
import{
14+
organizationsPermissions,
15+
groupIdpSyncSettings,
16+
roleIdpSyncSettings,
17+
}from"api/queries/organizations";
18+
import{useQuery}from"react-query";
19+
import{useOrganizationSettings}from"../ManagementSettingsLayout";
20+
import{Loader}from"components/Loader/Loader";
21+
import{EmptyState}from"components/EmptyState/EmptyState";
1322

1423
constmockOIDCConfig={
1524
allow_signups:true,
@@ -44,19 +53,39 @@ const mockOIDCConfig = {
4453
};
4554

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

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

6190
return(
6291
<>
@@ -89,7 +118,11 @@ export const IdpSyncPage: FC = () => {
89118
</Stack>
90119
</Stack>
91120

92-
<IdpSyncPageViewoidcConfig={mockOIDCConfig}/>
121+
<IdpSyncPageView
122+
oidcConfig={mockOIDCConfig}
123+
groupSyncSettings={groupIdpSyncSettingsQuery.data}
124+
roleSyncSettings={roleIdpSyncSettingsQuery.data}
125+
/>
93126
</>
94127
);
95128
};

‎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