mirror of
https://github.com/andwati/zitadel.git
synced 2026-11-03 04:42:15 +00:00
* 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]>
136 lines
6.8 KiB
HTML
136 lines
6.8 KiB
HTML
<app-detail-layout [backRouterLink]="[ serviceType === PolicyComponentServiceType.ADMIN ? '/iam/policies' : '/org']"
|
|
[title]="'POLICY.LOGIN_POLICY.TITLE' | translate"
|
|
[description]="(serviceType==PolicyComponentServiceType.MGMT ? 'POLICY.LOGIN_POLICY.DESCRIPTIONCREATEMGMT' : PolicyComponentServiceType.ADMIN ? 'POLICY.LOGIN_POLICY.DESCRIPTIONCREATEADMIN' : '') | translate">
|
|
<p class="default" *ngIf="isDefault"> {{'POLICY.DEFAULTLABEL' | translate}}</p>
|
|
|
|
<div class="spinner-wr">
|
|
<mat-spinner diameter="30" *ngIf="loading" color="primary"></mat-spinner>
|
|
</div>
|
|
<ng-container *ngIf="serviceType === PolicyComponentServiceType.MGMT">
|
|
<ng-template appHasRole [appHasRole]="['policy.delete']">
|
|
<button *ngIf="!isDefault" matTooltip="{{'POLICY.RESET' | translate}}" color="warn" (click)="removePolicy()"
|
|
mat-stroked-button>
|
|
{{'POLICY.RESET' | translate}}
|
|
</button>
|
|
</ng-template>
|
|
|
|
<ng-template appHasRole [appHasRole]="['policy.write']">
|
|
<button *ngIf="isDefault" matTooltip="{{'POLICY.CREATECUSTOM' | translate}}" (click)="savePolicy()"
|
|
mat-raised-button>
|
|
{{'POLICY.CREATECUSTOM' | translate}}
|
|
</button>
|
|
</ng-template>
|
|
</ng-container>
|
|
|
|
<div class="content" *ngIf="loginData">
|
|
<div class="row">
|
|
<mat-slide-toggle class="toggle" color="primary" [disabled]="disabled" ngDefaultControl
|
|
[(ngModel)]="loginData.allowUsernamePassword">
|
|
{{'POLICY.DATA.ALLOWUSERNAMEPASSWORD' | translate}}
|
|
</mat-slide-toggle>
|
|
<cnsl-info-section class="info">
|
|
{{'POLICY.DATA.ALLOWUSERNAMEPASSWORD_DESC' | translate}}
|
|
</cnsl-info-section>
|
|
</div>
|
|
<div class="row">
|
|
<mat-slide-toggle class="toggle" color="primary" [disabled]="disabled" ngDefaultControl
|
|
[(ngModel)]="loginData.allowRegister">
|
|
{{'POLICY.DATA.ALLOWREGISTER' | translate}}
|
|
</mat-slide-toggle>
|
|
<cnsl-info-section class="info">
|
|
{{'POLICY.DATA.ALLOWREGISTER_DESC' | translate}}
|
|
</cnsl-info-section>
|
|
</div>
|
|
<div class="row">
|
|
<mat-slide-toggle class="toggle" color="primary" [disabled]="disabled" ngDefaultControl
|
|
[(ngModel)]="loginData.allowExternalIdp">
|
|
{{'POLICY.DATA.ALLOWEXTERNALIDP' | translate}}
|
|
</mat-slide-toggle>
|
|
<cnsl-info-section class="info">
|
|
{{'POLICY.DATA.ALLOWEXTERNALIDP_DESC' | translate}}
|
|
</cnsl-info-section>
|
|
</div>
|
|
<div class="row">
|
|
<mat-slide-toggle class="toggle" color="primary" [disabled]="disabled" ngDefaultControl
|
|
[(ngModel)]="loginData.forceMfa">
|
|
{{'POLICY.DATA.FORCEMFA' | translate}}
|
|
</mat-slide-toggle>
|
|
<cnsl-info-section class="info">
|
|
{{'POLICY.DATA.FORCEMFA_DESC' | translate}}
|
|
</cnsl-info-section>
|
|
</div>
|
|
<div class="row">
|
|
<cnsl-form-field class="form-field" label="Access Code" required="true">
|
|
<cnsl-label>{{'LOGINPOLICY.PASSWORDLESS' | translate}}</cnsl-label>
|
|
<mat-select [(ngModel)]="loginData.passwordlessType">
|
|
<mat-option *ngFor="let pt of passwordlessTypes" [value]="pt">
|
|
{{'LOGINPOLICY.PASSWORDLESSTYPE.'+pt | translate}}
|
|
</mat-option>
|
|
</mat-select>
|
|
</cnsl-form-field>
|
|
</div>
|
|
</div>
|
|
|
|
<button [disabled]="disabled" class="save-button" (click)="savePolicy()" color="primary" type="submit"
|
|
mat-raised-button>{{ 'ACTIONS.SAVE' | translate }}</button>
|
|
|
|
<div class="divider"></div>
|
|
|
|
<ng-container *ngIf="!isDefault">
|
|
<h3 class="subheader">{{ 'MFA.LIST.MULTIFACTORTITLE' | translate }}</h3>
|
|
<p class="subdesc">{{ 'MFA.LIST.MULTIFACTORDESCRIPTION' | translate }}</p>
|
|
<app-mfa-table [service]="service" [serviceType]="serviceType"
|
|
[componentType]="LoginMethodComponentType.MultiFactor"
|
|
[disabled]="([serviceType == PolicyComponentServiceType.ADMIN ? 'iam.policy.write' : serviceType == PolicyComponentServiceType.MGMT ? 'policy.write' : ''] | hasRole | async) == false">
|
|
</app-mfa-table>
|
|
|
|
<h3 class="subheader">{{ 'MFA.LIST.SECONDFACTORTITLE' | translate }}</h3>
|
|
<p class="subdesc">{{ 'MFA.LIST.SECONDFACTORDESCRIPTION' | translate }}</p>
|
|
<app-mfa-table [service]="service" [serviceType]="serviceType"
|
|
[componentType]="LoginMethodComponentType.SecondFactor"
|
|
[disabled]="([serviceType == PolicyComponentServiceType.ADMIN ? 'iam.policy.write' : serviceType == PolicyComponentServiceType.MGMT ? 'policy.write' : ''] | hasRole | async) == false">
|
|
</app-mfa-table>
|
|
</ng-container>
|
|
|
|
<h3 class="subheader">{{'LOGINPOLICY.IDPS' | translate}}</h3>
|
|
|
|
<div class="idps">
|
|
<div class="idp" [ngClass]="{'disabled': disabled}" *ngFor="let idp of idps">
|
|
<button [disabled]="disabled" mat-icon-button (click)="removeIdp(idp)" class="rm">
|
|
<mat-icon matTooltip="{{'ACTIONS.REMOVE' | translate}}">
|
|
remove_circle</mat-icon>
|
|
</button>
|
|
<div class="line">
|
|
<img src="../../../assets/images/google.png"
|
|
*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>
|
|
<span class="meta-info">{{ 'IDP.ID' | translate }}: {{idp.idpConfigId}}</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div *ngIf="!disabled" class="new-idp" (click)="openDialog()" matRipple>
|
|
<mat-icon>add</mat-icon>
|
|
</div>
|
|
</div>
|
|
|
|
<ng-template appHasRole [appHasRole]="['org.idp.read']">
|
|
<app-card title="{{ 'IDP.LIST.TITLE' | translate }}" description="{{ 'IDP.LIST.DESCRIPTION' | translate }}"
|
|
[expanded]="false">
|
|
<div card-actions>
|
|
<i class="lab la-google"></i>
|
|
<i class="lab la-facebook"></i>
|
|
<i class="lab la-apple"></i>
|
|
<i class="lab la-github"></i>
|
|
<i class="lab la-gitlab"></i>
|
|
</div>
|
|
<app-idp-table [service]="service" [serviceType]="serviceType"
|
|
[disabled]="([serviceType == PolicyComponentServiceType.ADMIN ? 'iam.idp.write' : serviceType == PolicyComponentServiceType.MGMT ? 'org.idp.write' : ''] | hasRole | async) == false">
|
|
</app-idp-table>
|
|
</app-card>
|
|
</ng-template>
|
|
|
|
<cnsl-links *ngIf="nextLinks" [links]="nextLinks"></cnsl-links>
|
|
|
|
</app-detail-layout> |