2020-05-13 14:41:43 +02:00
|
|
|
<div class="max-width-container">
|
|
|
|
|
<div class="head">
|
feat(console): pinned org list, project grant detail view, state change, i18n, domain dialog, policy refactor, theme fixes, refactor user and projects (#449)
* pinned organisations
* project grant detail, state update, user-list pad
* rm entry components
* members nav, i18n, disable actions on non active
* add org domain dialog
* mv password policy rm to detail view
* prefix pinned orgs for userid, fix collapsed pad
* fix app back navigation
* rem pwd required validator
* fix org item overflow
* routing
* move users modules to users page
* reorganize projects
* remove child init of translate
* hide same preferred loginname
2020-07-13 13:38:49 +02:00
|
|
|
<a [routerLink]="['/projects', projectId]" mat-icon-button>
|
2020-05-13 14:41:43 +02:00
|
|
|
<mat-icon class="icon">arrow_back</mat-icon>
|
|
|
|
|
</a>
|
|
|
|
|
<h1>{{ 'APP.PAGES.TITLE' | translate }} {{app?.name}}</h1>
|
|
|
|
|
|
|
|
|
|
<p class="desc">{{ 'APP.PAGES.DESCRIPTION' | translate }}</p>
|
2020-06-23 18:56:29 +02:00
|
|
|
<p *ngIf="isZitadel" class="zitadel-warning">{{'PROJECT.PAGES.ZITADELPROJECT' | translate}}</p>
|
2020-05-13 14:41:43 +02:00
|
|
|
</div>
|
|
|
|
|
|
2020-06-10 12:59:12 +02:00
|
|
|
<span *ngIf="errorMessage" class="err-container">{{errorMessage}}</span>
|
|
|
|
|
|
2020-05-13 14:41:43 +02:00
|
|
|
<app-card title="{{ 'APP.PAGES.DETAIL.TITLE' | translate }}" *ngIf="app">
|
|
|
|
|
<form [formGroup]="appNameForm" (ngSubmit)="saveOIDCApp()">
|
|
|
|
|
<div class="content">
|
|
|
|
|
<mat-button-toggle-group formControlName="state" class="toggle" (change)="changeState($event)">
|
feat(console): identity providers and login policies (#722)
* idp list, idp create route
* idp modules, lazy import, i18n, routing
* generic service, i18n
* seperate lockout, age policy component
* seperate component modules
* routing
* enum class
* login policy
* iam policy grid
* login policy providers
* idps login policy
* add idp dialog component
* add idp to loginpolicy
* delete idp config, iam policy grid
* remove idp from loginpolicy
* idp detail component, generic idp create
* lint
* idp detail clientid-secrets, issuer, scopes
* hide clientsecret on update
* rm background style, idp config
* app tooltip fix
* lint
* dont refresh on idp select
* Update console/src/app/modules/idp-create/idp-create.component.html
Co-authored-by: Fabiennne <fabienne.gerschwiler@gmail.com>
Co-authored-by: Fabi <38692350+fgerschwiler@users.noreply.github.com>
2020-09-17 10:22:41 +02:00
|
|
|
<mat-button-toggle [value]="AppState.APPSTATE_INACTIVE"
|
|
|
|
|
matTooltip="{{ 'ACTIONS.DEACTIVATE' | translate}}">
|
2020-05-13 14:41:43 +02:00
|
|
|
{{'APP.PAGES.DETAIL.STATE.'+AppState.APPSTATE_INACTIVE | translate}}
|
|
|
|
|
</mat-button-toggle>
|
feat(console): identity providers and login policies (#722)
* idp list, idp create route
* idp modules, lazy import, i18n, routing
* generic service, i18n
* seperate lockout, age policy component
* seperate component modules
* routing
* enum class
* login policy
* iam policy grid
* login policy providers
* idps login policy
* add idp dialog component
* add idp to loginpolicy
* delete idp config, iam policy grid
* remove idp from loginpolicy
* idp detail component, generic idp create
* lint
* idp detail clientid-secrets, issuer, scopes
* hide clientsecret on update
* rm background style, idp config
* app tooltip fix
* lint
* dont refresh on idp select
* Update console/src/app/modules/idp-create/idp-create.component.html
Co-authored-by: Fabiennne <fabienne.gerschwiler@gmail.com>
Co-authored-by: Fabi <38692350+fgerschwiler@users.noreply.github.com>
2020-09-17 10:22:41 +02:00
|
|
|
<mat-button-toggle [value]="AppState.APPSTATE_ACTIVE"
|
|
|
|
|
matTooltip="{{ 'ACTIONS.REACTIVATE' | translate}}">
|
2020-05-13 14:41:43 +02:00
|
|
|
{{'APP.PAGES.DETAIL.STATE.'+AppState.APPSTATE_ACTIVE | translate}}
|
|
|
|
|
</mat-button-toggle>
|
|
|
|
|
</mat-button-toggle-group>
|
|
|
|
|
|
|
|
|
|
<mat-form-field class="formfield">
|
|
|
|
|
<mat-label>{{ 'APP.NAME' | translate }}</mat-label>
|
|
|
|
|
<input matInput formControlName="name" />
|
|
|
|
|
</mat-form-field>
|
2020-07-30 16:54:15 +02:00
|
|
|
|
|
|
|
|
<p class="docs-line" *ngIf="docs?.discoveryEndpoint">Discovery Endpoint: {{docs.discoveryEndpoint}}</p>
|
|
|
|
|
<p class="docs-line" *ngIf="docs?.issuer">Issuer: {{docs.issuer}}</p>
|
2020-05-13 14:41:43 +02:00
|
|
|
</div>
|
|
|
|
|
<div class="btn-container">
|
2020-08-12 08:47:53 +02:00
|
|
|
<button class="submit-button" type="submit" color="primary"
|
|
|
|
|
[disabled]="appNameForm.invalid || name?.disabled"
|
2020-05-13 14:41:43 +02:00
|
|
|
mat-raised-button>{{ 'ACTIONS.SAVE' | translate }}</button>
|
|
|
|
|
</div>
|
|
|
|
|
</form>
|
|
|
|
|
</app-card>
|
|
|
|
|
|
|
|
|
|
<app-card title="{{ 'APP.OIDC.TITLE' | translate }}" *ngIf="app && app.oidcConfig">
|
feat(console): organization overview table, table, org context filtering, fix grpc error log, cleanup pipes (#796)
* chore(deps-dev): bump @angular/cli from 10.0.8 to 10.1.3 in /console (#785)
Bumps [@angular/cli](https://github.com/angular/angular-cli) from 10.0.8 to 10.1.3.
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Commits](https://github.com/angular/angular-cli/compare/v10.0.8...v10.1.3)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @angular-devkit/build-angular in /console (#784)
Bumps [@angular-devkit/build-angular](https://github.com/angular/angular-cli) from 0.1000.8 to 0.1001.3.
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Commits](https://github.com/angular/angular-cli/commits)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Max Peintner <max@caos.ch>
* chore(deps-dev): bump @angular/language-service in /console (#783)
Bumps [@angular/language-service](https://github.com/angular/angular/tree/HEAD/packages/language-service) from 10.1.0 to 10.1.3.
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/10.1.3/packages/language-service)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump stylelint from 13.7.1 to 13.7.2 in /console (#782)
Bumps [stylelint](https://github.com/stylelint/stylelint) from 13.7.1 to 13.7.2.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/13.7.1...13.7.2)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump karma from 5.2.1 to 5.2.3 in /console (#781)
Bumps [karma](https://github.com/karma-runner/karma) from 5.2.1 to 5.2.3.
- [Release notes](https://github.com/karma-runner/karma/releases)
- [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma/compare/v5.2.1...v5.2.3)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): bump moment from 2.27.0 to 2.29.0 in /console (#780)
Bumps [moment](https://github.com/moment/moment) from 2.27.0 to 2.29.0.
- [Release notes](https://github.com/moment/moment/releases)
- [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/moment/moment/compare/2.27.0...2.29.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @types/node from 14.6.4 to 14.11.2 in /console (#778)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.6.4 to 14.11.2.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump prettier from 2.1.1 to 2.1.2 in /console (#757)
Bumps [prettier](https://github.com/prettier/prettier) from 2.1.1 to 2.1.2.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.1.1...2.1.2)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): bump ts-protoc-gen from 0.12.0 to 0.13.0 in /console (#737)
Bumps [ts-protoc-gen](https://github.com/improbable-eng/ts-protoc-gen) from 0.12.0 to 0.13.0.
- [Release notes](https://github.com/improbable-eng/ts-protoc-gen/releases)
- [Changelog](https://github.com/improbable-eng/ts-protoc-gen/blob/master/CHANGELOG.md)
- [Commits](https://github.com/improbable-eng/ts-protoc-gen/compare/0.12.0...0.13.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump jasmine-spec-reporter in /console (#762)
Bumps [jasmine-spec-reporter](https://github.com/bcaudan/jasmine-spec-reporter) from 5.0.2 to 6.0.0.
- [Release notes](https://github.com/bcaudan/jasmine-spec-reporter/releases)
- [Changelog](https://github.com/bcaudan/jasmine-spec-reporter/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bcaudan/jasmine-spec-reporter/compare/v5.0.2...v6.0.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Max Peintner <max@caos.ch>
* fix: package
* change html lang to translation lang
* disable detail view org idp
* catch errorcode 16 in auth response interceptor
* new icons
* refactor pipes, idp table config
* fix router guard
* lint
* allowed commonjs deps
* Update console/src/assets/i18n/en.json
Co-authored-by: Florian Forster <florian@caos.ch>
* Update console/src/assets/i18n/de.json
Co-authored-by: Florian Forster <florian@caos.ch>
* clear table warning
* org overview table, header filter
* toolbar filter
* user table filter
* fix org filter themed color, reject error
* org context filter
* button cleanup
* commonjs deps, remove a11y module
* replace progressbar with spinner
* dynamic user, org filter
* ts lint, scss lint
* cleanup table, row highlighting
* lint
* fix i18n description, refresh idp list in login p
* remove async from grpc services, fix external idp
* remove external idp
* fix theme toggle
* change iam policy header i18n
* sticky action columns
* lint
* add i18n filter to user, remove unused org code
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Florian Forster <florian@caos.ch>
2020-10-01 15:53:43 +02:00
|
|
|
<div card-actions *ngIf="app?.oidcConfig?.authMethodType !== OIDCAuthMethodType.OIDCAUTHMETHODTYPE_NONE">
|
2020-10-09 11:37:05 +02:00
|
|
|
<button [disabled]="!canWrite" mat-stroked-button
|
2020-05-13 14:41:43 +02:00
|
|
|
(click)="regenerateOIDCClientSecret()">{{'APP.OIDC.REGENERATESECRET' | translate}}</button>
|
fix(console): cleanup structure, role guard, paginated requests, cleanup policies, toast i18n, view timestamp, preloading strategy, maennchenfindings, fix passwordchange (#483)
* routes, move grid to list comopnent
* rename app list component, move to project sub
* add owned-project-detail child module
* seperate pipes
* set password validators only if needed
* create org initialize without pwd
* no caps
* self xss message
* fix user table
* fix project member paginator
* fix project members pagination, user grant pag
* move project grants, fix imports
* fix owned project detail imports
* use pipe and directives
* ng content bindings, rem custom schemas
* i18n, fix error toast parameter
* toast i18n
* side background
* fix: sequence, add timestamp
* audit
* fix metanav background
* org domain label
* cleanup policy component
* shorten user grant roles, mk cols visible as bind
* move user components, show otp only if available
* preload modules
* fix password change
* fix org create buttons
* class css
2020-07-16 15:13:36 +02:00
|
|
|
</div>
|
2020-08-12 08:22:24 +02:00
|
|
|
|
|
|
|
|
<div class="compliance">
|
|
|
|
|
<p class="problem" *ngFor="let problem of app.oidcConfig.complianceProblemsList">
|
|
|
|
|
{{problem.localizedMessage}}
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
2020-05-13 14:41:43 +02:00
|
|
|
<form *ngIf="appForm" [formGroup]="appForm" (ngSubmit)="saveOIDCApp()">
|
|
|
|
|
<div class="content">
|
2020-07-30 16:54:15 +02:00
|
|
|
<mat-form-field class="formfield" appearance="outline">
|
2020-05-13 14:41:43 +02:00
|
|
|
<mat-label>{{ 'APP.OIDC.CLIENTID' | translate }}</mat-label>
|
|
|
|
|
<input matInput formControlName="clientId" />
|
|
|
|
|
</mat-form-field>
|
|
|
|
|
|
2020-07-30 16:54:15 +02:00
|
|
|
<mat-form-field class="formfield" appearance="outline">
|
2020-05-13 14:41:43 +02:00
|
|
|
<mat-label>{{ 'APP.OIDC.RESPONSE' | translate }}</mat-label>
|
|
|
|
|
<mat-select formControlName="responseTypesList" multiple>
|
|
|
|
|
<mat-option *ngFor="let type of oidcResponseTypes" [value]="type">
|
|
|
|
|
{{ 'APP.OIDC.RESPONSE'+type | translate }}
|
|
|
|
|
</mat-option>
|
|
|
|
|
</mat-select>
|
|
|
|
|
</mat-form-field>
|
|
|
|
|
|
2020-07-30 16:54:15 +02:00
|
|
|
<mat-form-field class="formfield" appearance="outline">
|
2020-05-13 14:41:43 +02:00
|
|
|
<mat-label>{{ 'APP.OIDC.GRANT' | translate }}</mat-label>
|
|
|
|
|
<mat-select formControlName="grantTypesList" multiple>
|
|
|
|
|
<mat-option *ngFor="let grant of oidcGrantTypes" [value]="grant">
|
|
|
|
|
{{ 'APP.OIDC.GRANT'+grant | translate }}
|
|
|
|
|
</mat-option>
|
|
|
|
|
</mat-select>
|
|
|
|
|
</mat-form-field>
|
|
|
|
|
|
|
|
|
|
<mat-form-field appearance="outline" class="formfield">
|
|
|
|
|
<mat-label>{{ 'APP.OIDC.APPTYPE' | translate }}</mat-label>
|
|
|
|
|
<mat-select formControlName="applicationType">
|
|
|
|
|
<mat-option *ngFor="let type of oidcAppTypes" [value]="type">
|
|
|
|
|
{{ 'APP.OIDC.APPTYPE'+type | translate }}
|
|
|
|
|
</mat-option>
|
|
|
|
|
</mat-select>
|
|
|
|
|
</mat-form-field>
|
|
|
|
|
|
|
|
|
|
<mat-form-field appearance="outline" class="formfield">
|
|
|
|
|
<mat-label>{{ 'APP.OIDC.AUTHMETHOD' | translate }}</mat-label>
|
|
|
|
|
<mat-select formControlName="authMethodType">
|
|
|
|
|
<mat-option *ngFor="let type of oidcAuthMethodType" [value]="type">
|
|
|
|
|
{{ 'APP.OIDC.AUTHMETHOD'+type | translate }}
|
|
|
|
|
</mat-option>
|
|
|
|
|
</mat-select>
|
|
|
|
|
</mat-form-field>
|
2020-08-12 08:22:24 +02:00
|
|
|
|
|
|
|
|
<mat-slide-toggle color="primary" class="devmode" formControlName="devMode" name="devMode">
|
|
|
|
|
{{ 'APP.OIDC.DEVMODE' | translate }}
|
|
|
|
|
</mat-slide-toggle>
|
|
|
|
|
|
|
|
|
|
<p class="step-description">{{'APP.OIDC.DEVMODEDESC' | translate}}</p>
|
2020-07-30 16:54:15 +02:00
|
|
|
<p class="step-description"
|
|
|
|
|
*ngIf="applicationType?.value == OIDCApplicationType.OIDCAPPLICATIONTYPE_NATIVE">
|
|
|
|
|
{{'APP.OIDC.REDIRECTDESCRIPTIONNATIVE' | translate}}</p>
|
|
|
|
|
<p class="step-description"
|
|
|
|
|
*ngIf="applicationType?.value == OIDCApplicationType.OIDCAPPLICATIONTYPE_WEB || applicationType?.value == OIDCApplicationType.OIDCAPPLICATIONTYPE_USER_AGENT">
|
|
|
|
|
{{'APP.OIDC.REDIRECTDESCRIPTIONWEB' | translate}}</p>
|
2020-05-13 14:41:43 +02:00
|
|
|
|
2020-07-30 16:54:15 +02:00
|
|
|
<mat-form-field class="formfield full-width" appearance="outline">
|
2020-05-13 14:41:43 +02:00
|
|
|
<mat-label>{{ 'APP.OIDC.REDIRECT' | translate }}</mat-label>
|
2020-10-09 11:37:05 +02:00
|
|
|
<mat-chip-list [disabled]="!canWrite" #chipRedirectList>
|
2020-07-30 16:54:15 +02:00
|
|
|
<mat-chip class="chip" *ngFor="let redirect of redirectUrisList" selected
|
2020-07-24 09:48:58 +02:00
|
|
|
[matTooltip]="!redirect.startsWith('https://') ? ('APP.OIDC.UNSECUREREDIRECT' | translate): ''"
|
|
|
|
|
[color]="!redirect.startsWith('https://') ? 'warn': 'green'"
|
2020-05-13 14:41:43 +02:00
|
|
|
(removed)="remove(redirect, RedirectType.REDIRECT)">
|
|
|
|
|
{{redirect}}
|
|
|
|
|
<mat-icon matChipRemove *ngIf="removable">cancel</mat-icon>
|
|
|
|
|
</mat-chip>
|
|
|
|
|
<input [matChipInputFor]="chipRedirectList" [matChipInputSeparatorKeyCodes]="separatorKeysCodes"
|
2020-07-30 16:54:15 +02:00
|
|
|
[matChipInputAddOnBlur]="addOnBlur" [formControl]="redirectControl"
|
2020-05-13 14:41:43 +02:00
|
|
|
(matChipInputTokenEnd)="add($event, RedirectType.REDIRECT)">
|
|
|
|
|
</mat-chip-list>
|
|
|
|
|
</mat-form-field>
|
|
|
|
|
|
2020-07-30 16:54:15 +02:00
|
|
|
<p *ngIf="redirectControl.value && redirectControl.invalid" class="error">
|
|
|
|
|
{{'APP.OIDC.REDIRECTNOTVALID' | translate}}</p>
|
|
|
|
|
|
|
|
|
|
<mat-form-field class="formfield full-width" appearance="outline">
|
2020-05-13 14:41:43 +02:00
|
|
|
<mat-label>{{ 'APP.OIDC.POSTLOGOUTREDIRECT' | translate }}</mat-label>
|
2020-10-09 11:37:05 +02:00
|
|
|
<mat-chip-list [disabled]="!canWrite" #chipPostRedirectList>
|
2020-07-30 16:54:15 +02:00
|
|
|
<mat-chip class="chip" *ngFor="let redirect of postLogoutRedirectUrisList" selected
|
2020-07-24 09:48:58 +02:00
|
|
|
(removed)="remove(redirect, RedirectType.POSTREDIRECT)"
|
|
|
|
|
[matTooltip]="!redirect.startsWith('https://') ? ('APP.OIDC.UNSECUREREDIRECT' | translate): ''"
|
|
|
|
|
[color]="!redirect.startsWith('https://') ? 'warn': 'green'">
|
2020-05-13 14:41:43 +02:00
|
|
|
{{redirect}}
|
|
|
|
|
<mat-icon matChipRemove *ngIf="removable">cancel</mat-icon>
|
|
|
|
|
</mat-chip>
|
|
|
|
|
<input [matChipInputFor]="chipPostRedirectList"
|
|
|
|
|
[matChipInputSeparatorKeyCodes]="separatorKeysCodes" [matChipInputAddOnBlur]="addOnBlur"
|
2020-07-30 16:54:15 +02:00
|
|
|
(matChipInputTokenEnd)="add($event, RedirectType.POSTREDIRECT)"
|
|
|
|
|
[formControl]="postRedirectControl">
|
2020-05-13 14:41:43 +02:00
|
|
|
</mat-chip-list>
|
|
|
|
|
</mat-form-field>
|
2020-07-30 16:54:15 +02:00
|
|
|
|
|
|
|
|
<p *ngIf="postRedirectControl.value && postRedirectControl.invalid" class="error">
|
|
|
|
|
{{'APP.OIDC.REDIRECTNOTVALID' | translate}}</p>
|
2020-05-13 14:41:43 +02:00
|
|
|
</div>
|
|
|
|
|
<div class="btn-container">
|
|
|
|
|
|
2020-10-09 11:37:05 +02:00
|
|
|
<button class="submit-button" type="submit" color="primary" [disabled]="appForm.invalid || !canWrite"
|
2020-05-13 14:41:43 +02:00
|
|
|
mat-raised-button>{{ 'ACTIONS.SAVE' | translate }}</button>
|
|
|
|
|
</div>
|
|
|
|
|
</form>
|
|
|
|
|
|
|
|
|
|
</app-card>
|
|
|
|
|
</div>
|