{ "version": 3, "sources": ["apps/partner-center-client/src/app/core/guards/access-dashboard-guard.service.ts", "apps/partner-center-client/src/app/core/guards/default-page-guard.service.ts"], "sourcesContent": ["import { Injectable } from '@angular/core';\nimport { Router, UrlTree } from '@angular/router';\nimport { AppConfigService } from '../../app-config.service';\n\n@Injectable({ providedIn: 'root' })\nexport class AccessDashboardGuard {\n constructor(private readonly configService: AppConfigService, private readonly router: Router) {}\n\n canActivate(): boolean | UrlTree {\n return this.configService.config.userCanAccessDashboard ? true : this.router.createUrlTree(['/access-denied']);\n }\n}\n", "import { Inject, Injectable } from '@angular/core';\nimport { CanActivate, Router, UrlTree } from '@angular/router';\nimport { AppConfigService } from '../../app-config.service';\nimport { AccessService, Feature, StubAccessService } from '../access';\nimport { PermissionsApiService, ResourceScope } from '@vendasta/platform-users';\nimport { Observable, catchError, firstValueFrom, map, of } from 'rxjs';\n\nexport interface PlatformPermissions {\n crmContacts?: boolean;\n crmCompanies?: boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class DefaultPageGuard implements CanActivate {\n private readonly permissions: Map = new Map();\n\n constructor(\n private readonly configService: AppConfigService,\n private readonly router: Router,\n @Inject(StubAccessService) private accessService: AccessService,\n private readonly platformPermissionsService: PermissionsApiService,\n ) {}\n\n async canActivate(): Promise {\n const config = this.configService.config;\n\n if (config.userCanAccessDashboard) {\n return true;\n }\n if (config.userCanAccessAccounts) {\n return this.router.createUrlTree(['/manage-accounts']);\n }\n if (config.canEnableApps) {\n return this.router.createUrlTree(['/marketplace/products']);\n }\n if (config.userCanAccessMarketing) {\n return this.router.createUrlTree(['/campaigns/acquire']);\n }\n if (config.userCanAccessSales) {\n return this.router.createUrlTree(['/st/sales-overview']);\n }\n if (config.userCanAccessBilling) {\n return this.router.createUrlTree(['/billing/reports']);\n }\n if (config.userCanCustomizeWhitelabel) {\n return this.router.createUrlTree(['/customize-design']);\n }\n if (config.unifiedUserId) {\n const permissions = await this.getPermissions(config.partnerId, config.unifiedUserId);\n if (permissions.crmCompanies) {\n return this.router.createUrlTree(['/crm/company']);\n }\n if (permissions.crmContacts) {\n return this.router.createUrlTree(['/crm/contact']);\n }\n }\n if (this.accessService?.hasAccessToFeature(Feature.pipeline)) {\n return this.router.createUrlTree(['/pipeline/board']);\n }\n\n return this.router.createUrlTree(['/access-denied']);\n }\n\n private async getPermissions(partnerId: string, userId: string): Promise {\n const key = `${partnerId}:${userId}`;\n if (this.permissions.has(key)) {\n return this.permissions.get(key);\n }\n const permissions = await firstValueFrom(this.fetchPlatformPermissions(partnerId, userId));\n this.permissions.set(key, permissions);\n return permissions;\n }\n\n private fetchPlatformPermissions(partnerId: string, userId: string): Observable {\n return this.platformPermissionsService.getPermissions({ partnerId, userId }).pipe(\n map((resp) => {\n const crmContacts = resp?.permissions?.contacts?.writeScope === ResourceScope.RESOURCE_SCOPE_ALL;\n const crmCompanies = resp?.permissions?.companies?.writeScope === ResourceScope.RESOURCE_SCOPE_ALL;\n return { crmContacts, crmCompanies } as PlatformPermissions;\n }),\n catchError(() => of({} as PlatformPermissions)),\n );\n }\n}\n"], "mappings": "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", "names": ["AccessDashboardGuard", "constructor", "configService", "router", "canActivate", "config", "userCanAccessDashboard", "createUrlTree", "\u0275\u0275inject", "AppConfigService", "Router", "factory", "\u0275fac", "providedIn", "_AccessDashboardGuard", "DefaultPageGuard", "constructor", "configService", "router", "accessService", "platformPermissionsService", "permissions", "Map", "canActivate", "__async", "config", "userCanAccessDashboard", "userCanAccessAccounts", "createUrlTree", "canEnableApps", "userCanAccessMarketing", "userCanAccessSales", "userCanAccessBilling", "userCanCustomizeWhitelabel", "unifiedUserId", "getPermissions", "partnerId", "crmCompanies", "crmContacts", "hasAccessToFeature", "userId", "key", "has", "get", "firstValueFrom", "fetchPlatformPermissions", "set", "pipe", "map", "resp", "contacts", "writeScope", "ResourceScope", "RESOURCE_SCOPE_ALL", "companies", "catchError", "of", "\u0275\u0275inject", "AppConfigService", "Router", "StubAccessService", "PermissionsApiService", "factory", "\u0275fac", "providedIn", "_DefaultPageGuard"] }