|
|
@ -74,6 +74,11 @@ export class PortfolioController { |
|
|
|
): Promise<PortfolioDetails & { hasError: boolean }> { |
|
|
|
let hasDetails = true; |
|
|
|
let hasError = false; |
|
|
|
const hasReadRestrictedAccessPermission = |
|
|
|
this.userService.hasReadRestrictedAccessPermission({ |
|
|
|
impersonationId, |
|
|
|
user: this.request.user |
|
|
|
}); |
|
|
|
|
|
|
|
if (this.configurationService.get('ENABLE_FEATURE_SUBSCRIPTION')) { |
|
|
|
hasDetails = this.request.user.subscription.type === 'Premium'; |
|
|
@ -108,7 +113,7 @@ export class PortfolioController { |
|
|
|
let portfolioSummary = summary; |
|
|
|
|
|
|
|
if ( |
|
|
|
impersonationId || |
|
|
|
hasReadRestrictedAccessPermission || |
|
|
|
this.userService.isRestrictedView(this.request.user) |
|
|
|
) { |
|
|
|
const totalInvestment = Object.values(holdings) |
|
|
@ -148,7 +153,7 @@ export class PortfolioController { |
|
|
|
|
|
|
|
if ( |
|
|
|
hasDetails === false || |
|
|
|
impersonationId || |
|
|
|
hasReadRestrictedAccessPermission || |
|
|
|
this.userService.isRestrictedView(this.request.user) |
|
|
|
) { |
|
|
|
portfolioSummary = nullifyValuesInObject(summary, [ |
|
|
@ -164,6 +169,7 @@ export class PortfolioController { |
|
|
|
'excludedAccountsAndActivities', |
|
|
|
'fees', |
|
|
|
'fireWealth', |
|
|
|
'interest', |
|
|
|
'items', |
|
|
|
'liabilities', |
|
|
|
'netWorth', |
|
|
@ -216,6 +222,12 @@ export class PortfolioController { |
|
|
|
@Query('range') dateRange: DateRange = 'max', |
|
|
|
@Query('tags') filterByTags?: string |
|
|
|
): Promise<PortfolioDividends> { |
|
|
|
const hasReadRestrictedAccessPermission = |
|
|
|
this.userService.hasReadRestrictedAccessPermission({ |
|
|
|
impersonationId, |
|
|
|
user: this.request.user |
|
|
|
}); |
|
|
|
|
|
|
|
const filters = this.apiService.buildFiltersFromQueryParams({ |
|
|
|
filterByAccounts, |
|
|
|
filterByAssetClasses, |
|
|
@ -230,7 +242,7 @@ export class PortfolioController { |
|
|
|
}); |
|
|
|
|
|
|
|
if ( |
|
|
|
impersonationId || |
|
|
|
hasReadRestrictedAccessPermission || |
|
|
|
this.userService.isRestrictedView(this.request.user) |
|
|
|
) { |
|
|
|
const maxDividend = dividends.reduce( |
|
|
@ -266,6 +278,12 @@ export class PortfolioController { |
|
|
|
@Query('range') dateRange: DateRange = 'max', |
|
|
|
@Query('tags') filterByTags?: string |
|
|
|
): Promise<PortfolioInvestments> { |
|
|
|
const hasReadRestrictedAccessPermission = |
|
|
|
this.userService.hasReadRestrictedAccessPermission({ |
|
|
|
impersonationId, |
|
|
|
user: this.request.user |
|
|
|
}); |
|
|
|
|
|
|
|
const filters = this.apiService.buildFiltersFromQueryParams({ |
|
|
|
filterByAccounts, |
|
|
|
filterByAssetClasses, |
|
|
@ -281,7 +299,7 @@ export class PortfolioController { |
|
|
|
}); |
|
|
|
|
|
|
|
if ( |
|
|
|
impersonationId || |
|
|
|
hasReadRestrictedAccessPermission || |
|
|
|
this.userService.isRestrictedView(this.request.user) |
|
|
|
) { |
|
|
|
const maxInvestment = investments.reduce( |
|
|
@ -329,6 +347,12 @@ export class PortfolioController { |
|
|
|
@Query('tags') filterByTags?: string, |
|
|
|
@Query('withExcludedAccounts') withExcludedAccounts = false |
|
|
|
): Promise<PortfolioPerformanceResponse> { |
|
|
|
const hasReadRestrictedAccessPermission = |
|
|
|
this.userService.hasReadRestrictedAccessPermission({ |
|
|
|
impersonationId, |
|
|
|
user: this.request.user |
|
|
|
}); |
|
|
|
|
|
|
|
const filters = this.apiService.buildFiltersFromQueryParams({ |
|
|
|
filterByAccounts, |
|
|
|
filterByAssetClasses, |
|
|
@ -344,7 +368,7 @@ export class PortfolioController { |
|
|
|
}); |
|
|
|
|
|
|
|
if ( |
|
|
|
impersonationId || |
|
|
|
hasReadRestrictedAccessPermission || |
|
|
|
this.request.user.Settings.settings.viewMode === 'ZEN' || |
|
|
|
this.userService.isRestrictedView(this.request.user) |
|
|
|
) { |
|
|
|