fix: list idp

This commit is contained in:
Steven
2024-05-14 07:04:17 +08:00
parent 32abc50af4
commit 2317204c50
6 changed files with 15 additions and 28 deletions

View File

@@ -78,6 +78,8 @@ func (s *APIV1Service) UpdateIdentityProvider(ctx context.Context, request *v1pb
switch field { switch field {
case "title": case "title":
update.Name = &request.IdentityProvider.Title update.Name = &request.IdentityProvider.Title
case "identifier_filter":
update.IdentifierFilter = &request.IdentityProvider.IdentifierFilter
case "config": case "config":
update.Config = convertIdentityProviderConfigToStore(request.IdentityProvider.Type, request.IdentityProvider.Config) update.Config = convertIdentityProviderConfigToStore(request.IdentityProvider.Type, request.IdentityProvider.Config)
} }

View File

@@ -1057,23 +1057,6 @@ func getMemoPropertyFromContent(content string) (*storepb.MemoPayload_Property,
return property, nil return property, nil
} }
func ExtractTagsFromContent(content string) ([]string, error) {
nodes, err := parser.Parse(tokenizer.Tokenize(content))
if err != nil {
return nil, errors.Wrap(err, "failed to parse content")
}
tags := []string{}
TraverseASTNodes(nodes, func(node ast.Node) {
if tagNode, ok := node.(*ast.Tag); ok {
tag := tagNode.Content
if !slices.Contains(tags, tag) {
tags = append(tags, tag)
}
}
})
return tags, nil
}
func TraverseASTNodes(nodes []ast.Node, fn func(ast.Node)) { func TraverseASTNodes(nodes []ast.Node, fn func(ast.Node)) {
for _, node := range nodes { for _, node := range nodes {
fn(node) fn(node)

View File

@@ -62,6 +62,7 @@ func (s *Store) ListIdentityProviders(ctx context.Context, find *FindIdentityPro
if err != nil { if err != nil {
return nil, err return nil, err
} }
identityProviders = append(identityProviders, identityProvider)
s.idpCache.Store(identityProvider.Id, identityProvider) s.idpCache.Store(identityProvider.Id, identityProvider)
} }
return identityProviders, nil return identityProviders, nil

View File

@@ -105,7 +105,7 @@ const CreateIdentityProviderDialog: React.FC<Props> = (props: Props) => {
const identityProviderTypes = [...new Set(templateList.map((t) => t.type))]; const identityProviderTypes = [...new Set(templateList.map((t) => t.type))];
const { confirmCallback, destroy, identityProvider } = props; const { confirmCallback, destroy, identityProvider } = props;
const [basicInfo, setBasicInfo] = useState({ const [basicInfo, setBasicInfo] = useState({
name: "", title: "",
identifierFilter: "", identifierFilter: "",
}); });
const [type, setType] = useState<IdentityProvider_Type>(IdentityProvider_Type.OAUTH2); const [type, setType] = useState<IdentityProvider_Type>(IdentityProvider_Type.OAUTH2);
@@ -129,7 +129,7 @@ const CreateIdentityProviderDialog: React.FC<Props> = (props: Props) => {
useEffect(() => { useEffect(() => {
if (identityProvider) { if (identityProvider) {
setBasicInfo({ setBasicInfo({
name: identityProvider.name, title: identityProvider.title,
identifierFilter: identityProvider.identifierFilter, identifierFilter: identityProvider.identifierFilter,
}); });
setType(identityProvider.type); setType(identityProvider.type);
@@ -149,7 +149,7 @@ const CreateIdentityProviderDialog: React.FC<Props> = (props: Props) => {
const template = templateList.find((t) => t.title === selectedTemplate); const template = templateList.find((t) => t.title === selectedTemplate);
if (template) { if (template) {
setBasicInfo({ setBasicInfo({
name: template.name, title: template.title,
identifierFilter: template.identifierFilter, identifierFilter: template.identifierFilter,
}); });
setType(template.type); setType(template.type);
@@ -166,7 +166,7 @@ const CreateIdentityProviderDialog: React.FC<Props> = (props: Props) => {
}; };
const allowConfirmAction = () => { const allowConfirmAction = () => {
if (basicInfo.name === "") { if (basicInfo.title === "") {
return false; return false;
} }
if (type === "OAUTH2") { if (type === "OAUTH2") {
@@ -205,11 +205,12 @@ const CreateIdentityProviderDialog: React.FC<Props> = (props: Props) => {
}, },
}, },
}); });
toast.success(t("setting.sso-section.sso-created", { name: basicInfo.name })); toast.success(t("setting.sso-section.sso-created", { name: basicInfo.title }));
} else { } else {
await identityProviderServiceClient.updateIdentityProvider({ await identityProviderServiceClient.updateIdentityProvider({
identityProvider: { identityProvider: {
...basicInfo, ...basicInfo,
name: identityProvider!.name,
type: type, type: type,
config: { config: {
oauth2Config: { oauth2Config: {
@@ -218,9 +219,9 @@ const CreateIdentityProviderDialog: React.FC<Props> = (props: Props) => {
}, },
}, },
}, },
updateMask: ["title", "identifierFilter", "config"], updateMask: ["title", "identifier_filter", "config"],
}); });
toast.success(t("setting.sso-section.sso-updated", { name: basicInfo.name })); toast.success(t("setting.sso-section.sso-updated", { name: basicInfo.title }));
} }
} catch (error: any) { } catch (error: any) {
console.error(error); console.error(error);
@@ -280,11 +281,11 @@ const CreateIdentityProviderDialog: React.FC<Props> = (props: Props) => {
<Input <Input
className="mb-2" className="mb-2"
placeholder={t("common.name")} placeholder={t("common.name")}
value={basicInfo.name} value={basicInfo.title}
onChange={(e) => onChange={(e) =>
setBasicInfo({ setBasicInfo({
...basicInfo, ...basicInfo,
name: e.target.value, title: e.target.value,
}) })
} }
fullWidth fullWidth

View File

@@ -24,7 +24,7 @@ const SSOSection = () => {
}; };
const handleDeleteIdentityProvider = async (identityProvider: IdentityProvider) => { const handleDeleteIdentityProvider = async (identityProvider: IdentityProvider) => {
const content = t("setting.sso-section.confirm-delete", { name: identityProvider.name }); const content = t("setting.sso-section.confirm-delete", { name: identityProvider.title });
showCommonDialog({ showCommonDialog({
title: t("setting.sso-section.delete-sso"), title: t("setting.sso-section.delete-sso"),

View File

@@ -191,7 +191,7 @@ const SignIn = () => {
size="md" size="md"
onClick={() => handleSignInWithIdentityProvider(identityProvider)} onClick={() => handleSignInWithIdentityProvider(identityProvider)}
> >
{t("common.sign-in-with", { provider: identityProvider.name })} {t("common.sign-in-with", { provider: identityProvider.title })}
</Button> </Button>
))} ))}
</div> </div>