mirror of
https://github.com/andwati/zitadel.git
synced 2026-11-14 09:55:12 +00:00
feat: protos refactoring
* start with user * user first try done in all services * user, org, idp for discussion * remove unused stuff * bla * dockerbuild * rename search, get multiple to list... * add annotation * update proto dependencies * update proto dependencies * change proto imports * replace all old imports * fix go out * remove unused lines * correct protoc flags * grpc and openapi flags * go out source path relative * -p * remove dead code * sourcepath relative * ls * is onenapi the problem? * hobla * authoption output * wrong field name * gopf * correct option, add correct flags * small improvments * SIMPLYFY * relative path * gopf bin ich en tubel * correct path * default policies in admin * grpc generation in one file * remove non ascii * metadata on manipulations * correct auth_option import * fixes * larry * idp provider to idp * fix generate * admin and auth nearly done * admin and auth nearly done * gen * healthz * imports * deleted too much imports * fix org * add import * imports * import * naming * auth_opt * gopf * management * imports * _TYPE_UNSPECIFIED * improts * auth opts * management policies * imports * passwordlessType to MFAType * auth_opt * add user grant calls * add missing messages * result * fix option * improvements * ids * fix http * imports * fixes * fields * body * add fields * remove wrong member query * fix request response * fixes * add copy files * variable versions * generate all files * improvements * add dependencies * factors * user session * oidc information, iam * remove unused file * changes * enums * dockerfile * fix build * remove unused folder * update readme for build * move old server impl * add event type to change * some changes * start admin * remove wrong field * admin only list calls missing * fix proto numbers * surprisingly it compiles * service ts changes * admin mgmt * mgmt * auth manipulation and gets done, lists missing * validations and some field changes * validations * enum validations * remove todo * move proto files to proto/zitadel * change proto path in dockerfile * it compiles! * add validate import * remove duplicate import * fix protos * fix import * tests * cleanup * remove unimplemented methods * iam member multiple queries * all auth and admin calls * add initial password on crate human * message names * management user server * machine done * fix: todos (#1346) * fix: pub sub in new eventstore * fix: todos * fix: todos * fix: todos * fix: todos * fix: todos * fix tests * fix: search method domain * admin service, user import type typescript * admin changes * admin changes * fix: search method domain * more user grpc and begin org, fix configs * fix: return object details * org grpc * remove creation date add details * app * fix: return object details * fix: return object details * mgmt service, project members * app * fix: convert policies * project, members, granted projects, searches * fix: convert usergrants * fix: convert usergrants * auth user detail, user detail, mfa, second factor, auth * fix: convert usergrants * mfa, memberships, password, owned proj detail * fix: convert usergrants * project grant * missing details * changes, userview * idp table, keys * org list and user table filter * unify rest paths (#1381) * unify rest paths * post for all searches, mfa to multi_factor, secondfactor to second_factor * remove v1 * fix tests * rename api client key to app key * machine keys, age policy * user list, machine keys, changes * fix: org states * add default flag to policy * second factor to type * idp id * app type * unify ListQuery, ListDetails, ObjectDetails field names * user grants, apps, memberships * fix type params * metadata to detail, linke idps * api create, membership, app detail, create * idp, app, policy * queries, multi -> auth factors and missing fields * update converters * provider to user, remove old mgmt refs * temp remove authfactor dialog, build finish Co-authored-by: Max Peintner <[email protected]> Co-authored-by: Fabi <[email protected]> Co-authored-by: Livio Amstutz <[email protected]> Co-authored-by: Fabiennne <[email protected]>
This commit is contained in:
co-authored by
Max Peintner
Fabi
Livio Amstutz
Fabiennne
parent
9f417f3957
commit
dabd5920dc
@@ -1,12 +1,13 @@
|
||||
import { Component, OnDestroy } from '@angular/core';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { Subscription } from 'rxjs';
|
||||
import { DefaultLabelPolicyUpdate, DefaultLabelPolicyView } from 'src/app/proto/generated/admin_pb';
|
||||
import { GetLabelPolicyResponse, UpdateLabelPolicyRequest } from 'src/app/proto/generated/zitadel/admin_pb';
|
||||
import { LabelPolicy } from 'src/app/proto/generated/zitadel/policy_pb';
|
||||
import { AdminService } from 'src/app/services/admin.service';
|
||||
import { ToastService } from 'src/app/services/toast.service';
|
||||
import { CnslLinks } from '../../links/links.component';
|
||||
import { IAM_COMPLEXITY_LINK, IAM_LABEL_LINK, IAM_LOGIN_POLICY_LINK, IAM_POLICY_LINK } from '../../policy-grid/policy-links';
|
||||
|
||||
import { CnslLinks } from '../../links/links.component';
|
||||
import { IAM_COMPLEXITY_LINK, IAM_LOGIN_POLICY_LINK, IAM_POLICY_LINK } from '../../policy-grid/policy-links';
|
||||
import { PolicyComponentServiceType } from '../policy-component-types.enum';
|
||||
|
||||
|
||||
@@ -16,7 +17,7 @@ import { PolicyComponentServiceType } from '../policy-component-types.enum';
|
||||
styleUrls: ['./label-policy.component.scss'],
|
||||
})
|
||||
export class LabelPolicyComponent implements OnDestroy {
|
||||
public labelData!: DefaultLabelPolicyView.AsObject;
|
||||
public labelData!: LabelPolicy.AsObject;
|
||||
|
||||
private sub: Subscription = new Subscription();
|
||||
|
||||
@@ -33,8 +34,8 @@ export class LabelPolicyComponent implements OnDestroy {
|
||||
) {
|
||||
this.route.params.subscribe(() => {
|
||||
this.getData().then(data => {
|
||||
if (data) {
|
||||
this.labelData = data.toObject();
|
||||
if (data?.policy) {
|
||||
this.labelData = data.policy;
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -44,15 +45,15 @@ export class LabelPolicyComponent implements OnDestroy {
|
||||
this.sub.unsubscribe();
|
||||
}
|
||||
|
||||
private async getData(): Promise<DefaultLabelPolicyView> {
|
||||
return this.adminService.GetDefaultLabelPolicy();
|
||||
private async getData(): Promise<GetLabelPolicyResponse.AsObject> {
|
||||
return this.adminService.getLabelPolicy();
|
||||
}
|
||||
|
||||
public savePolicy(): void {
|
||||
const req = new DefaultLabelPolicyUpdate();
|
||||
const req = new UpdateLabelPolicyRequest();
|
||||
req.setPrimaryColor(this.labelData.primaryColor);
|
||||
req.setSecondaryColor(this.labelData.secondaryColor);
|
||||
this.adminService.UpdateDefaultLabelPolicy(req).then(() => {
|
||||
this.adminService.updateLabelPolicy(req).then(() => {
|
||||
this.toast.showInfo('POLICY.TOAST.SET', true);
|
||||
}).catch(error => {
|
||||
this.toast.showError(error);
|
||||
|
||||
+19
-26
@@ -1,14 +1,7 @@
|
||||
import { Component, Inject } from '@angular/core';
|
||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
||||
import { IdpView as AdminIdpView } from 'src/app/proto/generated/admin_pb';
|
||||
import {
|
||||
Idp,
|
||||
IdpProviderType,
|
||||
IdpSearchKey,
|
||||
IdpSearchQuery,
|
||||
IdpView as MgmtIdpView,
|
||||
SearchMethod,
|
||||
} from 'src/app/proto/generated/management_pb';
|
||||
import { IDP, IDPOwnerType, IDPOwnerTypeQuery } from 'src/app/proto/generated/zitadel/idp_pb';
|
||||
import { IDPQuery } from 'src/app/proto/generated/zitadel/management_pb';
|
||||
import { AdminService } from 'src/app/services/admin.service';
|
||||
import { ManagementService } from 'src/app/services/mgmt.service';
|
||||
|
||||
@@ -23,15 +16,15 @@ export class AddIdpDialogComponent {
|
||||
public PolicyComponentServiceType: any = PolicyComponentServiceType;
|
||||
public serviceType: PolicyComponentServiceType = PolicyComponentServiceType.MGMT;
|
||||
|
||||
public idpType!: IdpProviderType;
|
||||
public idpTypes: IdpProviderType[] = [
|
||||
IdpProviderType.IDPPROVIDERTYPE_SYSTEM,
|
||||
IdpProviderType.IDPPROVIDERTYPE_ORG,
|
||||
public idpType!: IDPOwnerType;
|
||||
public idpTypes: IDPOwnerType[] = [
|
||||
IDPOwnerType.IDP_OWNER_TYPE_SYSTEM,
|
||||
IDPOwnerType.IDP_OWNER_TYPE_ORG,
|
||||
];
|
||||
|
||||
public idp: Idp.AsObject | undefined = undefined;
|
||||
public availableIdps: Array<AdminIdpView.AsObject | MgmtIdpView.AsObject> | string[] = [];
|
||||
public IdpProviderType: any = IdpProviderType;
|
||||
public idp: IDP.AsObject | undefined = undefined;
|
||||
public availableIdps: Array<IDP.AsObject[] | IDP.AsObject> | string[] = [];
|
||||
public IdpProviderType: any = IDPOwnerType;
|
||||
|
||||
constructor(
|
||||
private mgmtService: ManagementService,
|
||||
@@ -43,10 +36,10 @@ export class AddIdpDialogComponent {
|
||||
this.serviceType = data.serviceType;
|
||||
switch (this.serviceType) {
|
||||
case PolicyComponentServiceType.MGMT:
|
||||
this.idpType = IdpProviderType.IDPPROVIDERTYPE_ORG;
|
||||
this.idpType = IDPOwnerType.IDP_OWNER_TYPE_ORG;
|
||||
break;
|
||||
case PolicyComponentServiceType.ADMIN:
|
||||
this.idpType = IdpProviderType.IDPPROVIDERTYPE_SYSTEM;
|
||||
this.idpType = IDPOwnerType.IDP_OWNER_TYPE_SYSTEM;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -57,17 +50,17 @@ export class AddIdpDialogComponent {
|
||||
public loadIdps(): void {
|
||||
this.idp = undefined;
|
||||
if (this.serviceType === PolicyComponentServiceType.MGMT) {
|
||||
const query: IdpSearchQuery = new IdpSearchQuery();
|
||||
query.setKey(IdpSearchKey.IDPSEARCHKEY_PROVIDER_TYPE);
|
||||
query.setMethod(SearchMethod.SEARCHMETHOD_EQUALS);
|
||||
query.setValue(this.idpType.toString());
|
||||
const query: IDPQuery = new IDPQuery();
|
||||
const idpOTQ: IDPOwnerTypeQuery = new IDPOwnerTypeQuery();
|
||||
idpOTQ.setOwnerType(this.idpType);
|
||||
query.setOwnerTypeQuery(idpOTQ);
|
||||
|
||||
this.mgmtService.SearchIdps(undefined, undefined, [query]).then(idps => {
|
||||
this.availableIdps = idps.toObject().resultList;
|
||||
this.mgmtService.listOrgIDPs(undefined, undefined, [query]).then(resp => {
|
||||
this.availableIdps = resp.resultList;
|
||||
});
|
||||
} else if (this.serviceType === PolicyComponentServiceType.ADMIN) {
|
||||
this.adminService.SearchIdps().then(idps => {
|
||||
this.availableIdps = idps.toObject().resultList;
|
||||
this.adminService.listIDPs().then(resp => {
|
||||
this.availableIdps = resp.resultList;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
</button>
|
||||
<div class="line">
|
||||
<img src="../../../assets/images/google.png"
|
||||
*ngIf="idp.stylingType == IdpStylingType.IDPSTYLINGTYPE_GOOGLE" alt="google" />
|
||||
*ngIf="idp.stylingType == IDPStylingType.STYLING_TYPE_GOOGLE" alt="google" />
|
||||
<div>
|
||||
<span class="name">{{idp.name}}</span>
|
||||
<span class="meta-info">{{ 'IDP.TYPE' | translate }}: {{ 'IDP.TYPES.'+idp.type | translate }}</span>
|
||||
|
||||
@@ -5,29 +5,28 @@ import { Subscription } from 'rxjs';
|
||||
import { switchMap } from 'rxjs/operators';
|
||||
import { LoginMethodComponentType } from 'src/app/modules/mfa-table/mfa-table.component';
|
||||
import {
|
||||
DefaultLoginPolicy,
|
||||
DefaultLoginPolicyRequest,
|
||||
DefaultLoginPolicyView,
|
||||
IdpProviderView as AdminIdpProviderView,
|
||||
IdpStylingType,
|
||||
IdpView as AdminIdpView,
|
||||
PasswordlessType as AdminPasswordlessType,
|
||||
} from 'src/app/proto/generated/admin_pb';
|
||||
GetLoginPolicyResponse as AdminGetLoginPolicyResponse,
|
||||
UpdateLoginPolicyRequest,
|
||||
UpdateLoginPolicyResponse,
|
||||
} from 'src/app/proto/generated/zitadel/admin_pb';
|
||||
import { IDP, IDPLoginPolicyLink, IDPStylingType } from 'src/app/proto/generated/zitadel/idp_pb';
|
||||
import {
|
||||
IdpProviderType,
|
||||
IdpProviderView as MgmtIdpProviderView,
|
||||
IdpView as MgmtIdpView,
|
||||
LoginPolicy,
|
||||
LoginPolicyRequest,
|
||||
LoginPolicyView,
|
||||
PasswordlessType as MgmtPasswordlessType,
|
||||
} from 'src/app/proto/generated/management_pb';
|
||||
AddCustomLoginPolicyRequest,
|
||||
GetLoginPolicyResponse as MgmtGetLoginPolicyResponse,
|
||||
} from 'src/app/proto/generated/zitadel/management_pb';
|
||||
import { LoginPolicy, PasswordlessType } from 'src/app/proto/generated/zitadel/policy_pb';
|
||||
import { AdminService } from 'src/app/services/admin.service';
|
||||
import { ManagementService } from 'src/app/services/mgmt.service';
|
||||
import { ToastService } from 'src/app/services/toast.service';
|
||||
import { CnslLinks } from '../../links/links.component';
|
||||
import { IAM_COMPLEXITY_LINK, IAM_LABEL_LINK, IAM_LOGIN_POLICY_LINK, IAM_POLICY_LINK, ORG_COMPLEXITY_LINK, ORG_IAM_POLICY_LINK } from '../../policy-grid/policy-links';
|
||||
|
||||
import { CnslLinks } from '../../links/links.component';
|
||||
import {
|
||||
IAM_COMPLEXITY_LINK,
|
||||
IAM_LABEL_LINK,
|
||||
IAM_POLICY_LINK,
|
||||
ORG_COMPLEXITY_LINK,
|
||||
ORG_IAM_POLICY_LINK,
|
||||
} from '../../policy-grid/policy-links';
|
||||
import { PolicyComponentServiceType } from '../policy-component-types.enum';
|
||||
import { AddIdpDialogComponent } from './add-idp-dialog/add-idp-dialog.component';
|
||||
|
||||
@@ -38,19 +37,19 @@ import { AddIdpDialogComponent } from './add-idp-dialog/add-idp-dialog.component
|
||||
})
|
||||
export class LoginPolicyComponent implements OnDestroy {
|
||||
public LoginMethodComponentType: any = LoginMethodComponentType;
|
||||
public passwordlessTypes: Array<AdminPasswordlessType | MgmtPasswordlessType> = [];
|
||||
public loginData!: LoginPolicyView.AsObject | DefaultLoginPolicyView.AsObject;
|
||||
public passwordlessTypes: Array<PasswordlessType> = [];
|
||||
public loginData!: LoginPolicy.AsObject;
|
||||
|
||||
private sub: Subscription = new Subscription();
|
||||
public service!: ManagementService | AdminService;
|
||||
public PolicyComponentServiceType: any = PolicyComponentServiceType;
|
||||
public serviceType: PolicyComponentServiceType = PolicyComponentServiceType.MGMT;
|
||||
public idps: MgmtIdpProviderView.AsObject[] | AdminIdpProviderView.AsObject[] = [];
|
||||
public idps: IDPLoginPolicyLink.AsObject[] = [];
|
||||
|
||||
public loading: boolean = false;
|
||||
public disabled: boolean = true;
|
||||
|
||||
public IdpStylingType: any = IdpStylingType;
|
||||
public IDPStylingType: any = IDPStylingType;
|
||||
public nextLinks: CnslLinks[] = [];
|
||||
constructor(
|
||||
private route: ActivatedRoute,
|
||||
@@ -63,8 +62,10 @@ export class LoginPolicyComponent implements OnDestroy {
|
||||
switch (this.serviceType) {
|
||||
case PolicyComponentServiceType.MGMT:
|
||||
this.service = this.injector.get(ManagementService as Type<ManagementService>);
|
||||
this.passwordlessTypes = [MgmtPasswordlessType.PASSWORDLESSTYPE_ALLOWED,
|
||||
MgmtPasswordlessType.PASSWORDLESSTYPE_NOT_ALLOWED];
|
||||
this.passwordlessTypes = [
|
||||
PasswordlessType.PASSWORDLESS_TYPE_ALLOWED,
|
||||
PasswordlessType.PASSWORDLESS_TYPE_NOT_ALLOWED,
|
||||
];
|
||||
this.nextLinks = [
|
||||
ORG_COMPLEXITY_LINK,
|
||||
ORG_IAM_POLICY_LINK,
|
||||
@@ -72,8 +73,10 @@ export class LoginPolicyComponent implements OnDestroy {
|
||||
break;
|
||||
case PolicyComponentServiceType.ADMIN:
|
||||
this.service = this.injector.get(AdminService as Type<AdminService>);
|
||||
this.passwordlessTypes = [AdminPasswordlessType.PASSWORDLESSTYPE_ALLOWED,
|
||||
AdminPasswordlessType.PASSWORDLESSTYPE_NOT_ALLOWED];
|
||||
this.passwordlessTypes = [
|
||||
PasswordlessType.PASSWORDLESS_TYPE_ALLOWED,
|
||||
PasswordlessType.PASSWORDLESS_TYPE_NOT_ALLOWED,
|
||||
];
|
||||
this.nextLinks = [
|
||||
IAM_COMPLEXITY_LINK,
|
||||
IAM_POLICY_LINK,
|
||||
@@ -89,15 +92,15 @@ export class LoginPolicyComponent implements OnDestroy {
|
||||
}
|
||||
|
||||
private fetchData(): void {
|
||||
this.getData().then(data => {
|
||||
if (data) {
|
||||
this.loginData = data.toObject();
|
||||
this.getData().then(resp => {
|
||||
if (resp.policy) {
|
||||
this.loginData = resp.policy;
|
||||
this.loading = false;
|
||||
this.disabled = ((this.loginData as LoginPolicyView.AsObject)?.pb_default) ?? false;
|
||||
this.disabled = ((this.loginData as LoginPolicy.AsObject)?.isDefault) ?? false;
|
||||
}
|
||||
});
|
||||
this.getIdps().then(idps => {
|
||||
this.idps = idps;
|
||||
this.getIdps().then(resp => {
|
||||
this.idps = resp;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -106,48 +109,48 @@ export class LoginPolicyComponent implements OnDestroy {
|
||||
}
|
||||
|
||||
private async getData():
|
||||
Promise<LoginPolicyView | DefaultLoginPolicyView> {
|
||||
Promise<AdminGetLoginPolicyResponse.AsObject | MgmtGetLoginPolicyResponse.AsObject> {
|
||||
switch (this.serviceType) {
|
||||
case PolicyComponentServiceType.MGMT:
|
||||
return (this.service as ManagementService).GetLoginPolicy();
|
||||
return (this.service as ManagementService).getLoginPolicy();
|
||||
case PolicyComponentServiceType.ADMIN:
|
||||
return (this.service as AdminService).GetDefaultLoginPolicy();
|
||||
return (this.service as AdminService).getLoginPolicy();
|
||||
}
|
||||
}
|
||||
|
||||
private async getIdps(): Promise<MgmtIdpProviderView.AsObject[] | AdminIdpProviderView.AsObject[]> {
|
||||
private async getIdps(): Promise<IDPLoginPolicyLink.AsObject[]> {
|
||||
switch (this.serviceType) {
|
||||
case PolicyComponentServiceType.MGMT:
|
||||
return (this.service as ManagementService).GetLoginPolicyIdpProviders()
|
||||
.then((providers) => {
|
||||
return providers.toObject().resultList;
|
||||
return (this.service as ManagementService).listLoginPolicyIDPs()
|
||||
.then((resp) => {
|
||||
return resp.resultList;
|
||||
});
|
||||
case PolicyComponentServiceType.ADMIN:
|
||||
return (this.service as AdminService).GetDefaultLoginPolicyIdpProviders()
|
||||
return (this.service as AdminService).listLoginPolicyIDPs()
|
||||
.then((providers) => {
|
||||
return providers.toObject().resultList;
|
||||
return providers.resultList;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private async updateData():
|
||||
Promise<LoginPolicy | DefaultLoginPolicy> {
|
||||
Promise<UpdateLoginPolicyResponse.AsObject> {
|
||||
switch (this.serviceType) {
|
||||
case PolicyComponentServiceType.MGMT:
|
||||
const mgmtreq = new LoginPolicyRequest();
|
||||
const mgmtreq = new AddCustomLoginPolicyRequest();
|
||||
mgmtreq.setAllowExternalIdp(this.loginData.allowExternalIdp);
|
||||
mgmtreq.setAllowRegister(this.loginData.allowRegister);
|
||||
mgmtreq.setAllowUsernamePassword(this.loginData.allowUsernamePassword);
|
||||
mgmtreq.setForceMfa(this.loginData.forceMfa);
|
||||
mgmtreq.setPasswordlessType(this.loginData.passwordlessType);
|
||||
// console.log(mgmtreq.toObject());
|
||||
if ((this.loginData as LoginPolicyView.AsObject).pb_default) {
|
||||
return (this.service as ManagementService).CreateLoginPolicy(mgmtreq);
|
||||
if ((this.loginData as LoginPolicy.AsObject).isDefault) {
|
||||
return (this.service as ManagementService).addCustomLoginPolicy(mgmtreq);
|
||||
} else {
|
||||
return (this.service as ManagementService).UpdateLoginPolicy(mgmtreq);
|
||||
return (this.service as ManagementService).updateCustomLoginPolicy(mgmtreq);
|
||||
}
|
||||
case PolicyComponentServiceType.ADMIN:
|
||||
const adminreq = new DefaultLoginPolicyRequest();
|
||||
const adminreq = new UpdateLoginPolicyRequest();
|
||||
adminreq.setAllowExternalIdp(this.loginData.allowExternalIdp);
|
||||
adminreq.setAllowRegister(this.loginData.allowRegister);
|
||||
adminreq.setAllowUsernamePassword(this.loginData.allowUsernamePassword);
|
||||
@@ -156,7 +159,7 @@ export class LoginPolicyComponent implements OnDestroy {
|
||||
|
||||
// console.log(adminreq.toObject());
|
||||
|
||||
return (this.service as AdminService).UpdateDefaultLoginPolicy(adminreq);
|
||||
return (this.service as AdminService).updateLoginPolicy(adminreq);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -174,7 +177,7 @@ export class LoginPolicyComponent implements OnDestroy {
|
||||
|
||||
public removePolicy(): void {
|
||||
if (this.serviceType === PolicyComponentServiceType.MGMT) {
|
||||
(this.service as ManagementService).RemoveLoginPolicy().then(() => {
|
||||
(this.service as ManagementService).resetLoginPolicyToDefault().then(() => {
|
||||
this.toast.showInfo('POLICY.TOAST.RESETSUCCESS', true);
|
||||
this.loading = true;
|
||||
setTimeout(() => {
|
||||
@@ -195,8 +198,8 @@ export class LoginPolicyComponent implements OnDestroy {
|
||||
});
|
||||
|
||||
dialogRef.afterClosed().subscribe(resp => {
|
||||
if (resp && resp.idp && resp.type) {
|
||||
this.addIdp(resp.idp, resp.type).then(() => {
|
||||
if (resp && resp.idp) {
|
||||
this.addIdp(resp.idp).then(() => {
|
||||
this.loading = true;
|
||||
setTimeout(() => {
|
||||
this.fetchData();
|
||||
@@ -208,29 +211,28 @@ export class LoginPolicyComponent implements OnDestroy {
|
||||
});
|
||||
}
|
||||
|
||||
private addIdp(idp: AdminIdpView.AsObject | MgmtIdpView.AsObject,
|
||||
type: IdpProviderType = IdpProviderType.IDPPROVIDERTYPE_SYSTEM): Promise<any> {
|
||||
private addIdp(idp: IDP.AsObject | IDP.AsObject): Promise<any> {
|
||||
switch (this.serviceType) {
|
||||
case PolicyComponentServiceType.MGMT:
|
||||
return (this.service as ManagementService).addIdpProviderToLoginPolicy(idp.id, type);
|
||||
return (this.service as ManagementService).addIDPToLoginPolicy(idp.id);
|
||||
case PolicyComponentServiceType.ADMIN:
|
||||
return (this.service as AdminService).AddIdpProviderToDefaultLoginPolicy(idp.id);
|
||||
return (this.service as AdminService).addIDPToLoginPolicy(idp.id);
|
||||
}
|
||||
}
|
||||
|
||||
public removeIdp(idp: AdminIdpProviderView.AsObject | MgmtIdpProviderView.AsObject): void {
|
||||
public removeIdp(idp: IDPLoginPolicyLink.AsObject): void {
|
||||
switch (this.serviceType) {
|
||||
case PolicyComponentServiceType.MGMT:
|
||||
(this.service as ManagementService).RemoveIdpProviderFromLoginPolicy(idp.idpConfigId).then(() => {
|
||||
const index = (this.idps as MgmtIdpProviderView.AsObject[]).findIndex(temp => temp === idp);
|
||||
(this.service as ManagementService).removeIDPFromLoginPolicy(idp.idpId).then(() => {
|
||||
const index = this.idps.findIndex(temp => temp === idp);
|
||||
if (index > -1) {
|
||||
this.idps.splice(index, 1);
|
||||
}
|
||||
});
|
||||
break;
|
||||
case PolicyComponentServiceType.ADMIN:
|
||||
(this.service as AdminService).RemoveIdpProviderFromDefaultLoginPolicy(idp.idpConfigId).then(() => {
|
||||
const index = (this.idps as AdminIdpProviderView.AsObject[]).findIndex(temp => temp === idp);
|
||||
(this.service as AdminService).removeIDPFromLoginPolicy(idp.idpId).then(() => {
|
||||
const index = this.idps.findIndex(temp => temp === idp);
|
||||
if (index > -1) {
|
||||
this.idps.splice(index, 1);
|
||||
}
|
||||
@@ -241,7 +243,7 @@ export class LoginPolicyComponent implements OnDestroy {
|
||||
|
||||
public get isDefault(): boolean {
|
||||
if (this.loginData && this.serviceType === PolicyComponentServiceType.MGMT) {
|
||||
return (this.loginData as LoginPolicyView.AsObject).pb_default;
|
||||
return (this.loginData as LoginPolicy.AsObject).isDefault;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -2,16 +2,23 @@ import { Component, Injector, Input, OnDestroy, Type } from '@angular/core';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { Subscription } from 'rxjs';
|
||||
import { switchMap } from 'rxjs/operators';
|
||||
import { OrgIamPolicyView as AdminOrgIamPolicyView } from 'src/app/proto/generated/admin_pb';
|
||||
import { Org } from 'src/app/proto/generated/auth_pb';
|
||||
import { OrgIamPolicyView as MgmtOrgIamPolicyView } from 'src/app/proto/generated/management_pb';
|
||||
import { GetCustomOrgIAMPolicyResponse } from 'src/app/proto/generated/zitadel/admin_pb';
|
||||
import { GetOrgIAMPolicyResponse } from 'src/app/proto/generated/zitadel/management_pb';
|
||||
import { Org } from 'src/app/proto/generated/zitadel/org_pb';
|
||||
import { OrgIAMPolicy } from 'src/app/proto/generated/zitadel/policy_pb';
|
||||
import { AdminService } from 'src/app/services/admin.service';
|
||||
import { ManagementService } from 'src/app/services/mgmt.service';
|
||||
import { StorageService } from 'src/app/services/storage.service';
|
||||
import { ToastService } from 'src/app/services/toast.service';
|
||||
import { CnslLinks } from '../../links/links.component';
|
||||
import { IAM_COMPLEXITY_LINK, IAM_LABEL_LINK, IAM_LOGIN_POLICY_LINK, ORG_LOGIN_POLICY_LINK, ORG_COMPLEXITY_LINK } from '../../policy-grid/policy-links';
|
||||
|
||||
import { CnslLinks } from '../../links/links.component';
|
||||
import {
|
||||
IAM_COMPLEXITY_LINK,
|
||||
IAM_LABEL_LINK,
|
||||
IAM_LOGIN_POLICY_LINK,
|
||||
ORG_COMPLEXITY_LINK,
|
||||
ORG_LOGIN_POLICY_LINK,
|
||||
} from '../../policy-grid/policy-links';
|
||||
import { PolicyComponentServiceType } from '../policy-component-types.enum';
|
||||
|
||||
@Component({
|
||||
@@ -24,7 +31,7 @@ export class OrgIamPolicyComponent implements OnDestroy {
|
||||
private managementService!: ManagementService;
|
||||
public serviceType!: PolicyComponentServiceType;
|
||||
|
||||
public iamData!: AdminOrgIamPolicyView.AsObject | MgmtOrgIamPolicyView.AsObject;
|
||||
public iamData!: OrgIAMPolicy.AsObject;
|
||||
|
||||
private sub: Subscription = new Subscription();
|
||||
private org!: Org.AsObject;
|
||||
@@ -68,20 +75,20 @@ export class OrgIamPolicyComponent implements OnDestroy {
|
||||
}
|
||||
|
||||
public fetchData(): void {
|
||||
this.getData().then(data => {
|
||||
if (data) {
|
||||
this.iamData = data.toObject();
|
||||
this.getData().then(resp => {
|
||||
if (resp?.policy) {
|
||||
this.iamData = resp.policy;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private async getData(): Promise<AdminOrgIamPolicyView | MgmtOrgIamPolicyView | undefined> {
|
||||
private async getData(): Promise<GetCustomOrgIAMPolicyResponse.AsObject | GetOrgIAMPolicyResponse.AsObject | undefined> {
|
||||
switch (this.serviceType) {
|
||||
case PolicyComponentServiceType.MGMT:
|
||||
return this.managementService.GetMyOrgIamPolicy();
|
||||
return this.managementService.getOrgIAMPolicy();
|
||||
case PolicyComponentServiceType.ADMIN:
|
||||
if (this.org?.id) {
|
||||
return this.adminService.GetOrgIamPolicy(this.org.id);
|
||||
return this.adminService.getCustomOrgIAMPolicy(this.org.id);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -90,8 +97,8 @@ export class OrgIamPolicyComponent implements OnDestroy {
|
||||
public savePolicy(): void {
|
||||
switch (this.serviceType) {
|
||||
case PolicyComponentServiceType.MGMT:
|
||||
if ((this.iamData as MgmtOrgIamPolicyView.AsObject).pb_default) {
|
||||
this.adminService.CreateOrgIamPolicy(
|
||||
if ((this.iamData as OrgIAMPolicy.AsObject).isDefault) {
|
||||
this.adminService.addCustomOrgIAMPolicy(
|
||||
this.org.id,
|
||||
this.iamData.userLoginMustBeDomain,
|
||||
).then(() => {
|
||||
@@ -101,7 +108,7 @@ export class OrgIamPolicyComponent implements OnDestroy {
|
||||
});
|
||||
break;
|
||||
} else {
|
||||
this.adminService.UpdateOrgIamPolicy(
|
||||
this.adminService.updateCustomOrgIAMPolicy(
|
||||
this.org.id,
|
||||
this.iamData.userLoginMustBeDomain,
|
||||
).then(() => {
|
||||
@@ -113,8 +120,7 @@ export class OrgIamPolicyComponent implements OnDestroy {
|
||||
}
|
||||
case PolicyComponentServiceType.ADMIN:
|
||||
// update Default org iam policy?
|
||||
this.adminService.UpdateOrgIamPolicy(
|
||||
this.org.id,
|
||||
this.adminService.updateOrgIAMPolicy(
|
||||
this.iamData.userLoginMustBeDomain,
|
||||
).then(() => {
|
||||
this.toast.showInfo('POLICY.TOAST.SET', true);
|
||||
@@ -127,7 +133,7 @@ export class OrgIamPolicyComponent implements OnDestroy {
|
||||
|
||||
public removePolicy(): void {
|
||||
if (this.serviceType === PolicyComponentServiceType.MGMT) {
|
||||
this.adminService.RemoveOrgIamPolicy(this.org.id).then(() => {
|
||||
this.adminService.resetCustomOrgIAMPolicyToDefault(this.org.id).then(() => {
|
||||
this.toast.showInfo('POLICY.TOAST.RESETSUCCESS', true);
|
||||
setTimeout(() => {
|
||||
this.fetchData();
|
||||
@@ -140,7 +146,7 @@ export class OrgIamPolicyComponent implements OnDestroy {
|
||||
|
||||
public get isDefault(): boolean {
|
||||
if (this.iamData && this.serviceType === PolicyComponentServiceType.MGMT) {
|
||||
return (this.iamData as MgmtOrgIamPolicyView.AsObject).pb_default;
|
||||
return (this.iamData as OrgIAMPolicy.AsObject).isDefault;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
+18
-15
@@ -2,8 +2,11 @@ import { Component, Injector, OnDestroy, Type } from '@angular/core';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { Subscription } from 'rxjs';
|
||||
import { switchMap } from 'rxjs/operators';
|
||||
import { DefaultPasswordAgePolicyView } from 'src/app/proto/generated/admin_pb';
|
||||
import { PasswordAgePolicyView } from 'src/app/proto/generated/management_pb';
|
||||
import { GetPasswordAgePolicyResponse as AdminGetPasswordAgePolicyResponse } from 'src/app/proto/generated/zitadel/admin_pb';
|
||||
import {
|
||||
GetPasswordAgePolicyResponse as MgmtGetPasswordAgePolicyResponse,
|
||||
} from 'src/app/proto/generated/zitadel/management_pb';
|
||||
import { PasswordAgePolicy } from 'src/app/proto/generated/zitadel/policy_pb';
|
||||
import { AdminService } from 'src/app/services/admin.service';
|
||||
import { ManagementService } from 'src/app/services/mgmt.service';
|
||||
import { ToastService } from 'src/app/services/toast.service';
|
||||
@@ -20,7 +23,7 @@ export class PasswordAgePolicyComponent implements OnDestroy {
|
||||
public serviceType: PolicyComponentServiceType = PolicyComponentServiceType.MGMT;
|
||||
public service!: AdminService | ManagementService;
|
||||
|
||||
public ageData!: PasswordAgePolicyView.AsObject | DefaultPasswordAgePolicyView.AsObject;
|
||||
public ageData!: PasswordAgePolicy.AsObject | PasswordAgePolicy.AsObject;
|
||||
|
||||
private sub: Subscription = new Subscription();
|
||||
|
||||
@@ -43,9 +46,9 @@ export class PasswordAgePolicyComponent implements OnDestroy {
|
||||
|
||||
return this.route.params;
|
||||
})).subscribe(() => {
|
||||
this.getData().then(data => {
|
||||
if (data) {
|
||||
this.ageData = data.toObject();
|
||||
this.getData().then(resp => {
|
||||
if (resp.policy) {
|
||||
this.ageData = resp.policy;
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -56,19 +59,19 @@ export class PasswordAgePolicyComponent implements OnDestroy {
|
||||
}
|
||||
|
||||
private async getData():
|
||||
Promise<PasswordAgePolicyView | DefaultPasswordAgePolicyView> {
|
||||
Promise<MgmtGetPasswordAgePolicyResponse.AsObject | AdminGetPasswordAgePolicyResponse.AsObject> {
|
||||
|
||||
switch (this.serviceType) {
|
||||
case PolicyComponentServiceType.MGMT:
|
||||
return (this.service as ManagementService).GetPasswordAgePolicy();
|
||||
return (this.service as ManagementService).getPasswordAgePolicy();
|
||||
case PolicyComponentServiceType.ADMIN:
|
||||
return (this.service as AdminService).GetDefaultPasswordAgePolicy();
|
||||
return (this.service as AdminService).getPasswordAgePolicy();
|
||||
}
|
||||
}
|
||||
|
||||
public removePolicy(): void {
|
||||
if (this.serviceType === PolicyComponentServiceType.MGMT) {
|
||||
(this.service as ManagementService).RemovePasswordAgePolicy().then(() => {
|
||||
(this.service as ManagementService).resetPasswordAgePolicyToDefault().then(() => {
|
||||
this.toast.showInfo('POLICY.TOAST.RESETSUCCESS', true);
|
||||
setTimeout(() => {
|
||||
this.getData();
|
||||
@@ -106,8 +109,8 @@ export class PasswordAgePolicyComponent implements OnDestroy {
|
||||
public savePolicy(): void {
|
||||
switch (this.serviceType) {
|
||||
case PolicyComponentServiceType.MGMT:
|
||||
if ((this.ageData as PasswordAgePolicyView.AsObject).pb_default) {
|
||||
(this.service as ManagementService).CreatePasswordAgePolicy(
|
||||
if (this.ageData.isDefault) {
|
||||
(this.service as ManagementService).addCustomPasswordAgePolicy(
|
||||
this.ageData.maxAgeDays,
|
||||
this.ageData.expireWarnDays,
|
||||
).then(() => {
|
||||
@@ -116,7 +119,7 @@ export class PasswordAgePolicyComponent implements OnDestroy {
|
||||
this.toast.showError(error);
|
||||
});
|
||||
} else {
|
||||
(this.service as ManagementService).UpdatePasswordAgePolicy(
|
||||
(this.service as ManagementService).updateCustomPasswordAgePolicy(
|
||||
this.ageData.maxAgeDays,
|
||||
this.ageData.expireWarnDays,
|
||||
).then(() => {
|
||||
@@ -127,7 +130,7 @@ export class PasswordAgePolicyComponent implements OnDestroy {
|
||||
}
|
||||
break;
|
||||
case PolicyComponentServiceType.ADMIN:
|
||||
(this.service as AdminService).UpdateDefaultPasswordAgePolicy(
|
||||
(this.service as AdminService).updatePasswordAgePolicy(
|
||||
this.ageData.maxAgeDays,
|
||||
this.ageData.expireWarnDays,
|
||||
).then(() => {
|
||||
@@ -141,7 +144,7 @@ export class PasswordAgePolicyComponent implements OnDestroy {
|
||||
|
||||
public get isDefault(): boolean {
|
||||
if (this.ageData && this.serviceType === PolicyComponentServiceType.MGMT) {
|
||||
return (this.ageData as PasswordAgePolicyView.AsObject).pb_default;
|
||||
return (this.ageData as PasswordAgePolicy.AsObject).isDefault;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
+27
-16
@@ -2,14 +2,25 @@ import { Component, Injector, OnDestroy, Type } from '@angular/core';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { Subscription } from 'rxjs';
|
||||
import { switchMap } from 'rxjs/operators';
|
||||
import { DefaultPasswordComplexityPolicy } from 'src/app/proto/generated/admin_pb';
|
||||
import { PasswordComplexityPolicyView } from 'src/app/proto/generated/management_pb';
|
||||
import {
|
||||
GetPasswordComplexityPolicyResponse as AdminGetPasswordComplexityPolicyResponse,
|
||||
} from 'src/app/proto/generated/zitadel/admin_pb';
|
||||
import {
|
||||
GetPasswordComplexityPolicyResponse as MgmtGetPasswordComplexityPolicyResponse,
|
||||
} from 'src/app/proto/generated/zitadel/management_pb';
|
||||
import { PasswordComplexityPolicy } from 'src/app/proto/generated/zitadel/policy_pb';
|
||||
import { AdminService } from 'src/app/services/admin.service';
|
||||
import { ManagementService } from 'src/app/services/mgmt.service';
|
||||
import { ToastService } from 'src/app/services/toast.service';
|
||||
import { CnslLinks } from '../../links/links.component';
|
||||
import { IAM_LABEL_LINK, IAM_LOGIN_POLICY_LINK, IAM_POLICY_LINK, ORG_IAM_POLICY_LINK, ORG_LOGIN_POLICY_LINK } from '../../policy-grid/policy-links';
|
||||
|
||||
import { CnslLinks } from '../../links/links.component';
|
||||
import {
|
||||
IAM_LABEL_LINK,
|
||||
IAM_LOGIN_POLICY_LINK,
|
||||
IAM_POLICY_LINK,
|
||||
ORG_IAM_POLICY_LINK,
|
||||
ORG_LOGIN_POLICY_LINK,
|
||||
} from '../../policy-grid/policy-links';
|
||||
import { PolicyComponentServiceType } from '../policy-component-types.enum';
|
||||
|
||||
@Component({
|
||||
@@ -21,7 +32,7 @@ export class PasswordComplexityPolicyComponent implements OnDestroy {
|
||||
public serviceType: PolicyComponentServiceType = PolicyComponentServiceType.MGMT;
|
||||
public service!: ManagementService | AdminService;
|
||||
|
||||
public complexityData!: PasswordComplexityPolicyView.AsObject | DefaultPasswordComplexityPolicy.AsObject;
|
||||
public complexityData!: PasswordComplexityPolicy.AsObject;
|
||||
|
||||
private sub: Subscription = new Subscription();
|
||||
public PolicyComponentServiceType: any = PolicyComponentServiceType;
|
||||
@@ -64,8 +75,8 @@ export class PasswordComplexityPolicyComponent implements OnDestroy {
|
||||
this.loading = true;
|
||||
|
||||
this.getData().then(data => {
|
||||
if (data) {
|
||||
this.complexityData = data.toObject();
|
||||
if (data.policy) {
|
||||
this.complexityData = data.policy;
|
||||
this.loading = false;
|
||||
}
|
||||
});
|
||||
@@ -76,18 +87,18 @@ export class PasswordComplexityPolicyComponent implements OnDestroy {
|
||||
}
|
||||
|
||||
private async getData():
|
||||
Promise<PasswordComplexityPolicyView | DefaultPasswordComplexityPolicy> {
|
||||
Promise<MgmtGetPasswordComplexityPolicyResponse.AsObject | AdminGetPasswordComplexityPolicyResponse.AsObject> {
|
||||
switch (this.serviceType) {
|
||||
case PolicyComponentServiceType.MGMT:
|
||||
return (this.service as ManagementService).GetPasswordComplexityPolicy();
|
||||
return (this.service as ManagementService).getPasswordComplexityPolicy();
|
||||
case PolicyComponentServiceType.ADMIN:
|
||||
return (this.service as AdminService).GetDefaultPasswordComplexityPolicy();
|
||||
return (this.service as AdminService).getPasswordComplexityPolicy();
|
||||
}
|
||||
}
|
||||
|
||||
public removePolicy(): void {
|
||||
if (this.service instanceof ManagementService) {
|
||||
this.service.removePasswordComplexityPolicy().then(() => {
|
||||
this.service.resetPasswordComplexityPolicyToDefault().then(() => {
|
||||
this.toast.showInfo('POLICY.TOAST.RESETSUCCESS', true);
|
||||
setTimeout(() => {
|
||||
this.fetchData();
|
||||
@@ -113,8 +124,8 @@ export class PasswordComplexityPolicyComponent implements OnDestroy {
|
||||
public savePolicy(): void {
|
||||
switch (this.serviceType) {
|
||||
case PolicyComponentServiceType.MGMT:
|
||||
if ((this.complexityData as PasswordComplexityPolicyView.AsObject).pb_default) {
|
||||
(this.service as ManagementService).CreatePasswordComplexityPolicy(
|
||||
if ((this.complexityData as PasswordComplexityPolicy.AsObject).isDefault) {
|
||||
(this.service as ManagementService).addCustomPasswordComplexityPolicy(
|
||||
|
||||
this.complexityData.hasLowercase,
|
||||
this.complexityData.hasUppercase,
|
||||
@@ -127,7 +138,7 @@ export class PasswordComplexityPolicyComponent implements OnDestroy {
|
||||
this.toast.showError(error);
|
||||
});
|
||||
} else {
|
||||
(this.service as ManagementService).UpdatePasswordComplexityPolicy(
|
||||
(this.service as ManagementService).updateCustomPasswordComplexityPolicy(
|
||||
this.complexityData.hasLowercase,
|
||||
this.complexityData.hasUppercase,
|
||||
this.complexityData.hasNumber,
|
||||
@@ -141,7 +152,7 @@ export class PasswordComplexityPolicyComponent implements OnDestroy {
|
||||
}
|
||||
break;
|
||||
case PolicyComponentServiceType.ADMIN:
|
||||
(this.service as AdminService).UpdateDefaultPasswordComplexityPolicy(
|
||||
(this.service as AdminService).updatePasswordComplexityPolicy(
|
||||
this.complexityData.hasLowercase,
|
||||
this.complexityData.hasUppercase,
|
||||
this.complexityData.hasNumber,
|
||||
@@ -158,7 +169,7 @@ export class PasswordComplexityPolicyComponent implements OnDestroy {
|
||||
|
||||
public get isDefault(): boolean {
|
||||
if (this.complexityData && this.serviceType === PolicyComponentServiceType.MGMT) {
|
||||
return (this.complexityData as PasswordComplexityPolicyView.AsObject).pb_default;
|
||||
return (this.complexityData as PasswordComplexityPolicy.AsObject).isDefault;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
+20
-15
@@ -3,8 +3,13 @@ import { FormGroup } from '@angular/forms';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { Subscription } from 'rxjs';
|
||||
import { switchMap } from 'rxjs/operators';
|
||||
import { DefaultPasswordLockoutPolicyView } from 'src/app/proto/generated/admin_pb';
|
||||
import { PasswordLockoutPolicyView } from 'src/app/proto/generated/management_pb';
|
||||
import {
|
||||
GetPasswordLockoutPolicyResponse as AdminGetPasswordLockoutPolicyResponse,
|
||||
} from 'src/app/proto/generated/zitadel/admin_pb';
|
||||
import {
|
||||
GetPasswordLockoutPolicyResponse as MgmtGetPasswordLockoutPolicyResponse,
|
||||
} from 'src/app/proto/generated/zitadel/management_pb';
|
||||
import { PasswordLockoutPolicy } from 'src/app/proto/generated/zitadel/policy_pb';
|
||||
import { AdminService } from 'src/app/services/admin.service';
|
||||
import { ManagementService } from 'src/app/services/mgmt.service';
|
||||
import { ToastService } from 'src/app/services/toast.service';
|
||||
@@ -22,7 +27,7 @@ export class PasswordLockoutPolicyComponent implements OnDestroy {
|
||||
|
||||
|
||||
public lockoutForm!: FormGroup;
|
||||
public lockoutData!: PasswordLockoutPolicyView.AsObject;
|
||||
public lockoutData!: PasswordLockoutPolicy.AsObject;
|
||||
private sub: Subscription = new Subscription();
|
||||
public PolicyComponentServiceType: any = PolicyComponentServiceType;
|
||||
|
||||
@@ -54,25 +59,25 @@ export class PasswordLockoutPolicyComponent implements OnDestroy {
|
||||
}
|
||||
|
||||
private fetchData(): void {
|
||||
this.getData().then(data => {
|
||||
if (data) {
|
||||
this.lockoutData = data.toObject() as PasswordLockoutPolicyView.AsObject;
|
||||
this.getData().then(resp => {
|
||||
if (resp.policy) {
|
||||
this.lockoutData = resp.policy;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private getData(): Promise<PasswordLockoutPolicyView | DefaultPasswordLockoutPolicyView> {
|
||||
private getData(): Promise<AdminGetPasswordLockoutPolicyResponse.AsObject | MgmtGetPasswordLockoutPolicyResponse.AsObject> {
|
||||
switch (this.serviceType) {
|
||||
case PolicyComponentServiceType.MGMT:
|
||||
return (this.service as ManagementService).GetPasswordLockoutPolicy();
|
||||
return (this.service as ManagementService).getPasswordLockoutPolicy();
|
||||
case PolicyComponentServiceType.ADMIN:
|
||||
return (this.service as AdminService).GetDefaultPasswordLockoutPolicy();
|
||||
return (this.service as AdminService).getPasswordLockoutPolicy();
|
||||
}
|
||||
}
|
||||
|
||||
public removePolicy(): void {
|
||||
if (this.service instanceof ManagementService) {
|
||||
this.service.RemovePasswordLockoutPolicy().then(() => {
|
||||
this.service.resetPasswordLockoutPolicyToDefault().then(() => {
|
||||
this.toast.showInfo('POLICY.TOAST.RESETSUCCESS', true);
|
||||
this.fetchData();
|
||||
}).catch(error => {
|
||||
@@ -96,7 +101,7 @@ export class PasswordLockoutPolicyComponent implements OnDestroy {
|
||||
public savePolicy(): void {
|
||||
let promise: Promise<any>;
|
||||
if (this.service instanceof AdminService) {
|
||||
promise = this.service.UpdateDefaultPasswordLockoutPolicy(
|
||||
promise = this.service.updatePasswordLockoutPolicy(
|
||||
this.lockoutData.maxAttempts,
|
||||
this.lockoutData.showLockoutFailure,
|
||||
).then(() => {
|
||||
@@ -105,8 +110,8 @@ export class PasswordLockoutPolicyComponent implements OnDestroy {
|
||||
this.toast.showError(error);
|
||||
});
|
||||
} else {
|
||||
if ((this.lockoutData as PasswordLockoutPolicyView.AsObject).pb_default) {
|
||||
promise = this.service.CreatePasswordLockoutPolicy(
|
||||
if ((this.lockoutData as PasswordLockoutPolicy.AsObject).isDefault) {
|
||||
promise = this.service.addCustomPasswordLockoutPolicy(
|
||||
this.lockoutData.maxAttempts,
|
||||
this.lockoutData.showLockoutFailure,
|
||||
).then(() => {
|
||||
@@ -115,7 +120,7 @@ export class PasswordLockoutPolicyComponent implements OnDestroy {
|
||||
this.toast.showError(error);
|
||||
});
|
||||
} else {
|
||||
promise = this.service.UpdatePasswordLockoutPolicy(
|
||||
promise = this.service.updateCustomPasswordLockoutPolicy(
|
||||
this.lockoutData.maxAttempts,
|
||||
this.lockoutData.showLockoutFailure,
|
||||
).then(() => {
|
||||
@@ -129,7 +134,7 @@ export class PasswordLockoutPolicyComponent implements OnDestroy {
|
||||
|
||||
public get isDefault(): boolean {
|
||||
if (this.lockoutData && this.serviceType === PolicyComponentServiceType.MGMT) {
|
||||
return (this.lockoutData as PasswordLockoutPolicyView.AsObject).pb_default;
|
||||
return (this.lockoutData as PasswordLockoutPolicy.AsObject).isDefault;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user