From 650122070dbfbf5d94ccb6b46ee1a8c6606214ca Mon Sep 17 00:00:00 2001 From: Max Peintner Date: Tue, 17 Jan 2023 17:02:22 +0100 Subject: [PATCH] feat(console): show available login methods on user pages (#5055) Shows all possible login methods on the user detail pages Co-authored-by: Livio Spring --- .../modules/info-row/info-row.component.html | 4 ++-- .../app/modules/info-row/info-row.component.ts | 17 +++++++++++++++++ .../auth-user-detail.component.html | 2 +- .../auth-user-detail.component.ts | 8 ++++++++ .../user-detail/user-detail.component.html | 2 +- .../user-detail/user-detail.component.ts | 8 ++++++++ console/src/app/services/grpc-auth.service.ts | 7 +++++++ console/src/assets/i18n/de.json | 1 + console/src/assets/i18n/en.json | 1 + console/src/assets/i18n/fr.json | 1 + console/src/assets/i18n/it.json | 1 + console/src/assets/i18n/zh.json | 1 + 12 files changed, 49 insertions(+), 4 deletions(-) diff --git a/console/src/app/modules/info-row/info-row.component.html b/console/src/app/modules/info-row/info-row.component.html index 85d8df485f..fbeabcd5a5 100644 --- a/console/src/app/modules/info-row/info-row.component.html +++ b/console/src/app/modules/info-row/info-row.component.html @@ -33,8 +33,8 @@
-

{{ 'USER.PAGES.LOGINNAMES' | translate }}

-
+

{{ 'USER.PAGES.LOGINMETHODS' | translate }}

+
- +
diff --git a/console/src/app/pages/users/user-detail/user-detail/user-detail.component.ts b/console/src/app/pages/users/user-detail/user-detail/user-detail.component.ts index 2b8a4abc9c..cec60d4940 100644 --- a/console/src/app/pages/users/user-detail/user-detail/user-detail.component.ts +++ b/console/src/app/pages/users/user-detail/user-detail/user-detail.component.ts @@ -20,6 +20,7 @@ import { ToastService } from 'src/app/services/toast.service'; import { Buffer } from 'buffer'; import { EditDialogComponent, EditDialogType } from '../auth-user-detail/edit-dialog/edit-dialog.component'; import { ResendEmailDialogComponent } from '../auth-user-detail/resend-email-dialog/resend-email-dialog.component'; +import { LoginPolicy } from 'src/app/proto/generated/zitadel/policy_pb'; const GENERAL: SidenavSetting = { id: 'general', i18nKey: 'USER.SETTINGS.GENERAL' }; const GRANTS: SidenavSetting = { id: 'grants', i18nKey: 'USER.SETTINGS.USERGRANTS' }; @@ -58,6 +59,7 @@ export class UserDetailComponent implements OnInit { public settingsList: SidenavSetting[] = [GENERAL, GRANTS, MEMBERSHIPS, METADATA]; public currentSetting: string | undefined = 'general'; + public loginPolicy?: LoginPolicy.AsObject; constructor( public translate: TranslateService, @@ -137,6 +139,12 @@ export class UserDetailComponent implements OnInit { public ngOnInit(): void { this.refreshUser(); + + this.mgmtUserService.getLoginPolicy().then((policy) => { + if (policy.policy) { + this.loginPolicy = policy.policy; + } + }); } public changeUsername(): void { diff --git a/console/src/app/services/grpc-auth.service.ts b/console/src/app/services/grpc-auth.service.ts index 84b4f4e028..d7e2e15084 100644 --- a/console/src/app/services/grpc-auth.service.ts +++ b/console/src/app/services/grpc-auth.service.ts @@ -30,6 +30,8 @@ import { GetMyEmailResponse, GetMyLabelPolicyRequest, GetMyLabelPolicyResponse, + GetMyLoginPolicyRequest, + GetMyLoginPolicyResponse, GetMyPasswordComplexityPolicyRequest, GetMyPasswordComplexityPolicyResponse, GetMyPhoneRequest, @@ -487,6 +489,11 @@ export class GrpcAuthService { return this.grpcService.auth.getSupportedLanguages(req, null).then((resp) => resp.toObject()); } + public getMyLoginPolicy(): Promise { + const req = new GetMyLoginPolicyRequest(); + return this.grpcService.auth.getMyLoginPolicy(req, null).then((resp) => resp.toObject()); + } + public removeMyPhone(): Promise { return this.grpcService.auth.removeMyPhone(new RemoveMyPhoneRequest(), null).then((resp) => resp.toObject()); } diff --git a/console/src/assets/i18n/de.json b/console/src/assets/i18n/de.json index 0eb21a543b..39b4553856 100644 --- a/console/src/assets/i18n/de.json +++ b/console/src/assets/i18n/de.json @@ -231,6 +231,7 @@ "CREATE": "Erstellen", "MY": "Meine Informationen", "LOGINNAMES": "Login-Namen", + "LOGINMETHODS": "Anmeldemethoden", "LOGINNAMESDESC": "Mit diesen Namen kannst Du Dich anmelden.", "NOUSER": "Kein Benutzer", "REACTIVATE": "Reaktivieren", diff --git a/console/src/assets/i18n/en.json b/console/src/assets/i18n/en.json index 4ebaa7c30b..f11236d038 100644 --- a/console/src/assets/i18n/en.json +++ b/console/src/assets/i18n/en.json @@ -231,6 +231,7 @@ "CREATE": "Create", "MY": "My Information", "LOGINNAMES": "Login names", + "LOGINMETHODS": "Login methods", "LOGINNAMESDESC": "These are your login names:", "NOUSER": "No associated user.", "REACTIVATE": "Reactivate", diff --git a/console/src/assets/i18n/fr.json b/console/src/assets/i18n/fr.json index f5f4bc1dff..a1589cbbd9 100644 --- a/console/src/assets/i18n/fr.json +++ b/console/src/assets/i18n/fr.json @@ -231,6 +231,7 @@ "CREATE": "Créer", "MY": "Mes informations", "LOGINNAMES": "Noms de connexion", + "LOGINMETHODS": "Méthodes de connexion", "LOGINNAMESDESC": "Ce sont vos noms de connexion", "NOUSER": "Aucun utilisateur associé.", "REACTIVATE": "Réactiver", diff --git a/console/src/assets/i18n/it.json b/console/src/assets/i18n/it.json index 213fb5f2cb..b819c2a410 100644 --- a/console/src/assets/i18n/it.json +++ b/console/src/assets/i18n/it.json @@ -231,6 +231,7 @@ "CREATE": "Crea", "MY": "Le mie informazioni", "LOGINNAMES": "Loginnames", + "LOGINMETHODS": "Metodi di accesso", "LOGINNAMESDESC": "Questi sono i nomi di accesso:", "NOUSER": "Nessun utente associato.", "REACTIVATE": "Riattiva", diff --git a/console/src/assets/i18n/zh.json b/console/src/assets/i18n/zh.json index 8fa600e638..30b6e8e638 100644 --- a/console/src/assets/i18n/zh.json +++ b/console/src/assets/i18n/zh.json @@ -231,6 +231,7 @@ "CREATE": "创建", "MY": "我的信息", "LOGINNAMES": "登录名称", + "LOGINMETHODS": "登录方式", "LOGINNAMESDESC": "这些是您的登录名:", "NOUSER": "没有关联的用户。", "REACTIVATE": "重新启用",