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() { private async createAccess() {
const filters = this.buildFilters(); const filters = this.getFilters();
const access: CreateAccessDto = { const access: CreateAccessDto = {
alias: this.accessForm.get('alias')?.value, alias: this.accessForm.get('alias')?.value,
expiresAt: this.buildExpiresAt(), expiresAt: this.getExpiresAt(),
filters: filters.length > 0 ? filters : undefined, filters: filters.length > 0 ? filters : undefined,
granteeUserId: this.accessForm.get('granteeUserId')?.value, granteeUserId: this.accessForm.get('granteeUserId')?.value,
scopes: this.buildScopes(), scopes: this.getScopes(),
type: this.accessForm.get('type')?.value 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() { private loadHoldings() {
this.dataService this.dataService
.fetchPortfolioHoldings() .fetchPortfolioHoldings()
@ -323,15 +323,15 @@ export class GfCreateOrUpdateAccessDialogComponent implements OnInit {
return; return;
} }
const filters = this.buildFilters(); const filters = this.getFilters();
const access: UpdateAccessDto = { const access: UpdateAccessDto = {
alias: this.accessForm.get('alias')?.value, alias: this.accessForm.get('alias')?.value,
expiresAt: this.buildExpiresAt(), expiresAt: this.getExpiresAt(),
filters: filters.length > 0 ? filters : undefined, filters: filters.length > 0 ? filters : undefined,
granteeUserId: this.accessForm.get('granteeUserId')?.value, granteeUserId: this.accessForm.get('granteeUserId')?.value,
id: accessId, id: accessId,
scopes: this.buildScopes() scopes: this.getScopes()
}; };
try { try {

Loading…
Cancel
Save