From 83614562a25d1ad1c35fc4fe81e3565f4db9a72b Mon Sep 17 00:00:00 2001 From: Ramon Date: Thu, 27 Feb 2025 09:31:48 +0100 Subject: [PATCH] fix: Create Human V1 (#9425) # Which Problems Are Solved - Correctly load Avatar on first load # How the Problems Are Solved - The Avatar issue was mostly due to how we resolved the current user, I changed this behaviour # Additional Changes - Removed V2 create human code till seperate page is finished - Remove Console Use V2 API feature flag from features page (till new page is added) # Additional Context - Partially fixes #9382 - This will get implemented next week https://github.com/zitadel/zitadel/issues/9382#issuecomment-2681347477 --- console/src/app/app.component.html | 8 +- .../features/features.component.html | 28 --- .../components/features/features.component.ts | 43 +--- .../app/modules/header/header.component.ts | 23 +-- .../provider-oidc/provider-oidc.component.ts | 2 +- .../user-create/user-create.component.html | 21 +- .../user-create/user-create.component.scss | 1 - .../user-create/user-create.component.ts | 193 ++---------------- console/src/app/services/grpc-auth.service.ts | 26 +-- 9 files changed, 42 insertions(+), 303 deletions(-) diff --git a/console/src/app/app.component.html b/console/src/app/app.component.html index 18c5c72501..9907e233e1 100644 --- a/console/src/app/app.component.html +++ b/console/src/app/app.component.html @@ -1,9 +1,8 @@
- + @@ -12,9 +11,8 @@ id="mainnav" class="nav" [ngClass]="{ shadow: yoffset > 60 }" - *ngIf="user && user !== {}" [org]="org" - [user]="$any(user)" + [user]="user" [isDarkTheme]="componentCssClass === 'dark-theme'" > diff --git a/console/src/app/components/features/features.component.html b/console/src/app/components/features/features.component.html index fdd397084a..e663569210 100644 --- a/console/src/app/components/features/features.component.html +++ b/console/src/app/components/features/features.component.html @@ -403,34 +403,6 @@ 'SETTING.FEATURES.OIDCSINGLEV1SESSIONTERMINATION_DESCRIPTION' | translate }}
- -
- {{ 'SETTING.FEATURES.CONSOLEUSEV2USERAPI' | translate }} -
- - -
- {{ 'SETTING.FEATURES.STATES.DISABLED' | translate }} -
-
- -
- {{ 'SETTING.FEATURES.STATES.ENABLED' | translate }} -
-
-
-
- {{ - 'SETTING.FEATURES.CONSOLEUSEV2USERAPI_DESCRIPTION' | translate - }} -
diff --git a/console/src/app/components/features/features.component.ts b/console/src/app/components/features/features.component.ts index 0f8ff761f6..899670c95e 100644 --- a/console/src/app/components/features/features.component.ts +++ b/console/src/app/components/features/features.component.ts @@ -1,20 +1,16 @@ import { CommonModule } from '@angular/common'; -import { Component, OnDestroy } from '@angular/core'; +import { Component } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { MatButtonModule } from '@angular/material/button'; import { MatButtonToggleModule } from '@angular/material/button-toggle'; import { MatCheckboxModule } from '@angular/material/checkbox'; -import { MatDialog } from '@angular/material/dialog'; import { MatIconModule } from '@angular/material/icon'; import { MatTooltipModule } from '@angular/material/tooltip'; import { TranslateModule } from '@ngx-translate/core'; -import { BehaviorSubject, Subject } from 'rxjs'; import { HasRoleModule } from 'src/app/directives/has-role/has-role.module'; import { CardModule } from 'src/app/modules/card/card.module'; -import { DisplayJsonDialogComponent } from 'src/app/modules/display-json-dialog/display-json-dialog.component'; import { InfoSectionModule } from 'src/app/modules/info-section/info-section.module'; import { HasRolePipeModule } from 'src/app/pipes/has-role-pipe/has-role-pipe.module'; -import { Event } from 'src/app/proto/generated/zitadel/event_pb'; import { Source } from 'src/app/proto/generated/zitadel/feature/v2beta/feature_pb'; import { Breadcrumb, BreadcrumbService, BreadcrumbType } from 'src/app/services/breadcrumb.service'; import { FeatureService } from 'src/app/services/feature.service'; @@ -22,8 +18,7 @@ import { ToastService } from 'src/app/services/toast.service'; import { GetInstanceFeaturesResponse, SetInstanceFeaturesRequest, -} from '../../proto/generated/zitadel/feature/v2/instance_pb'; -import { withIdentifier } from 'codelyzer/util/astQuery'; +} from 'src/app/proto/generated/zitadel/feature/v2/instance_pb'; enum ToggleState { ENABLED = 'ENABLED', @@ -40,7 +35,6 @@ type ToggleStates = { oidcTokenExchange?: FeatureState; actions?: FeatureState; oidcSingleV1SessionTermination?: FeatureState; - consoleUseV2UserApi?: FeatureState; }; @Component({ @@ -63,21 +57,17 @@ type ToggleStates = { templateUrl: './features.component.html', styleUrls: ['./features.component.scss'], }) -export class FeaturesComponent implements OnDestroy { - private destroy$: Subject = new Subject(); +export class FeaturesComponent { + protected featureData: GetInstanceFeaturesResponse.AsObject | undefined; - public _loading: BehaviorSubject = new BehaviorSubject(false); - public featureData: GetInstanceFeaturesResponse.AsObject | undefined = undefined; - - public toggleStates: ToggleStates | undefined = undefined; - public Source: any = Source; - public ToggleState: any = ToggleState; + protected toggleStates: ToggleStates | undefined; + protected Source: any = Source; + protected ToggleState: any = ToggleState; constructor( private featureService: FeatureService, private breadcrumbService: BreadcrumbService, private toast: ToastService, - private dialog: MatDialog, ) { const breadcrumbs = [ new Breadcrumb({ @@ -91,20 +81,6 @@ export class FeaturesComponent implements OnDestroy { this.getFeatures(true); } - ngOnDestroy(): void { - this.destroy$.next(); - this.destroy$.complete(); - } - - public openDialog(event: Event): void { - this.dialog.open(DisplayJsonDialogComponent, { - data: { - event: event, - }, - width: '450px', - }); - } - public validateAndSave() { this.featureService.resetInstanceFeatures().then(() => { const req = new SetInstanceFeaturesRequest(); @@ -144,7 +120,6 @@ export class FeaturesComponent implements OnDestroy { ); changed = true; } - req.setConsoleUseV2UserApi(this.toggleStates?.consoleUseV2UserApi?.state === ToggleState.ENABLED); if (changed) { this.featureService @@ -235,10 +210,6 @@ export class FeaturesComponent implements OnDestroy { ? ToggleState.ENABLED : ToggleState.DISABLED, }, - consoleUseV2UserApi: { - source: this.featureData.consoleUseV2UserApi?.source || Source.SOURCE_INSTANCE, - state: this.featureData.consoleUseV2UserApi?.enabled ? ToggleState.ENABLED : ToggleState.DISABLED, - }, }; }); } diff --git a/console/src/app/modules/header/header.component.ts b/console/src/app/modules/header/header.component.ts index 9954429302..e560237343 100644 --- a/console/src/app/modules/header/header.component.ts +++ b/console/src/app/modules/header/header.component.ts @@ -1,10 +1,8 @@ import { ConnectedPosition, ConnectionPositionPair } from '@angular/cdk/overlay'; -import { Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core'; +import { Component, EventEmitter, Input, Output } from '@angular/core'; import { Router } from '@angular/router'; -import { BehaviorSubject, Observable, of, Subject } from 'rxjs'; import { Org } from 'src/app/proto/generated/zitadel/org_pb'; import { User } from 'src/app/proto/generated/zitadel/user_pb'; -import { AuthenticationService } from 'src/app/services/authentication.service'; import { BreadcrumbService, BreadcrumbType } from 'src/app/services/breadcrumb.service'; import { GrpcAuthService } from 'src/app/services/grpc-auth.service'; import { ManagementService } from 'src/app/services/mgmt.service'; @@ -15,19 +13,14 @@ import { ActionKeysType } from '../action-keys/action-keys.component'; templateUrl: './header.component.html', styleUrls: ['./header.component.scss'], }) -export class HeaderComponent implements OnDestroy { - @ViewChild('input', { static: false }) input!: ElementRef; - +export class HeaderComponent { @Input() public isDarkTheme: boolean = true; @Input() public user?: User.AsObject; public showOrgContext: boolean = false; - public orgs$: Observable = of([]); @Input() public org!: Org.AsObject; @Output() public changedActiveOrg: EventEmitter = new EventEmitter(); - public orgLoading$: BehaviorSubject = new BehaviorSubject(false); public showAccount: boolean = false; - private destroy$: Subject = new Subject(); public BreadcrumbType: any = BreadcrumbType; public ActionKeysType: any = ActionKeysType; @@ -41,24 +34,12 @@ export class HeaderComponent implements OnDestroy { new ConnectionPositionPair({ originX: 'end', originY: 'bottom' }, { overlayX: 'end', overlayY: 'top' }, 0, 10), ]; constructor( - public authenticationService: AuthenticationService, public authService: GrpcAuthService, public mgmtService: ManagementService, public breadcrumbService: BreadcrumbService, public router: Router, ) {} - public ngOnDestroy() { - this.destroy$.next(); - this.destroy$.complete(); - } - - public closeAccountCard(): void { - if (this.showAccount) { - this.showAccount = false; - } - } - public setActiveOrg(org: Org.AsObject): void { this.org = org; this.authService.setActiveOrg(org); diff --git a/console/src/app/modules/providers/provider-oidc/provider-oidc.component.ts b/console/src/app/modules/providers/provider-oidc/provider-oidc.component.ts index ed3752eba7..5451c60e9d 100644 --- a/console/src/app/modules/providers/provider-oidc/provider-oidc.component.ts +++ b/console/src/app/modules/providers/provider-oidc/provider-oidc.component.ts @@ -200,7 +200,7 @@ export class ProviderOIDCComponent { this.loading = true; this.service .updateGenericOIDCProvider(req) - .then((idp) => { + .then(() => { setTimeout(() => { this.loading = false; this.close(); diff --git a/console/src/app/pages/users/user-create/user-create.component.html b/console/src/app/pages/users/user-create/user-create.component.html index 0e878fbfa8..13fcb95bb3 100644 --- a/console/src/app/pages/users/user-create/user-create.component.html +++ b/console/src/app/pages/users/user-create/user-create.component.html @@ -51,17 +51,10 @@ {{ 'USER.LOGINMETHODS.EMAIL.ISVERIFIED' | translate }} - - {{ 'USER.PROFILE.SEND_EMAIL' | translate }} - {{ 'ORG.PAGES.USEPASSWORD' | translate }} - + {{ 'USER.CREATE.INITMAILDESCRIPTION' | translate }} @@ -145,18 +138,6 @@ -
- - {{ 'USER.PROFILE.PHONE_VERIFIED' | translate }} - - - {{ 'USER.PROFILE.SEND_SMS' | translate }} - -