- |
- {{ 'PROJECT.MEMBER.USERID' | translate }} |
+ {{ 'PROJECT.MEMBER.USERID' | translate }} |
- {{member.userId}} |
+ {{ member.userId }}
+ |
{{ 'PROJECT.MEMBER.DISPLAYNAME' | translate }} | +{{ 'PROJECT.MEMBER.DISPLAYNAME' | translate }} | - {{member.displayName}} | + {{ member.displayName }} +{{ 'PROJECT.MEMBER.LOGINNAME' | translate }} | +{{ 'PROJECT.MEMBER.LOGINNAME' | translate }} | - {{member.preferredLoginName}} | + {{ member.preferredLoginName }} +{{ 'PROJECT.MEMBER.EMAIL' | translate }} | +{{ 'PROJECT.MEMBER.EMAIL' | translate }} | - {{member.email}} + {{ member.email }} |
|
{{ 'ROLESLABEL' | translate }} | +{{ 'ROLESLABEL' | translate }} |
|
---|
{{ 'ORG.PAGES.ACTIVE' | translate }}
@@ -51,6 +58,7 @@
{{ 'ORG.PAGES.NAME' | translate }}
|
diff --git a/console/src/app/modules/org-table/org-table.component.ts b/console/src/app/modules/org-table/org-table.component.ts
index f0ea8becde..4129cfa043 100644
--- a/console/src/app/modules/org-table/org-table.component.ts
+++ b/console/src/app/modules/org-table/org-table.component.ts
@@ -1,9 +1,11 @@
+import { LiveAnnouncer } from '@angular/cdk/a11y';
import { Component, Input, ViewChild } from '@angular/core';
+import { MatSort, Sort } from '@angular/material/sort';
import { MatTableDataSource } from '@angular/material/table';
import { Router } from '@angular/router';
import { Timestamp } from 'google-protobuf/google/protobuf/timestamp_pb';
import { BehaviorSubject, catchError, finalize, from, map, Observable, of, Subject, switchMap, takeUntil } from 'rxjs';
-import { Org, OrgQuery, OrgState } from 'src/app/proto/generated/zitadel/org_pb';
+import { Org, OrgFieldName, OrgQuery, OrgState } from 'src/app/proto/generated/zitadel/org_pb';
import { GrpcAuthService } from 'src/app/services/grpc-auth.service';
import { ToastService } from 'src/app/services/toast.service';
@@ -38,6 +40,7 @@ export class OrgTableComponent {
public filterOpen: boolean = false;
public OrgState: any = OrgState;
public copied: string = '';
+ @ViewChild(MatSort) public sort!: MatSort;
private searchQueries: OrgQuery[] = [];
private destroy$: Subject
+
+
+{{ 'POLICY.DOMAIN_POLICY.TITLE' | translate }}+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/console/src/app/modules/policies/org-iam-policy/org-iam-policy.component.scss b/console/src/app/modules/policies/domain-policy/domain-policy.component.scss
similarity index 100%
rename from console/src/app/modules/policies/org-iam-policy/org-iam-policy.component.scss
rename to console/src/app/modules/policies/domain-policy/domain-policy.component.scss
diff --git a/console/src/app/modules/policies/domain-policy/domain-policy.component.spec.ts b/console/src/app/modules/policies/domain-policy/domain-policy.component.spec.ts
new file mode 100644
index 0000000000..5a732c791e
--- /dev/null
+++ b/console/src/app/modules/policies/domain-policy/domain-policy.component.spec.ts
@@ -0,0 +1,24 @@
+import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
+
+import { DomainPolicyComponent } from './domain-policy.component';
+
+describe('DomainPolicyComponent', () => {
+ let component: DomainPolicyComponent;
+ let fixture: ComponentFixture{{ 'MFA.LIST.SECONDFACTORDESCRIPTION' | translate }}
-
{{ 'POLICY.LOGIN_POLICY.LIFETIMEDURATIONS' | translate }}+ + + ++ {{ 'POLICY.LOGIN_POLICY.ADVANCED' | translate }}-
-
-
-
- {{'GRANTS.EMPTY' | translate}}
+ {{ 'GRANTS.EMPTY' | translate }}
-
-
diff --git a/console/src/app/pages/projects/owned-projects/project-role-create/project-role-create.component.ts b/console/src/app/pages/projects/owned-projects/project-role-create/project-role-create.component.ts
index 06806065a3..a30f361634 100644
--- a/console/src/app/pages/projects/owned-projects/project-role-create/project-role-create.component.ts
+++ b/console/src/app/pages/projects/owned-projects/project-role-create/project-role-create.component.ts
@@ -89,7 +89,7 @@ export class ProjectRoleCreateComponent implements OnInit, OnDestroy {
.bulkAddProjectRoles(this.projectId, rolesToAdd)
.then(() => {
this.toast.showInfo('PROJECT.TOAST.ROLESCREATED', true);
- this.router.navigate(['projects', this.projectId, 'roles']);
+ this.router.navigate(['projects', this.projectId], { queryParams: { id: 'roles' } });
})
.catch((error) => {
this.toast.showError(error);
diff --git a/console/src/app/pages/projects/project-create/project-create.component.html b/console/src/app/pages/projects/project-create/project-create.component.html
index 5f74bcfe42..f2882d3a37 100644
--- a/console/src/app/pages/projects/project-create/project-create.component.html
+++ b/console/src/app/pages/projects/project-create/project-create.component.html
@@ -4,27 +4,31 @@
-
+
+
diff --git a/console/src/app/pages/projects/apps/app-create/app-create.component.scss b/console/src/app/pages/projects/apps/app-create/app-create.component.scss
index e960d4a991..07a7a1ec56 100644
--- a/console/src/app/pages/projects/apps/app-create/app-create.component.scss
+++ b/console/src/app/pages/projects/apps/app-create/app-create.component.scss
@@ -12,109 +12,122 @@ p.desc {
display: block;
}
-.app-create-container {
- padding-top: 2rem;
+.abort-container {
+ display: flex;
+ align-items: center;
+ margin-bottom: 2rem;
- .progress-bar {
- margin-bottom: 1rem;
+ .abort {
+ font-size: 1.2rem;
+ margin-left: 2rem;
}
- .abort-container {
- display: flex;
- align-items: center;
- margin-bottom: 2rem;
-
- .abort {
- font-size: 1.2rem;
- margin-left: 2rem;
- }
-
- .abort-2 {
- font-size: 1.2rem;
- margin-left: 2rem;
- white-space: nowrap;
- }
+ .abort-2 {
+ font-size: 1.2rem;
+ margin-left: 2rem;
+ white-space: nowrap;
}
}
-.margin-right {
- margin-right: 0.5rem;
-}
+.app-create-content {
+ padding-left: 4.5rem;
-.full-width {
- width: 100%;
-}
-
-.stepper {
- background: inherit !important;
- margin: 0 -1.5rem;
-
- .formfield {
+ .name-formfield {
max-width: 400px;
+ display: block;
}
- .step-title {
- font-size: 1rem;
- text-transform: uppercase;
- letter-spacing: 0.05em;
+ .app-create-container {
+ padding-top: 2rem;
+
+ .progress-bar {
+ margin-bottom: 1rem;
+ }
}
- .step-description {
- font-size: 0.9rem;
+ .margin-right {
+ margin-right: 0.5rem;
}
-}
-.checkbox-container {
- display: flex;
- flex-direction: column;
-
- .checkbox {
- margin: 0.5rem 0;
+ .full-width {
+ width: 100%;
}
-}
-.row {
- display: flex;
- justify-content: space-between;
-
- .left,
- .right {
- margin-bottom: 0.5rem;
- font-size: 14px;
- }
-}
-
-.app-create-actions {
- margin-top: 1rem;
- display: flex;
-
- .fill-space {
- flex: 1;
- }
-}
-
-.dev {
- .content {
- display: flex;
- margin: 0 -0.5rem;
- flex-wrap: wrap;
- flex-direction: row;
+ .stepper {
+ background: inherit !important;
+ margin: 0 -1.5rem;
.formfield {
- flex: 1;
- box-sizing: border-box;
- margin: 0 0.5rem;
+ max-width: 400px;
+ }
- &.full-width {
- flex-basis: 80%;
- }
+ .step-title {
+ font-size: 1rem;
+ text-transform: uppercase;
+ letter-spacing: 0.05em;
+ }
+
+ .step-description {
+ font-size: 0.9rem;
}
}
- .continue-button {
- margin-top: 3rem;
- display: block;
- padding: 0.5rem 4rem;
- float: right;
+ .checkbox-container {
+ display: flex;
+ flex-direction: column;
+
+ .checkbox {
+ margin: 0.5rem 0;
+ }
+ }
+
+ .row {
+ display: flex;
+ justify-content: space-between;
+
+ .left,
+ .right {
+ margin-bottom: 0.5rem;
+ font-size: 14px;
+ }
+ }
+
+ .app-create-actions {
+ margin-top: 1rem;
+ display: flex;
+ align-items: center;
+
+ .bck-button {
+ margin-right: 1rem;
+ }
+
+ .create-button {
+ padding: 0.5rem 4rem;
+ }
+ }
+
+ .dev {
+ .content {
+ display: flex;
+ margin: 0 -0.5rem;
+ flex-wrap: wrap;
+ flex-direction: row;
+
+ .formfield {
+ flex: 1;
+ box-sizing: border-box;
+ margin: 0 0.5rem;
+
+ &.full-width {
+ flex-basis: 80%;
+ }
+ }
+ }
+
+ .continue-button {
+ margin-top: 3rem;
+ display: block;
+ padding: 0.5rem 4rem;
+ }
}
}
diff --git a/console/src/app/pages/projects/apps/app-create/app-create.component.ts b/console/src/app/pages/projects/apps/app-create/app-create.component.ts
index 268b6c3e70..46e541687f 100644
--- a/console/src/app/pages/projects/apps/app-create/app-create.component.ts
+++ b/console/src/app/pages/projects/apps/app-create/app-create.component.ts
@@ -49,6 +49,9 @@ export class AppCreateComponent implements OnInit, OnDestroy {
public projectId: string = '';
public loading: boolean = false;
+ public createSteps: number = 4;
+ public currentCreateStep: number = 1;
+
public oidcAppRequest: AddOIDCAppRequest.AsObject = new AddOIDCAppRequest().toObject();
public apiAppRequest: AddAPIAppRequest.AsObject = new AddAPIAppRequest().toObject();
@@ -270,6 +273,8 @@ export class AppCreateComponent implements OnInit, OnDestroy {
}
public changeStep(event: StepperSelectionEvent): void {
+ this.currentCreateStep = event.selectedIndex + 1;
+
if (event.selectedIndex >= 2) {
this.requestRedirectValuesSubject$.next();
}
diff --git a/console/src/app/pages/projects/granted-projects/granted-project-detail/granted-project-detail.component.html b/console/src/app/pages/projects/granted-projects/granted-project-detail/granted-project-detail.component.html
index b8c44defbc..acb5d7e992 100644
--- a/console/src/app/pages/projects/granted-projects/granted-project-detail/granted-project-detail.component.html
+++ b/console/src/app/pages/projects/granted-projects/granted-project-detail/granted-project-detail.component.html
@@ -1,32 +1,54 @@
-
+
\ No newline at end of file
+
+
- {{'APP.PAGES.CREATE_OIDC_DESC_TITLE' | translate}}-{{'APP.PAGES.CREATE_OIDC_DESC_SUB' | translate}} +
+
-{{ 'APP.PAGES.CREATE_OIDC_DESC_TITLE' | translate }}+
+
+
-
- {{ 'APP.OIDC.REDIRECTTITLE' | translate }} ++ {{ 'APP.OIDC.REDIRECTDESCRIPTIONNATIVE' | translate }} + ++ {{ 'APP.OIDC.REDIRECTDESCRIPTIONWEB' | translate }} + -{{'APP.OIDC.REDIRECTTITLE' | translate}} -- {{'APP.OIDC.REDIRECTDESCRIPTIONNATIVE' | translate}} -- {{'APP.OIDC.REDIRECTDESCRIPTIONWEB' | translate}} - -{{'APP.OIDC.POSTREDIRECTTITLE' | translate}} -- {{'APP.OIDC.REDIRECTDESCRIPTIONNATIVE' | translate}} -- {{'APP.OIDC.REDIRECTDESCRIPTIONWEB' | translate}} - -
-
- {{'APP.OIDC.OVERVIEWTITLE' | translate}} -
-
- {{ 'APP.NAME' | translate }}
-
-
- {{oidcAppRequest.name}}
-
-
-
-
-
- {{ 'APP.TYPE' | translate }}
-
-
- {{'APP.OIDC.APPTYPE.'+oidcAppRequest.appType | translate}}
-
-
-
-
- {{ 'APP.GRANT' | translate }}
-
- 0">
- [
- {{'APP.OIDC.GRANT.'+element | translate}}
- {{i < oidcAppRequest.grantTypesList.length - 1 ? ', ' : '' }} ]
-
-
-
-
- {{ 'APP.OIDC.RESPONSETYPE' | translate }}
-
- 0">
- [
- {{('APP.OIDC.RESPONSE.'+element | translate)}}
- {{i < oidcAppRequest.responseTypesList.length - 1 ? ', ' : '' }} ]
-
-
-
-
-
- {{ 'APP.AUTHMETHOD' | translate }}
-
-
-
- {{'APP.OIDC.AUTHMETHOD.'+oidcAppRequest?.authMethodType | translate}}
-
-
-
-
-
-
- {{ 'APP.OIDC.REDIRECT' | translate }}
-
- 0">
- [
- {{redirect}}
- {{i < oidcAppRequest.redirectUrisList.length - 1 ? ', ' : '' }} ]
-
-
-
-
-
- {{ 'APP.OIDC.POSTLOGOUTREDIRECT' | translate }}
-
- 0">
- [
- {{redirect}}
- {{i < oidcAppRequest.postLogoutRedirectUrisList.length - 1 ? ', ' : '' }} ]
-
-
-
-
- {{ 'APP.AUTHMETHOD' | translate }}
-
-
-
- {{'APP.API.AUTHMETHOD.'+apiAppRequest?.authMethodType | translate}}
-
-
-
-
-
-
-
-
-
-
-
-
-
- + {{ 'APP.OIDC.REDIRECTDESCRIPTIONNATIVE' | translate }} + ++ {{ 'APP.OIDC.REDIRECTDESCRIPTIONWEB' | translate }} + + +
+
+
+
+ {{ 'APP.OIDC.OVERVIEWTITLE' | translate }} +
+
+ {{ 'APP.NAME' | translate }}
+
+
+ {{ oidcAppRequest.name }}
+
+
+
+
+
+ {{ 'APP.TYPE' | translate }}
+
+
+ {{ 'APP.OIDC.APPTYPE.' + oidcAppRequest.appType | translate }}
+
+
+
+
+ {{ 'APP.GRANT' | translate }}
+
+ 0">
+ [
+ {{ 'APP.OIDC.GRANT.' + element | translate }}
+ {{ i < oidcAppRequest.grantTypesList.length - 1 ? ', ' : '' }} ]
+
+
+
+
+ {{ 'APP.OIDC.RESPONSETYPE' | translate }}
+
+ 0">
+ [
+ {{ 'APP.OIDC.RESPONSE.' + element | translate }}
+ {{ i < oidcAppRequest.responseTypesList.length - 1 ? ', ' : '' }} ]
+
+
+
+
+
+ {{ 'APP.AUTHMETHOD' | translate }}
+
+
+
+ {{ 'APP.OIDC.AUTHMETHOD.' + oidcAppRequest?.authMethodType | translate }}
+
+
+
+
+
+
+ {{ 'APP.OIDC.REDIRECT' | translate }}
+
+ 0">
+ [
+ {{ redirect }}
+ {{ i < oidcAppRequest.redirectUrisList.length - 1 ? ', ' : '' }} ]
+
+
+
+
+
+ {{ 'APP.OIDC.POSTLOGOUTREDIRECT' | translate }}
+
+ 0"
+ >
+ [
+ {{ redirect }}
+ {{ i < oidcAppRequest.postLogoutRedirectUrisList.length - 1 ? ', ' : '' }} ]
+
+
+
+
+ {{ 'APP.AUTHMETHOD' | translate }}
+
+
+
+ {{ 'APP.API.AUTHMETHOD.' + apiAppRequest?.authMethodType | translate }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ - {{'PROJECT.PAGES.ZITADELPROJECT' | translate}} + {{ 'PROJECT.PAGES.ZITADELPROJECT' | translate }} -
-
-
\ No newline at end of file
+
diff --git a/console/src/app/pages/projects/project-create/project-create.component.scss b/console/src/app/pages/projects/project-create/project-create.component.scss
index ef3aa58acd..07df0ea65a 100644
--- a/console/src/app/pages/projects/project-create/project-create.component.scss
+++ b/console/src/app/pages/projects/project-create/project-create.component.scss
@@ -11,12 +11,6 @@ h1 {
font-size: 1.2rem;
margin-left: 2rem;
}
-
- .abort-2 {
- font-size: 1.2rem;
- margin-left: 2rem;
- white-space: nowrap;
- }
}
.project-create-content {
diff --git a/console/src/app/pages/projects/project-create/project-create.component.ts b/console/src/app/pages/projects/project-create/project-create.component.ts
index 56809860e7..fdff97946e 100644
--- a/console/src/app/pages/projects/project-create/project-create.component.ts
+++ b/console/src/app/pages/projects/project-create/project-create.component.ts
@@ -28,9 +28,6 @@ export class ProjectCreateComponent {
breadcrumbService.setBreadcrumb([bread]);
}
- public createSteps: number = 1;
- public currentCreateStep: number = 1;
-
public saveProject(): void {
this.mgmtService
.addProject(this.project)
diff --git a/console/src/app/pages/projects/project-grid/project-grid.component.html b/console/src/app/pages/projects/project-grid/project-grid.component.html
index 28f4f1a7db..59edac1a4d 100644
--- a/console/src/app/pages/projects/project-grid/project-grid.component.html
+++ b/console/src/app/pages/projects/project-grid/project-grid.component.html
@@ -1,79 +1,95 @@
{{'PROJECT.PAGES.CREATE_DESC' | translate}}+{{ 'PROJECT.PAGES.CREATE_DESC' | translate }}
-
\ No newline at end of file
+
diff --git a/console/src/app/pages/projects/projects.component.ts b/console/src/app/pages/projects/projects.component.ts
index f308a6bb65..022e2b81ad 100644
--- a/console/src/app/pages/projects/projects.component.ts
+++ b/console/src/app/pages/projects/projects.component.ts
@@ -53,6 +53,7 @@ export class ProjectsComponent {
type:
type === ProjectType.PROJECTTYPE_OWNED ? 'owned' : type === ProjectType.PROJECTTYPE_GRANTED ? 'granted' : 'owned',
},
+ replaceUrl: true,
queryParamsHandling: 'merge',
skipLocationChange: false,
});
diff --git a/console/src/app/pages/user-grant-create/user-grant-create.component.html b/console/src/app/pages/user-grant-create/user-grant-create.component.html
index 4fda144908..4df3f75af5 100644
--- a/console/src/app/pages/user-grant-create/user-grant-create.component.html
+++ b/console/src/app/pages/user-grant-create/user-grant-create.component.html
@@ -4,53 +4,64 @@
-
-
+
-
+ [ngClass]="{ inactive: item.state !== ProjectState.PROJECT_STATE_ACTIVE }"
+ >
- {{'PROJECT.PAGES.LASTMODIFIED' |
- translate}}
- {{ item.details.changeDate | timestampToDate | localizedDate: 'EEE dd. MMM, HH:mm' }}
+ {{ 'PROJECT.PAGES.LASTMODIFIED' | translate }}
+ {{ item.details.changeDate | timestampToDate | localizedDate: 'EEE dd. MMM, HH:mm' }}
-
-
+
+
{{ $any(item).name }}
{{ $any(item).projectName }}
-
- {{'PROJECT.PAGES.CREATEDON' |
- translate}}
- {{ item.details.creationDate | timestampToDate | localizedDate: 'EEE dd. MMM, HH:mm' }}
+ {{ 'PROJECT.PAGES.CREATEDON' | translate }}
+ {{ item.details.creationDate | timestampToDate | localizedDate: 'EEE dd. MMM, HH:mm' }}
-
+
-
+ [ngClass]="{ inactive: item.state !== ProjectState.PROJECT_STATE_ACTIVE }"
+ [attr.data-e2e]="'grid-card'"
+ >
- {{'PROJECT.PAGES.LASTMODIFIED' | translate}}
- {{ item.details.changeDate | timestampToDate | localizedDate: 'EEE dd. MMM, HH:mm' }}
+ {{ 'PROJECT.PAGES.LASTMODIFIED' | translate }}
+ {{ item.details.changeDate | timestampToDate | localizedDate: 'EEE dd. MMM, HH:mm' }}
{{ $any(item).name }}
{{ $any(item).projectName }}
-
- {{$any(item).projectOwnerName}}
- {{'PROJECT.PAGES.CREATEDON' |
- translate}}
- {{
- item.details.creationDate | timestampToDate | localizedDate: 'EEE dd. MMM, HH:mm'
- }}
+ {{ $any(item).projectOwnerName }}
+ {{ 'PROJECT.PAGES.CREATEDON' | translate }}
+ {{ item.details.creationDate | timestampToDate | localizedDate: 'EEE dd. MMM, HH:mm' }}
-
+
- {{'PROJECT.PAGES.NOITEMS' | - translate}} + {{ 'PROJECT.PAGES.NOITEMS' | translate }} +
-
{{ 'GRANTS.CREATE.TITLE' | translate }}Step - {{ currentCreateStep }} of - {{ STEPS }} +{{ 'GRANTS.CREATE.TITLE' | translate }}+ Step {{ currentCreateStep }} of {{ STEPS }}
- {{'PROJECT.GRANT.CREATE.ORG_DESCRIPTION' | translate: org}}
- {{'PROJECT.GRANT.CREATE.SEL_USER' | translate}}+{{ 'PROJECT.GRANT.CREATE.SEL_USER' | translate }}-{{'PROJECT.GRANT.CREATE.SEL_PROJECT' | translate}}+{{ 'PROJECT.GRANT.CREATE.SEL_PROJECT' | translate }}-{{'PROJECT.GRANT.CREATE.SEL_ROLES' | translate}}+{{ 'PROJECT.GRANT.CREATE.SEL_ROLES' | translate }}
-
+
{{ 'USER.CREATE.TITLE' | translate }}Step - 1 of 1 +{{ 'USER.CREATE.TITLE' | translate }}
@@ -13,63 +12,69 @@
-
- {{ 'USER.CREATE.NAMEANDEMAILSECTION' | translate }} -{{ 'USER.CREATE.NAMEANDEMAILSECTION' | translate }} - - {{ 'USER.VALIDATION.REQUIRED' | translate }} - - - {{ 'USER.VALIDATION.NOEMAIL' | translate }} - -
-
-
+
+
{{ 'USER.CREATE.GENDERLANGSECTION' | translate }} +{{ 'USER.CREATE.GENDERLANGSECTION' | translate }} -
+
- {{ 'USER.CREATE.ADDRESSANDPHONESECTION' | translate }} +{{ 'USER.CREATE.ADDRESSANDPHONESECTION' | translate }} -
-
{{ 'USER.PAGES.NOUSER' | translate }} +
+
{{ 'USER.PAGES.NOUSER' | translate }} + |
---|