Browse Source

Bugfix/fix permissions of impersonation mode in overview and holdings tabs (#5239)

* Fix permissions of impersonation mode

* Update changelog
pull/5245/head^2
Thomas Kaul 3 weeks ago
committed by GitHub
parent
commit
7c147dfb68
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 5
      CHANGELOG.md
  2. 2
      apps/client/src/app/app.component.ts
  3. 2
      apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
  4. 2
      apps/client/src/app/components/account-detail-dialog/interfaces/interfaces.ts
  5. 2
      apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
  6. 2
      apps/client/src/app/components/holding-detail-dialog/interfaces/interfaces.ts
  7. 4
      apps/client/src/app/components/home-holdings/home-holdings.component.ts
  8. 6
      apps/client/src/app/components/home-holdings/home-holdings.html
  9. 4
      apps/client/src/app/components/home-overview/home-overview.component.ts
  10. 6
      apps/client/src/app/components/home-overview/home-overview.html
  11. 2
      apps/client/src/app/pages/accounts/accounts-page.component.ts
  12. 2
      apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts

5
CHANGELOG.md

@ -20,6 +20,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Upgraded `Nx` from version `21.1.2` to `21.2.4`
- Upgraded `storybook` from version `8.6.12` to `9.0.17`
### Fixed
- Fixed an issue with the permissions of the impersonation mode related to the onboarding on the overview tab of the home page
- Fixed an issue with the permissions of the impersonation mode related to the manage activities button of the holdings tab on the home page
## 2.184.0 - 2025-07-22
### Added

2
apps/client/src/app/app.component.ts

@ -324,7 +324,7 @@ export class AppComponent implements OnDestroy, OnInit {
this.user?.permissions,
permissions.accessAdminControl
),
hasPermissionToCreateOrder:
hasPermissionToCreateActivity:
!this.hasImpersonationId &&
hasPermission(this.user?.permissions, permissions.createOrder) &&
!this.user?.settings?.isRestrictedView,

2
apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html

@ -105,7 +105,7 @@
[locale]="user?.settings?.locale"
[showActions]="
!data.hasImpersonationId &&
data.hasPermissionToCreateOrder &&
data.hasPermissionToCreateActivity &&
user?.settings?.isExperimentalFeatures &&
!user?.settings?.isRestrictedView
"

2
apps/client/src/app/components/account-detail-dialog/interfaces/interfaces.ts

@ -2,5 +2,5 @@ export interface AccountDetailDialogParams {
accountId: string;
deviceType: string;
hasImpersonationId: boolean;
hasPermissionToCreateOrder: boolean;
hasPermissionToCreateActivity: boolean;
}

2
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html

@ -350,7 +350,7 @@
[locale]="data.locale"
[showActions]="
!data.hasImpersonationId &&
data.hasPermissionToCreateOrder &&
data.hasPermissionToCreateActivity &&
user?.settings?.isExperimentalFeatures &&
!user?.settings?.isRestrictedView
"

2
apps/client/src/app/components/holding-detail-dialog/interfaces/interfaces.ts

@ -9,7 +9,7 @@ export interface HoldingDetailDialogParams {
deviceType: string;
hasImpersonationId: boolean;
hasPermissionToAccessAdminControl: boolean;
hasPermissionToCreateOrder: boolean;
hasPermissionToCreateActivity: boolean;
hasPermissionToReportDataGlitch: boolean;
hasPermissionToUpdateOrder: boolean;
locale: string;

4
apps/client/src/app/components/home-holdings/home-holdings.component.ts

@ -57,7 +57,7 @@ export class GfHomeHoldingsComponent implements OnDestroy, OnInit {
public deviceType: string;
public hasImpersonationId: boolean;
public hasPermissionToAccessHoldingsChart: boolean;
public hasPermissionToCreateOrder: boolean;
public hasPermissionToCreateActivity: boolean;
public holdings: PortfolioPosition[];
public holdingType: HoldingType = 'ACTIVE';
public holdingTypeOptions: ToggleOption[] = [
@ -105,7 +105,7 @@ export class GfHomeHoldingsComponent implements OnDestroy, OnInit {
permissions.accessHoldingsChart
);
this.hasPermissionToCreateOrder = hasPermission(
this.hasPermissionToCreateActivity = hasPermission(
this.user.permissions,
permissions.createOrder
);

6
apps/client/src/app/components/home-holdings/home-holdings.html

@ -52,7 +52,11 @@
[locale]="user?.settings?.locale"
(holdingClicked)="onHoldingClicked($event)"
/>
@if (hasPermissionToCreateOrder && holdings?.length > 0) {
@if (
!hasImpersonationId &&
hasPermissionToCreateActivity &&
holdings?.length > 0
) {
<div class="text-center">
<a
class="mt-3"

4
apps/client/src/app/components/home-overview/home-overview.component.ts

@ -48,7 +48,7 @@ export class GfHomeOverviewComponent implements OnDestroy, OnInit {
public errors: AssetProfileIdentifier[];
public hasError: boolean;
public hasImpersonationId: boolean;
public hasPermissionToCreateOrder: boolean;
public hasPermissionToCreateActivity: boolean;
public historicalDataItems: LineChartItem[];
public isAllTimeHigh: boolean;
public isAllTimeLow: boolean;
@ -80,7 +80,7 @@ export class GfHomeOverviewComponent implements OnDestroy, OnInit {
if (state?.user) {
this.user = state.user;
this.hasPermissionToCreateOrder = hasPermission(
this.hasPermissionToCreateActivity = hasPermission(
this.user.permissions,
permissions.createOrder
);

6
apps/client/src/app/components/home-overview/home-overview.html

@ -1,7 +1,11 @@
<div
class="align-items-center container d-flex flex-column h-100 justify-content-center overview p-0 position-relative"
>
@if (hasPermissionToCreateOrder && user?.activitiesCount === 0) {
@if (
!hasImpersonationId &&
hasPermissionToCreateActivity &&
user?.activitiesCount === 0
) {
<div class="justify-content-center row w-100">
<div class="col introduction">
<h4 i18n>Welcome to Ghostfolio</h4>

2
apps/client/src/app/pages/accounts/accounts-page.component.ts

@ -239,7 +239,7 @@ export class GfAccountsPageComponent implements OnDestroy, OnInit {
accountId: aAccountId,
deviceType: this.deviceType,
hasImpersonationId: this.hasImpersonationId,
hasPermissionToCreateOrder:
hasPermissionToCreateActivity:
!this.hasImpersonationId &&
hasPermission(this.user?.permissions, permissions.createOrder) &&
!this.user?.settings?.isRestrictedView

2
apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts

@ -564,7 +564,7 @@ export class GfAllocationsPageComponent implements OnDestroy, OnInit {
accountId: aAccountId,
deviceType: this.deviceType,
hasImpersonationId: this.hasImpersonationId,
hasPermissionToCreateOrder:
hasPermissionToCreateActivity:
!this.hasImpersonationId &&
hasPermission(this.user?.permissions, permissions.createOrder) &&
!this.user?.settings?.isRestrictedView

Loading…
Cancel
Save