diff --git a/console/src/app/pages/users/user-detail/auth-user-detail/auth-user-detail.component.ts b/console/src/app/pages/users/user-detail/auth-user-detail/auth-user-detail.component.ts
index 94e29df036..7bb356f597 100644
--- a/console/src/app/pages/users/user-detail/auth-user-detail/auth-user-detail.component.ts
+++ b/console/src/app/pages/users/user-detail/auth-user-detail/auth-user-detail.component.ts
@@ -20,6 +20,7 @@ import { ToastService } from 'src/app/services/toast.service';
import { Buffer } from 'buffer';
import { EditDialogComponent, EditDialogType } from './edit-dialog/edit-dialog.component';
import { PolicyComponentServiceType } from 'src/app/modules/policies/policy-component-types.enum';
+import { LoginPolicy } from 'src/app/proto/generated/zitadel/policy_pb';
@Component({
selector: 'cnsl-auth-user-detail',
@@ -58,6 +59,7 @@ export class AuthUserDetailComponent implements OnDestroy {
},
];
public currentSetting: string | undefined = this.settingsList[0].id;
+ public loginPolicy?: LoginPolicy.AsObject;
constructor(
public translate: TranslateService,
@@ -93,6 +95,12 @@ export class AuthUserDetailComponent implements OnDestroy {
this.userService.getSupportedLanguages().then((lang) => {
this.languages = lang.languagesList;
});
+
+ this.userService.getMyLoginPolicy().then((policy) => {
+ if (policy.policy) {
+ this.loginPolicy = policy.policy;
+ }
+ });
}
private changeSelection(small: boolean): void {
diff --git a/console/src/app/pages/users/user-detail/user-detail/user-detail.component.html b/console/src/app/pages/users/user-detail/user-detail/user-detail.component.html
index 8dede66d24..b36261768e 100644
--- a/console/src/app/pages/users/user-detail/user-detail/user-detail.component.html
+++ b/console/src/app/pages/users/user-detail/user-detail/user-detail.component.html
@@ -33,7 +33,7 @@
-
+
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": "重新启用",