From c520dd26c6a3f6f325f5115ac0c1ffeebc60ceca Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 26 Aug 2026 14:30:18 +0200 Subject: [PATCH] Fix date handling in time zone other than UTC --- ...reate-or-update-access-dialog.component.ts | 88 +++++++++---------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts b/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts index d8bb3dab1..b7ad09553 100644 --- a/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts +++ b/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts @@ -224,53 +224,15 @@ export class GfCreateOrUpdateAccessDialogComponent implements OnInit { } } - private buildExpiresAt() { - const expiresAtControl = this.accessForm.get('expiresAt'); - const expiresAtOfAccess = this.data.access?.expiresAt; - - if ( - this.mode === 'update' && - !expiresAtControl?.dirty && - expiresAtOfAccess - ) { - return new Date(expiresAtOfAccess).toISOString(); - } - - const expiresAt = expiresAtControl?.value as Date; - - return isValid(expiresAt) ? endOfDay(expiresAt).toISOString() : ''; - } - - private buildFilters(): Filter[] { - return getFiltersFromPortfolioFilterFormValue( - this.accessForm.get('filters')?.value - ); - } - - private buildScopes(): Scope[] { - const scopesOfAccess = this.data.access?.scopes ?? []; - - if ( - scopesOfAccess.length > 0 && - this.accessLevel === getAccessLevel(scopesOfAccess) - ) { - return Object.values(scopes).filter((scope) => { - return hasScope(scopesOfAccess, scope); - }); - } - - return getScopesOfAccessLevel(this.accessLevel); - } - private async createAccess() { - const filters = this.buildFilters(); + const filters = this.getFilters(); const access: CreateAccessDto = { alias: this.accessForm.get('alias')?.value, - expiresAt: this.buildExpiresAt(), + expiresAt: this.getExpiresAt(), filters: filters.length > 0 ? filters : undefined, granteeUserId: this.accessForm.get('granteeUserId')?.value, - scopes: this.buildScopes(), + scopes: this.getScopes(), type: this.accessForm.get('type')?.value }; @@ -303,6 +265,44 @@ export class GfCreateOrUpdateAccessDialogComponent implements OnInit { } } + private getExpiresAt() { + const expiresAtControl = this.accessForm.get('expiresAt'); + const expiresAtOfAccess = this.data.access?.expiresAt; + + if ( + this.mode === 'update' && + !expiresAtControl?.dirty && + expiresAtOfAccess + ) { + return new Date(expiresAtOfAccess).toISOString(); + } + + const expiresAt = expiresAtControl?.value as Date; + + return isValid(expiresAt) ? endOfDay(expiresAt).toISOString() : ''; + } + + private getFilters(): Filter[] { + return getFiltersFromPortfolioFilterFormValue( + this.accessForm.get('filters')?.value + ); + } + + private getScopes(): Scope[] { + const scopesOfAccess = this.data.access?.scopes ?? []; + + if ( + scopesOfAccess.length > 0 && + this.accessLevel === getAccessLevel(scopesOfAccess) + ) { + return Object.values(scopes).filter((scope) => { + return hasScope(scopesOfAccess, scope); + }); + } + + return getScopesOfAccessLevel(this.accessLevel); + } + private loadHoldings() { this.dataService .fetchPortfolioHoldings() @@ -323,15 +323,15 @@ export class GfCreateOrUpdateAccessDialogComponent implements OnInit { return; } - const filters = this.buildFilters(); + const filters = this.getFilters(); const access: UpdateAccessDto = { alias: this.accessForm.get('alias')?.value, - expiresAt: this.buildExpiresAt(), + expiresAt: this.getExpiresAt(), filters: filters.length > 0 ? filters : undefined, granteeUserId: this.accessForm.get('granteeUserId')?.value, id: accessId, - scopes: this.buildScopes() + scopes: this.getScopes() }; try {