mirror of
https://github.com/zitadel/zitadel.git
synced 2025-05-08 06:46:47 +00:00

* es lint * modify tsconfig, auto lint some stuff * lint * lint * lint * lint * html ts lint * lint * lint, tsconfig * fix project delete, state table * eslint config, remove cnslHint directive * mfa selector, info row fixes * lint * fix login policy, granted orgs table state, lint Co-authored-by: Florian Forster <florian@caos.ch>
74 lines
4.8 KiB
HTML
74 lines
4.8 KiB
HTML
<cnsl-detail-layout [backRouterLink]="[ serviceType === PolicyComponentServiceType.ADMIN ? '/iam/policies' : '/org']"
|
|
[title]="'POLICY.PWD_COMPLEXITY.TITLE' | translate" [description]="'POLICY.PWD_COMPLEXITY.DESCRIPTION' | translate">
|
|
|
|
<cnsl-info-section *ngIf="isDefault"> {{'POLICY.DEFAULTLABEL' | translate}}</cnsl-info-section>
|
|
|
|
<cnsl-info-section *ngIf="serviceType === PolicyComponentServiceType.MGMT && (['password_complexity_policy'] | hasFeature | async) === false" [featureLink]="['/org/features']" class="info" [type]="InfoSectionType.WARN">
|
|
<span [innerHTML]="'FEATURES.NOTAVAILABLE' | translate: ({value: 'password_complexity_policy'})"></span>
|
|
</cnsl-info-section>
|
|
|
|
<div class="spinner-wr">
|
|
<mat-spinner diameter="30" *ngIf="loading" color="primary"></mat-spinner>
|
|
</div>
|
|
|
|
<ng-template cnslHasRole [hasRole]="['policy.delete']">
|
|
<button *ngIf="serviceType === PolicyComponentServiceType.MGMT && !isDefault" [disabled]="serviceType === PolicyComponentServiceType.MGMT && (['password_complexity_policy'] | hasFeature | async) === false"
|
|
matTooltip="{{'POLICY.RESET' | translate}}" color="warn" (click)="removePolicy()" mat-stroked-button>
|
|
{{'POLICY.RESET' | translate}}
|
|
</button>
|
|
</ng-template>
|
|
|
|
<div *ngIf="complexityData" class="content">
|
|
<div class="row">
|
|
<mat-icon class="icon" svgIcon="mdi_counter"></mat-icon>
|
|
<span class="left-desc">{{'POLICY.DATA.MINLENGTH' | translate}}</span>
|
|
<span class="fill-space"></span>
|
|
<div class="length-wrapper">
|
|
<button mat-icon-button (click)="decrementLength()" [disabled]="serviceType === PolicyComponentServiceType.MGMT && (['password_complexity_policy'] | hasFeature | async) === false">
|
|
<mat-icon>remove</mat-icon>
|
|
</button>
|
|
<span>{{complexityData?.minLength}}</span>
|
|
<button mat-icon-button (click)="incrementLength()" [disabled]="serviceType === PolicyComponentServiceType.MGMT && (['password_complexity_policy'] | hasFeature | async) === false">
|
|
<mat-icon>add</mat-icon>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<mat-icon class="icon" svgIcon="mdi_numeric"></mat-icon>
|
|
<span class="left-desc">{{'POLICY.DATA.HASNUMBER' | translate}}</span>
|
|
<span class="fill-space"></span>
|
|
<mat-slide-toggle color="primary" name="hasNumber" ngDefaultControl [(ngModel)]="complexityData.hasNumber" [disabled]="serviceType === PolicyComponentServiceType.MGMT && (['password_complexity_policy'] | hasFeature | async) === false">
|
|
</mat-slide-toggle>
|
|
</div>
|
|
<div class="row">
|
|
<mat-icon class="icon" svgIcon="mdi_symbol"></mat-icon>
|
|
<span class="left-desc">{{'POLICY.DATA.HASSYMBOL' | translate}}</span>
|
|
<span class="fill-space"></span>
|
|
<mat-slide-toggle color="primary" name="hasSymbol" ngDefaultControl [(ngModel)]="complexityData.hasSymbol" [disabled]="serviceType === PolicyComponentServiceType.MGMT && (['password_complexity_policy'] | hasFeature | async) === false">
|
|
</mat-slide-toggle>
|
|
</div>
|
|
<div class="row">
|
|
<mat-icon class="icon" svgIcon="mdi_format-letter-case-lower"></mat-icon>
|
|
<span class="left-desc">{{'POLICY.DATA.HASLOWERCASE' | translate}}</span>
|
|
<span class="fill-space"></span>
|
|
<mat-slide-toggle color="primary" name="hasLowercase" ngDefaultControl
|
|
[(ngModel)]="complexityData.hasLowercase" [disabled]="serviceType === PolicyComponentServiceType.MGMT && (['password_complexity_policy'] | hasFeature | async) === false">
|
|
</mat-slide-toggle>
|
|
</div>
|
|
<div class="row">
|
|
<mat-icon class="icon" svgIcon="mdi_format-letter-case-upper"></mat-icon>
|
|
<span class="left-desc">{{'POLICY.DATA.HASUPPERCASE' | translate}}</span>
|
|
<span class="fill-space"></span>
|
|
<mat-slide-toggle color="primary" name="hasUppercase" ngDefaultControl
|
|
[(ngModel)]="complexityData.hasUppercase" [disabled]="serviceType === PolicyComponentServiceType.MGMT && (['password_complexity_policy'] | hasFeature | async) === false">
|
|
</mat-slide-toggle>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="btn-container">
|
|
<button (click)="savePolicy()" [disabled]="serviceType === PolicyComponentServiceType.MGMT && (['password_complexity_policy'] | hasFeature | async) === false" color="primary" type="submit" mat-raised-button>{{ 'ACTIONS.SAVE' | translate
|
|
}}</button>
|
|
</div>
|
|
|
|
<cnsl-policy-grid [currentPolicy]="currentPolicy" [type]="serviceType" tagForFilter="security"></cnsl-policy-grid>
|
|
</cnsl-detail-layout> |