Browse Source

Fix date handling in time zone other than UTC

pull/7723/head
Thomas Kaul 3 days ago
parent
commit
c520dd26c6
  1. 88
      apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts

88
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 {

Loading…
Cancel
Save