From 069dcd9c86c1d344d190f793e6b6c36a53286949 Mon Sep 17 00:00:00 2001 From: Sinan997 Date: Fri, 27 Oct 2023 15:08:04 +0300 Subject: [PATCH 1/7] Create function guards and mark class guards as deprecated --- .../account/src/lib/account-routing.module.ts | 10 ++-- .../lib/guards/authentication-flow.guard.ts | 12 ++++ .../src/lib/guards/extensions.guard.ts | 28 ++++++++++ .../core/src/lib/abstracts/auth.guard.ts | 9 +++ .../core/src/lib/guards/permission.guard.ts | 30 +++++++++- .../src/lib/guards/extensions.guard.ts | 55 ++++++++++++++++++ .../src/lib/identity-routing.module.ts | 10 ++-- .../oauth/src/lib/guards/oauth.guard.ts | 24 +++++++- .../packages/oauth/src/lib/oauth.module.ts | 8 +-- .../lib/setting-management-routing.module.ts | 6 +- .../src/lib/guards/extensions.guard.ts | 56 +++++++++++++++++++ .../lib/tenant-management-routing.module.ts | 10 ++-- 12 files changed, 234 insertions(+), 24 deletions(-) diff --git a/npm/ng-packs/packages/account/src/lib/account-routing.module.ts b/npm/ng-packs/packages/account/src/lib/account-routing.module.ts index 0b188f3751..6e651f5baa 100644 --- a/npm/ng-packs/packages/account/src/lib/account-routing.module.ts +++ b/npm/ng-packs/packages/account/src/lib/account-routing.module.ts @@ -1,8 +1,8 @@ import { NgModule } from '@angular/core'; -import { RouterModule, Routes, mapToCanActivate } from '@angular/router'; +import { RouterModule, Routes } from '@angular/router'; import { - AuthGuard, + AuthGuardFn, ReplaceableComponents, ReplaceableRouteContainerComponent, RouterOutletComponent, @@ -14,9 +14,9 @@ import { ManageProfileComponent } from './components/manage-profile/manage-profi import { RegisterComponent } from './components/register/register.component'; import { ResetPasswordComponent } from './components/reset-password/reset-password.component'; import { eAccountComponents } from './enums/components'; -import { AccountExtensionsGuard, AuthenticationFlowGuard } from './guards'; +import { AccountExtensionsGuardFn, AuthenticationFlowGuardFn } from './guards'; -const canActivate = mapToCanActivate([AuthenticationFlowGuard]); +const canActivate = [AuthenticationFlowGuardFn]; const routes: Routes = [ { path: '', pathMatch: 'full', redirectTo: 'login' }, @@ -73,7 +73,7 @@ const routes: Routes = [ { path: 'manage', component: ReplaceableRouteContainerComponent, - canActivate: mapToCanActivate([AuthGuard, AccountExtensionsGuard]), + canActivate: [AuthGuardFn, AccountExtensionsGuardFn], data: { replaceableComponent: { key: eAccountComponents.ManageProfile, diff --git a/npm/ng-packs/packages/account/src/lib/guards/authentication-flow.guard.ts b/npm/ng-packs/packages/account/src/lib/guards/authentication-flow.guard.ts index c00cee3156..c6134c8c23 100644 --- a/npm/ng-packs/packages/account/src/lib/guards/authentication-flow.guard.ts +++ b/npm/ng-packs/packages/account/src/lib/guards/authentication-flow.guard.ts @@ -1,6 +1,9 @@ import { AuthService, IAbpGuard } from '@abp/ng.core'; import { Injectable, inject } from '@angular/core'; +/** + * @deprecated Use `AuthenticationFlowGuardFn` instead. + */ @Injectable() export class AuthenticationFlowGuard implements IAbpGuard { protected readonly authService = inject(AuthService); @@ -12,3 +15,12 @@ export class AuthenticationFlowGuard implements IAbpGuard { return false; } } + +export const AuthenticationFlowGuardFn = () => { + const authService = inject(AuthService); + + if (authService.isInternalAuth) return true; + + authService.navigateToLogin(); + return false; +}; diff --git a/npm/ng-packs/packages/account/src/lib/guards/extensions.guard.ts b/npm/ng-packs/packages/account/src/lib/guards/extensions.guard.ts index 8df8aede51..185d2056f9 100644 --- a/npm/ng-packs/packages/account/src/lib/guards/extensions.guard.ts +++ b/npm/ng-packs/packages/account/src/lib/guards/extensions.guard.ts @@ -17,6 +17,9 @@ import { } from '../tokens/extensions.token'; import { eAccountComponents } from '../enums/components'; +/** + * @deprecated Use `AccountExtensionsGuardFn` instead. + */ @Injectable() export class AccountExtensionsGuard implements IAbpGuard { protected readonly configState = inject(ConfigStateService); @@ -44,3 +47,28 @@ export class AccountExtensionsGuard implements IAbpGuard { ); } } + +export const AccountExtensionsGuardFn = () => { + const configState = inject(ConfigStateService); + const extensions = inject(ExtensionsService); + + const config = { optional: true }; + + const editFormContributors = inject(ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS, config) || {}; + + return getObjectExtensionEntitiesFromStore(configState, 'Identity').pipe( + map(entities => ({ + [eAccountComponents.PersonalSettings]: entities.User, + })), + mapEntitiesToContributors(configState, 'AbpIdentity'), + tap(objectExtensionContributors => { + mergeWithDefaultProps( + extensions.editFormProps, + DEFAULT_ACCOUNT_FORM_PROPS, + objectExtensionContributors.editForm, + editFormContributors, + ); + }), + map(() => true), + ); +}; diff --git a/npm/ng-packs/packages/core/src/lib/abstracts/auth.guard.ts b/npm/ng-packs/packages/core/src/lib/abstracts/auth.guard.ts index 8fb4f4dc25..2da5d5d21a 100644 --- a/npm/ng-packs/packages/core/src/lib/abstracts/auth.guard.ts +++ b/npm/ng-packs/packages/core/src/lib/abstracts/auth.guard.ts @@ -2,7 +2,11 @@ import { Injectable } from '@angular/core'; import { UrlTree } from '@angular/router'; import { Observable } from 'rxjs'; import { IAbpGuard } from './abstract-guard'; +import { CanActivateFn } from '@angular/router'; +/** + * @deprecated Use `AuthGuardFn` instead. + */ @Injectable({ providedIn: 'root', }) @@ -12,3 +16,8 @@ export class AuthGuard implements IAbpGuard { return false; } } + +export const AuthGuardFn: CanActivateFn = () => { + console.error('You should add @abp/ng-oauth packages or create your own auth packages.'); + return false; +}; \ No newline at end of file diff --git a/npm/ng-packs/packages/core/src/lib/guards/permission.guard.ts b/npm/ng-packs/packages/core/src/lib/guards/permission.guard.ts index ae3fdb6e37..58293da594 100644 --- a/npm/ng-packs/packages/core/src/lib/guards/permission.guard.ts +++ b/npm/ng-packs/packages/core/src/lib/guards/permission.guard.ts @@ -1,5 +1,5 @@ import { Injectable, inject } from '@angular/core'; -import { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router'; +import { ActivatedRouteSnapshot, CanActivateFn, Router, RouterStateSnapshot } from '@angular/router'; import { HttpErrorResponse } from '@angular/common/http'; import { Observable, of } from 'rxjs'; @@ -11,6 +11,9 @@ import { IAbpGuard } from '../abstracts'; import { findRoute, getRoutePath } from '../utils/route-utils'; import { RoutesService, PermissionService, HttpErrorReporterService } from '../services'; +/** + * @deprecated Use `PermissionGuardFn` instead. + */ @Injectable({ providedIn: 'root', }) @@ -40,3 +43,28 @@ export class PermissionGuard implements IAbpGuard { ); } } + +export const PermissionGuardFn: CanActivateFn = (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => { + const router = inject(Router); + const routesService = inject(RoutesService); + const oAuthService = inject(OAuthService); + const permissionService = inject(PermissionService); + const httpErrorReporter = inject(HttpErrorReporterService); + + let { requiredPolicy } = route.data || {}; + + if (!requiredPolicy) { + const routeFound = findRoute(routesService, getRoutePath(router, state.url)); + requiredPolicy = routeFound?.requiredPolicy; + } + + if (!requiredPolicy) return of(true); + + return permissionService.getGrantedPolicy$(requiredPolicy).pipe( + tap(access => { + if (!access && oAuthService.hasValidAccessToken()) { + httpErrorReporter.reportError({ status: 403 } as HttpErrorResponse); + } + }), + ); +} diff --git a/npm/ng-packs/packages/identity/src/lib/guards/extensions.guard.ts b/npm/ng-packs/packages/identity/src/lib/guards/extensions.guard.ts index 172b599f91..78916556c3 100644 --- a/npm/ng-packs/packages/identity/src/lib/guards/extensions.guard.ts +++ b/npm/ng-packs/packages/identity/src/lib/guards/extensions.guard.ts @@ -26,6 +26,9 @@ import { IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS, } from '../tokens/extensions.token'; +/** + * @deprecated Use `IdentityExtensionsGuardFn` instead. + */ @Injectable() export class IdentityExtensionsGuard implements IAbpGuard { protected readonly configState = inject(ConfigStateService); @@ -80,3 +83,55 @@ export class IdentityExtensionsGuard implements IAbpGuard { ); } } + +export const IdentityExtensionsGuardFn = () => { + const configState = inject(ConfigStateService); + const extensions = inject(ExtensionsService); + + const config = { optional: true }; + + const actionContributors = inject(IDENTITY_ENTITY_ACTION_CONTRIBUTORS, config) || {}; + const toolbarContributors = inject(IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS, config) || {}; + const propContributors = inject(IDENTITY_ENTITY_PROP_CONTRIBUTORS, config) || {}; + const createFormContributors = inject(IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS, config) || {}; + const editFormContributors = inject(IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS, config) || {}; + + return getObjectExtensionEntitiesFromStore(configState, 'Identity').pipe( + map(entities => ({ + [eIdentityComponents.Roles]: entities.Role, + [eIdentityComponents.Users]: entities.User, + })), + mapEntitiesToContributors(configState, 'AbpIdentity'), + tap(objectExtensionContributors => { + mergeWithDefaultActions( + extensions.entityActions, + DEFAULT_IDENTITY_ENTITY_ACTIONS, + actionContributors, + ); + mergeWithDefaultActions( + extensions.toolbarActions, + DEFAULT_IDENTITY_TOOLBAR_ACTIONS, + toolbarContributors, + ); + mergeWithDefaultProps( + extensions.entityProps, + DEFAULT_IDENTITY_ENTITY_PROPS, + objectExtensionContributors.prop, + propContributors, + ); + mergeWithDefaultProps( + extensions.createFormProps, + DEFAULT_IDENTITY_CREATE_FORM_PROPS, + objectExtensionContributors.createForm, + createFormContributors, + ); + mergeWithDefaultProps( + extensions.editFormProps, + DEFAULT_IDENTITY_EDIT_FORM_PROPS, + objectExtensionContributors.editForm, + editFormContributors, + ); + }), + map(() => true), + ); +}; diff --git a/npm/ng-packs/packages/identity/src/lib/identity-routing.module.ts b/npm/ng-packs/packages/identity/src/lib/identity-routing.module.ts index 33c8f53d5a..af4dea7732 100644 --- a/npm/ng-packs/packages/identity/src/lib/identity-routing.module.ts +++ b/npm/ng-packs/packages/identity/src/lib/identity-routing.module.ts @@ -1,9 +1,9 @@ import { NgModule } from '@angular/core'; -import { RouterModule, Routes, mapToCanActivate } from '@angular/router'; +import { RouterModule, Routes } from '@angular/router'; import { - AuthGuard, - PermissionGuard, + AuthGuardFn, + PermissionGuardFn, ReplaceableComponents, ReplaceableRouteContainerComponent, RouterOutletComponent, @@ -12,14 +12,14 @@ import { import { RolesComponent } from './components/roles/roles.component'; import { UsersComponent } from './components/users/users.component'; import { eIdentityComponents } from './enums/components'; -import { IdentityExtensionsGuard } from './guards'; +import { IdentityExtensionsGuardFn } from './guards'; const routes: Routes = [ { path: '', redirectTo: 'roles', pathMatch: 'full' }, { path: '', component: RouterOutletComponent, - canActivate: mapToCanActivate([AuthGuard, PermissionGuard, IdentityExtensionsGuard]), + canActivate: [AuthGuardFn, PermissionGuardFn, IdentityExtensionsGuardFn], children: [ { path: 'roles', diff --git a/npm/ng-packs/packages/oauth/src/lib/guards/oauth.guard.ts b/npm/ng-packs/packages/oauth/src/lib/guards/oauth.guard.ts index 2571a1756c..a0e0e03c09 100644 --- a/npm/ng-packs/packages/oauth/src/lib/guards/oauth.guard.ts +++ b/npm/ng-packs/packages/oauth/src/lib/guards/oauth.guard.ts @@ -1,11 +1,14 @@ import { Injectable, inject } from '@angular/core'; -import { UrlTree, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router'; +import { UrlTree, ActivatedRouteSnapshot, RouterStateSnapshot, CanActivateFn } from '@angular/router'; import { Observable } from 'rxjs'; import { OAuthService } from 'angular-oauth2-oidc'; import { AuthService, IAbpGuard } from '@abp/ng.core'; +/** + * @deprecated Use `AbpOAuthGuardFn` instead. + */ @Injectable({ providedIn: 'root', }) @@ -27,3 +30,22 @@ export class AbpOAuthGuard implements IAbpGuard { return false; } } + + +export const AbpOAuthGuardFn: CanActivateFn = ( + route: ActivatedRouteSnapshot, + state: RouterStateSnapshot, +) => { + const oAuthService = inject(OAuthService); + const authService = inject(AuthService); + + const hasValidAccessToken = oAuthService.hasValidAccessToken(); + + if (hasValidAccessToken) { + return true; + } + + const params = { returnUrl: state.url }; + authService.navigateToLogin(params); + return false; +}; \ No newline at end of file diff --git a/npm/ng-packs/packages/oauth/src/lib/oauth.module.ts b/npm/ng-packs/packages/oauth/src/lib/oauth.module.ts index ac800e7c8f..fb56c7fddd 100644 --- a/npm/ng-packs/packages/oauth/src/lib/oauth.module.ts +++ b/npm/ng-packs/packages/oauth/src/lib/oauth.module.ts @@ -4,7 +4,7 @@ import { OAuthModule, OAuthStorage } from 'angular-oauth2-oidc'; import { AbpLocalStorageService, ApiInterceptor, - AuthGuard, + AuthGuardFn, AuthService, CHECK_AUTHENTICATION_STATE_FN_KEY, noop, @@ -14,7 +14,7 @@ import { AbpOAuthService } from './services'; import { OAuthConfigurationHandler } from './handlers/oauth-configuration.handler'; import { HTTP_INTERCEPTORS } from '@angular/common/http'; import { OAuthApiInterceptor } from './interceptors/api.interceptor'; -import { AbpOAuthGuard } from './guards/oauth.guard'; +import { AbpOAuthGuardFn } from './guards/oauth.guard'; import { NavigateToManageProfileProvider } from './providers'; import { checkAccessToken, pipeToLogin } from './utils'; @@ -31,8 +31,8 @@ export class AbpOAuthModule { useClass: AbpOAuthService, }, { - provide: AuthGuard, - useClass: AbpOAuthGuard, + provide: AuthGuardFn, + useValue: AbpOAuthGuardFn, }, { provide: ApiInterceptor, diff --git a/npm/ng-packs/packages/setting-management/src/lib/setting-management-routing.module.ts b/npm/ng-packs/packages/setting-management/src/lib/setting-management-routing.module.ts index 1fc5fd7c7b..f77f862fef 100644 --- a/npm/ng-packs/packages/setting-management/src/lib/setting-management-routing.module.ts +++ b/npm/ng-packs/packages/setting-management/src/lib/setting-management-routing.module.ts @@ -1,7 +1,7 @@ import { NgModule } from '@angular/core'; -import { RouterModule, Routes, mapToCanActivate } from '@angular/router'; +import { RouterModule, Routes } from '@angular/router'; import { - AuthGuard, + AuthGuardFn, ReplaceableComponents, ReplaceableRouteContainerComponent, RouterOutletComponent, @@ -13,7 +13,7 @@ const routes: Routes = [ { path: '', component: RouterOutletComponent, - canActivate: mapToCanActivate([AuthGuard]), + canActivate: [AuthGuardFn], children: [ { path: '', diff --git a/npm/ng-packs/packages/tenant-management/src/lib/guards/extensions.guard.ts b/npm/ng-packs/packages/tenant-management/src/lib/guards/extensions.guard.ts index bdadb7e78a..896955cc86 100644 --- a/npm/ng-packs/packages/tenant-management/src/lib/guards/extensions.guard.ts +++ b/npm/ng-packs/packages/tenant-management/src/lib/guards/extensions.guard.ts @@ -25,7 +25,11 @@ import { TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS, TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS, } from '../tokens/extensions.token'; +import { CanActivateFn } from '@angular/router'; +/** + * @deprecated Use `TenantManagementExtensionsGuardFn` instead. + */ @Injectable() export class TenantManagementExtensionsGuard implements IAbpGuard { protected readonly configState = inject(ConfigStateService); @@ -81,3 +85,55 @@ export class TenantManagementExtensionsGuard implements IAbpGuard { ); } } + +export const TenantManagementExtensionsGuardFn: CanActivateFn = () => { + const configState = inject(ConfigStateService); + const extensions = inject(ExtensionsService); + + const config = { optional: true }; + + const actionContributors = inject(TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS, config) || {}; + const toolbarContributors = inject(TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS, config) || {}; + const propContributors = inject(TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS, config) || {}; + const createFormContributors = + inject(TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS, config) || {}; + const editFormContributors = inject(TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS, config) || {}; + + return getObjectExtensionEntitiesFromStore(configState, 'TenantManagement').pipe( + map(entities => ({ + [eTenantManagementComponents.Tenants]: entities.Tenant, + })), + mapEntitiesToContributors(configState, 'TenantManagement'), + tap(objectExtensionContributors => { + mergeWithDefaultActions( + extensions.entityActions, + DEFAULT_TENANT_MANAGEMENT_ENTITY_ACTIONS, + actionContributors, + ); + mergeWithDefaultActions( + extensions.toolbarActions, + DEFAULT_TENANT_MANAGEMENT_TOOLBAR_ACTIONS, + toolbarContributors, + ); + mergeWithDefaultProps( + extensions.entityProps, + DEFAULT_TENANT_MANAGEMENT_ENTITY_PROPS, + objectExtensionContributors.prop, + propContributors, + ); + mergeWithDefaultProps( + extensions.createFormProps, + DEFAULT_TENANT_MANAGEMENT_CREATE_FORM_PROPS, + objectExtensionContributors.createForm, + createFormContributors, + ); + mergeWithDefaultProps( + extensions.editFormProps, + DEFAULT_TENANT_MANAGEMENT_EDIT_FORM_PROPS, + objectExtensionContributors.editForm, + editFormContributors, + ); + }), + map(() => true), + ); +}; diff --git a/npm/ng-packs/packages/tenant-management/src/lib/tenant-management-routing.module.ts b/npm/ng-packs/packages/tenant-management/src/lib/tenant-management-routing.module.ts index 06e2f0369e..61b438b613 100644 --- a/npm/ng-packs/packages/tenant-management/src/lib/tenant-management-routing.module.ts +++ b/npm/ng-packs/packages/tenant-management/src/lib/tenant-management-routing.module.ts @@ -1,9 +1,9 @@ import { NgModule } from '@angular/core'; -import { RouterModule, Routes, mapToCanActivate } from '@angular/router'; +import { RouterModule, Routes } from '@angular/router'; import { - AuthGuard, - PermissionGuard, + AuthGuardFn, + PermissionGuardFn, ReplaceableComponents, ReplaceableRouteContainerComponent, RouterOutletComponent, @@ -11,14 +11,14 @@ import { import { TenantsComponent } from './components/tenants/tenants.component'; import { eTenantManagementComponents } from './enums/components'; -import { TenantManagementExtensionsGuard } from './guards'; +import { TenantManagementExtensionsGuardFn } from './guards'; const routes: Routes = [ { path: '', redirectTo: 'tenants', pathMatch: 'full' }, { path: '', component: RouterOutletComponent, - canActivate: mapToCanActivate([AuthGuard, PermissionGuard, TenantManagementExtensionsGuard]), + canActivate: [AuthGuardFn, PermissionGuardFn, TenantManagementExtensionsGuardFn], children: [ { path: 'tenants', From 7926b073ecb8df1080854cd2a3e1c02eba55d250 Mon Sep 17 00:00:00 2001 From: Sinan997 Date: Tue, 31 Oct 2023 17:55:47 +0300 Subject: [PATCH 2/7] move extensions guards add resolvers --- .../account/src/lib/account-routing.module.ts | 6 +- .../src/lib/guards/extensions.guard.ts | 27 +-------- .../src/lib/resolvers/extensions.resolver.ts | 31 ++++++++++ .../account/src/lib/resolvers/index.ts | 1 + .../src/lib/guards/extensions.guard.ts | 54 +---------------- .../src/lib/identity-routing.module.ts | 5 +- .../src/lib/resolvers/extensions.resolver.ts | 58 ++++++++++++++++++ .../identity/src/lib/resolvers/index.ts | 1 + .../src/lib/guards/extensions.guard.ts | 50 ---------------- .../src/lib/resolvers/extensions.resolver.ts | 59 +++++++++++++++++++ .../src/lib/resolvers/index.ts | 1 + .../lib/tenant-management-routing.module.ts | 5 +- 12 files changed, 163 insertions(+), 135 deletions(-) create mode 100644 npm/ng-packs/packages/account/src/lib/resolvers/extensions.resolver.ts create mode 100644 npm/ng-packs/packages/account/src/lib/resolvers/index.ts create mode 100644 npm/ng-packs/packages/identity/src/lib/resolvers/extensions.resolver.ts create mode 100644 npm/ng-packs/packages/identity/src/lib/resolvers/index.ts create mode 100644 npm/ng-packs/packages/tenant-management/src/lib/resolvers/extensions.resolver.ts create mode 100644 npm/ng-packs/packages/tenant-management/src/lib/resolvers/index.ts diff --git a/npm/ng-packs/packages/account/src/lib/account-routing.module.ts b/npm/ng-packs/packages/account/src/lib/account-routing.module.ts index 6e651f5baa..e3d8db011d 100644 --- a/npm/ng-packs/packages/account/src/lib/account-routing.module.ts +++ b/npm/ng-packs/packages/account/src/lib/account-routing.module.ts @@ -14,7 +14,8 @@ import { ManageProfileComponent } from './components/manage-profile/manage-profi import { RegisterComponent } from './components/register/register.component'; import { ResetPasswordComponent } from './components/reset-password/reset-password.component'; import { eAccountComponents } from './enums/components'; -import { AccountExtensionsGuardFn, AuthenticationFlowGuardFn } from './guards'; +import { AuthenticationFlowGuardFn } from './guards'; +import { AccountExtensionsResolver } from './resolvers'; const canActivate = [AuthenticationFlowGuardFn]; @@ -73,7 +74,8 @@ const routes: Routes = [ { path: 'manage', component: ReplaceableRouteContainerComponent, - canActivate: [AuthGuardFn, AccountExtensionsGuardFn], + canActivate: [AuthGuardFn], + resolve: [AccountExtensionsResolver], data: { replaceableComponent: { key: eAccountComponents.ManageProfile, diff --git a/npm/ng-packs/packages/account/src/lib/guards/extensions.guard.ts b/npm/ng-packs/packages/account/src/lib/guards/extensions.guard.ts index 185d2056f9..9e22b133ec 100644 --- a/npm/ng-packs/packages/account/src/lib/guards/extensions.guard.ts +++ b/npm/ng-packs/packages/account/src/lib/guards/extensions.guard.ts @@ -18,7 +18,7 @@ import { import { eAccountComponents } from '../enums/components'; /** - * @deprecated Use `AccountExtensionsGuardFn` instead. + * @deprecated Use `AccountExtensionsResolver` instead. */ @Injectable() export class AccountExtensionsGuard implements IAbpGuard { @@ -47,28 +47,3 @@ export class AccountExtensionsGuard implements IAbpGuard { ); } } - -export const AccountExtensionsGuardFn = () => { - const configState = inject(ConfigStateService); - const extensions = inject(ExtensionsService); - - const config = { optional: true }; - - const editFormContributors = inject(ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS, config) || {}; - - return getObjectExtensionEntitiesFromStore(configState, 'Identity').pipe( - map(entities => ({ - [eAccountComponents.PersonalSettings]: entities.User, - })), - mapEntitiesToContributors(configState, 'AbpIdentity'), - tap(objectExtensionContributors => { - mergeWithDefaultProps( - extensions.editFormProps, - DEFAULT_ACCOUNT_FORM_PROPS, - objectExtensionContributors.editForm, - editFormContributors, - ); - }), - map(() => true), - ); -}; diff --git a/npm/ng-packs/packages/account/src/lib/resolvers/extensions.resolver.ts b/npm/ng-packs/packages/account/src/lib/resolvers/extensions.resolver.ts new file mode 100644 index 0000000000..2d46c8a70b --- /dev/null +++ b/npm/ng-packs/packages/account/src/lib/resolvers/extensions.resolver.ts @@ -0,0 +1,31 @@ +import { ConfigStateService } from "@abp/ng.core"; +import { ExtensionsService, getObjectExtensionEntitiesFromStore, mapEntitiesToContributors, mergeWithDefaultProps } from "@abp/ng.theme.shared/extensions"; +import { inject } from "@angular/core"; +import { map, tap } from "rxjs"; +import { eAccountComponents } from "../enums"; +import { ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS, DEFAULT_ACCOUNT_FORM_PROPS } from "../tokens"; + +export const AccountExtensionsResolver = () => { + const configState = inject(ConfigStateService); + const extensions = inject(ExtensionsService); + + const config = { optional: true }; + + const editFormContributors = inject(ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS, config) || {}; + + return getObjectExtensionEntitiesFromStore(configState, 'Identity').pipe( + map(entities => ({ + [eAccountComponents.PersonalSettings]: entities.User, + })), + mapEntitiesToContributors(configState, 'AbpIdentity'), + tap(objectExtensionContributors => { + mergeWithDefaultProps( + extensions.editFormProps, + DEFAULT_ACCOUNT_FORM_PROPS, + objectExtensionContributors.editForm, + editFormContributors, + ); + }), + map(() => true), + ); +}; \ No newline at end of file diff --git a/npm/ng-packs/packages/account/src/lib/resolvers/index.ts b/npm/ng-packs/packages/account/src/lib/resolvers/index.ts new file mode 100644 index 0000000000..754a8ccf12 --- /dev/null +++ b/npm/ng-packs/packages/account/src/lib/resolvers/index.ts @@ -0,0 +1 @@ +export * from './extensions.resolver' \ No newline at end of file diff --git a/npm/ng-packs/packages/identity/src/lib/guards/extensions.guard.ts b/npm/ng-packs/packages/identity/src/lib/guards/extensions.guard.ts index 78916556c3..de4be5df78 100644 --- a/npm/ng-packs/packages/identity/src/lib/guards/extensions.guard.ts +++ b/npm/ng-packs/packages/identity/src/lib/guards/extensions.guard.ts @@ -27,7 +27,7 @@ import { } from '../tokens/extensions.token'; /** - * @deprecated Use `IdentityExtensionsGuardFn` instead. + * @deprecated Use `IdentityExtensionsResolver` instead. */ @Injectable() export class IdentityExtensionsGuard implements IAbpGuard { @@ -83,55 +83,3 @@ export class IdentityExtensionsGuard implements IAbpGuard { ); } } - -export const IdentityExtensionsGuardFn = () => { - const configState = inject(ConfigStateService); - const extensions = inject(ExtensionsService); - - const config = { optional: true }; - - const actionContributors = inject(IDENTITY_ENTITY_ACTION_CONTRIBUTORS, config) || {}; - const toolbarContributors = inject(IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS, config) || {}; - const propContributors = inject(IDENTITY_ENTITY_PROP_CONTRIBUTORS, config) || {}; - const createFormContributors = inject(IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS, config) || {}; - const editFormContributors = inject(IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS, config) || {}; - - return getObjectExtensionEntitiesFromStore(configState, 'Identity').pipe( - map(entities => ({ - [eIdentityComponents.Roles]: entities.Role, - [eIdentityComponents.Users]: entities.User, - })), - mapEntitiesToContributors(configState, 'AbpIdentity'), - tap(objectExtensionContributors => { - mergeWithDefaultActions( - extensions.entityActions, - DEFAULT_IDENTITY_ENTITY_ACTIONS, - actionContributors, - ); - mergeWithDefaultActions( - extensions.toolbarActions, - DEFAULT_IDENTITY_TOOLBAR_ACTIONS, - toolbarContributors, - ); - mergeWithDefaultProps( - extensions.entityProps, - DEFAULT_IDENTITY_ENTITY_PROPS, - objectExtensionContributors.prop, - propContributors, - ); - mergeWithDefaultProps( - extensions.createFormProps, - DEFAULT_IDENTITY_CREATE_FORM_PROPS, - objectExtensionContributors.createForm, - createFormContributors, - ); - mergeWithDefaultProps( - extensions.editFormProps, - DEFAULT_IDENTITY_EDIT_FORM_PROPS, - objectExtensionContributors.editForm, - editFormContributors, - ); - }), - map(() => true), - ); -}; diff --git a/npm/ng-packs/packages/identity/src/lib/identity-routing.module.ts b/npm/ng-packs/packages/identity/src/lib/identity-routing.module.ts index af4dea7732..1e165b49a0 100644 --- a/npm/ng-packs/packages/identity/src/lib/identity-routing.module.ts +++ b/npm/ng-packs/packages/identity/src/lib/identity-routing.module.ts @@ -12,14 +12,15 @@ import { import { RolesComponent } from './components/roles/roles.component'; import { UsersComponent } from './components/users/users.component'; import { eIdentityComponents } from './enums/components'; -import { IdentityExtensionsGuardFn } from './guards'; +import { IdentityExtensionsResolver } from './resolvers'; const routes: Routes = [ { path: '', redirectTo: 'roles', pathMatch: 'full' }, { path: '', component: RouterOutletComponent, - canActivate: [AuthGuardFn, PermissionGuardFn, IdentityExtensionsGuardFn], + canActivate: [AuthGuardFn, PermissionGuardFn], + resolve: [IdentityExtensionsResolver], children: [ { path: 'roles', diff --git a/npm/ng-packs/packages/identity/src/lib/resolvers/extensions.resolver.ts b/npm/ng-packs/packages/identity/src/lib/resolvers/extensions.resolver.ts new file mode 100644 index 0000000000..8865e664a6 --- /dev/null +++ b/npm/ng-packs/packages/identity/src/lib/resolvers/extensions.resolver.ts @@ -0,0 +1,58 @@ +import { ConfigStateService } from "@abp/ng.core"; +import { ExtensionsService, getObjectExtensionEntitiesFromStore, mapEntitiesToContributors, mergeWithDefaultActions, mergeWithDefaultProps } from "@abp/ng.theme.shared/extensions"; +import { inject } from "@angular/core"; +import { map, tap } from "rxjs"; +import { eIdentityComponents } from "../enums"; +import { IDENTITY_ENTITY_ACTION_CONTRIBUTORS, IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS, IDENTITY_ENTITY_PROP_CONTRIBUTORS, IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS, IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS, DEFAULT_IDENTITY_ENTITY_ACTIONS, DEFAULT_IDENTITY_TOOLBAR_ACTIONS, DEFAULT_IDENTITY_ENTITY_PROPS, DEFAULT_IDENTITY_CREATE_FORM_PROPS, DEFAULT_IDENTITY_EDIT_FORM_PROPS } from "../tokens"; + +export const IdentityExtensionsResolver = () => { + const configState = inject(ConfigStateService); + const extensions = inject(ExtensionsService); + + const config = { optional: true }; + + const actionContributors = inject(IDENTITY_ENTITY_ACTION_CONTRIBUTORS, config) || {}; + const toolbarContributors = inject(IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS, config) || {}; + const propContributors = inject(IDENTITY_ENTITY_PROP_CONTRIBUTORS, config) || {}; + const createFormContributors = inject(IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS, config) || {}; + const editFormContributors = inject(IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS, config) || {}; + + return getObjectExtensionEntitiesFromStore(configState, 'Identity').pipe( + map(entities => ({ + [eIdentityComponents.Roles]: entities.Role, + [eIdentityComponents.Users]: entities.User, + })), + mapEntitiesToContributors(configState, 'AbpIdentity'), + tap(objectExtensionContributors => { + mergeWithDefaultActions( + extensions.entityActions, + DEFAULT_IDENTITY_ENTITY_ACTIONS, + actionContributors, + ); + mergeWithDefaultActions( + extensions.toolbarActions, + DEFAULT_IDENTITY_TOOLBAR_ACTIONS, + toolbarContributors, + ); + mergeWithDefaultProps( + extensions.entityProps, + DEFAULT_IDENTITY_ENTITY_PROPS, + objectExtensionContributors.prop, + propContributors, + ); + mergeWithDefaultProps( + extensions.createFormProps, + DEFAULT_IDENTITY_CREATE_FORM_PROPS, + objectExtensionContributors.createForm, + createFormContributors, + ); + mergeWithDefaultProps( + extensions.editFormProps, + DEFAULT_IDENTITY_EDIT_FORM_PROPS, + objectExtensionContributors.editForm, + editFormContributors, + ); + }), + map(() => true), + ); +}; \ No newline at end of file diff --git a/npm/ng-packs/packages/identity/src/lib/resolvers/index.ts b/npm/ng-packs/packages/identity/src/lib/resolvers/index.ts new file mode 100644 index 0000000000..754a8ccf12 --- /dev/null +++ b/npm/ng-packs/packages/identity/src/lib/resolvers/index.ts @@ -0,0 +1 @@ +export * from './extensions.resolver' \ No newline at end of file diff --git a/npm/ng-packs/packages/tenant-management/src/lib/guards/extensions.guard.ts b/npm/ng-packs/packages/tenant-management/src/lib/guards/extensions.guard.ts index 896955cc86..d1be8c9a61 100644 --- a/npm/ng-packs/packages/tenant-management/src/lib/guards/extensions.guard.ts +++ b/npm/ng-packs/packages/tenant-management/src/lib/guards/extensions.guard.ts @@ -86,54 +86,4 @@ export class TenantManagementExtensionsGuard implements IAbpGuard { } } -export const TenantManagementExtensionsGuardFn: CanActivateFn = () => { - const configState = inject(ConfigStateService); - const extensions = inject(ExtensionsService); - const config = { optional: true }; - - const actionContributors = inject(TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS, config) || {}; - const toolbarContributors = inject(TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS, config) || {}; - const propContributors = inject(TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS, config) || {}; - const createFormContributors = - inject(TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS, config) || {}; - const editFormContributors = inject(TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS, config) || {}; - - return getObjectExtensionEntitiesFromStore(configState, 'TenantManagement').pipe( - map(entities => ({ - [eTenantManagementComponents.Tenants]: entities.Tenant, - })), - mapEntitiesToContributors(configState, 'TenantManagement'), - tap(objectExtensionContributors => { - mergeWithDefaultActions( - extensions.entityActions, - DEFAULT_TENANT_MANAGEMENT_ENTITY_ACTIONS, - actionContributors, - ); - mergeWithDefaultActions( - extensions.toolbarActions, - DEFAULT_TENANT_MANAGEMENT_TOOLBAR_ACTIONS, - toolbarContributors, - ); - mergeWithDefaultProps( - extensions.entityProps, - DEFAULT_TENANT_MANAGEMENT_ENTITY_PROPS, - objectExtensionContributors.prop, - propContributors, - ); - mergeWithDefaultProps( - extensions.createFormProps, - DEFAULT_TENANT_MANAGEMENT_CREATE_FORM_PROPS, - objectExtensionContributors.createForm, - createFormContributors, - ); - mergeWithDefaultProps( - extensions.editFormProps, - DEFAULT_TENANT_MANAGEMENT_EDIT_FORM_PROPS, - objectExtensionContributors.editForm, - editFormContributors, - ); - }), - map(() => true), - ); -}; diff --git a/npm/ng-packs/packages/tenant-management/src/lib/resolvers/extensions.resolver.ts b/npm/ng-packs/packages/tenant-management/src/lib/resolvers/extensions.resolver.ts new file mode 100644 index 0000000000..714627e2f7 --- /dev/null +++ b/npm/ng-packs/packages/tenant-management/src/lib/resolvers/extensions.resolver.ts @@ -0,0 +1,59 @@ +import { ConfigStateService } from "@abp/ng.core"; +import { ExtensionsService, getObjectExtensionEntitiesFromStore, mapEntitiesToContributors, mergeWithDefaultActions, mergeWithDefaultProps } from "@abp/ng.theme.shared/extensions"; +import { inject } from "@angular/core"; +import { CanActivateFn } from "@angular/router"; +import { map, tap } from "rxjs"; +import { eTenantManagementComponents } from "../enums"; +import { TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS, TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS, TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS, TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS, TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS, DEFAULT_TENANT_MANAGEMENT_ENTITY_ACTIONS, DEFAULT_TENANT_MANAGEMENT_TOOLBAR_ACTIONS, DEFAULT_TENANT_MANAGEMENT_ENTITY_PROPS, DEFAULT_TENANT_MANAGEMENT_CREATE_FORM_PROPS, DEFAULT_TENANT_MANAGEMENT_EDIT_FORM_PROPS } from "../tokens"; + +export const TenantManagementExtensionsResolver: CanActivateFn = () => { + const configState = inject(ConfigStateService); + const extensions = inject(ExtensionsService); + + const config = { optional: true }; + + const actionContributors = inject(TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS, config) || {}; + const toolbarContributors = inject(TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS, config) || {}; + const propContributors = inject(TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS, config) || {}; + const createFormContributors = + inject(TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS, config) || {}; + const editFormContributors = inject(TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS, config) || {}; + + return getObjectExtensionEntitiesFromStore(configState, 'TenantManagement').pipe( + map(entities => ({ + [eTenantManagementComponents.Tenants]: entities.Tenant, + })), + mapEntitiesToContributors(configState, 'TenantManagement'), + tap(objectExtensionContributors => { + mergeWithDefaultActions( + extensions.entityActions, + DEFAULT_TENANT_MANAGEMENT_ENTITY_ACTIONS, + actionContributors, + ); + mergeWithDefaultActions( + extensions.toolbarActions, + DEFAULT_TENANT_MANAGEMENT_TOOLBAR_ACTIONS, + toolbarContributors, + ); + mergeWithDefaultProps( + extensions.entityProps, + DEFAULT_TENANT_MANAGEMENT_ENTITY_PROPS, + objectExtensionContributors.prop, + propContributors, + ); + mergeWithDefaultProps( + extensions.createFormProps, + DEFAULT_TENANT_MANAGEMENT_CREATE_FORM_PROPS, + objectExtensionContributors.createForm, + createFormContributors, + ); + mergeWithDefaultProps( + extensions.editFormProps, + DEFAULT_TENANT_MANAGEMENT_EDIT_FORM_PROPS, + objectExtensionContributors.editForm, + editFormContributors, + ); + }), + map(() => true), + ); +}; \ No newline at end of file diff --git a/npm/ng-packs/packages/tenant-management/src/lib/resolvers/index.ts b/npm/ng-packs/packages/tenant-management/src/lib/resolvers/index.ts new file mode 100644 index 0000000000..754a8ccf12 --- /dev/null +++ b/npm/ng-packs/packages/tenant-management/src/lib/resolvers/index.ts @@ -0,0 +1 @@ +export * from './extensions.resolver' \ No newline at end of file diff --git a/npm/ng-packs/packages/tenant-management/src/lib/tenant-management-routing.module.ts b/npm/ng-packs/packages/tenant-management/src/lib/tenant-management-routing.module.ts index 61b438b613..3db4c7c33d 100644 --- a/npm/ng-packs/packages/tenant-management/src/lib/tenant-management-routing.module.ts +++ b/npm/ng-packs/packages/tenant-management/src/lib/tenant-management-routing.module.ts @@ -11,14 +11,15 @@ import { import { TenantsComponent } from './components/tenants/tenants.component'; import { eTenantManagementComponents } from './enums/components'; -import { TenantManagementExtensionsGuardFn } from './guards'; +import { TenantManagementExtensionsResolver } from './resolvers'; const routes: Routes = [ { path: '', redirectTo: 'tenants', pathMatch: 'full' }, { path: '', component: RouterOutletComponent, - canActivate: [AuthGuardFn, PermissionGuardFn, TenantManagementExtensionsGuardFn], + canActivate: [AuthGuardFn, PermissionGuardFn, ], + resolve: [TenantManagementExtensionsResolver], children: [ { path: 'tenants', From aac74fc03d45a0d3d03b1d123854f83af023471c Mon Sep 17 00:00:00 2001 From: Sinan997 Date: Wed, 1 Nov 2023 08:58:35 +0300 Subject: [PATCH 3/7] remove canActivaFn model --- .../src/lib/resolvers/extensions.resolver.ts | 19 +++++++---- .../src/lib/resolvers/extensions.resolver.ts | 31 +++++++++++++---- .../src/lib/resolvers/extensions.resolver.ts | 34 ++++++++++++++----- 3 files changed, 61 insertions(+), 23 deletions(-) diff --git a/npm/ng-packs/packages/account/src/lib/resolvers/extensions.resolver.ts b/npm/ng-packs/packages/account/src/lib/resolvers/extensions.resolver.ts index 2d46c8a70b..133be23ec9 100644 --- a/npm/ng-packs/packages/account/src/lib/resolvers/extensions.resolver.ts +++ b/npm/ng-packs/packages/account/src/lib/resolvers/extensions.resolver.ts @@ -1,9 +1,14 @@ -import { ConfigStateService } from "@abp/ng.core"; -import { ExtensionsService, getObjectExtensionEntitiesFromStore, mapEntitiesToContributors, mergeWithDefaultProps } from "@abp/ng.theme.shared/extensions"; -import { inject } from "@angular/core"; -import { map, tap } from "rxjs"; -import { eAccountComponents } from "../enums"; -import { ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS, DEFAULT_ACCOUNT_FORM_PROPS } from "../tokens"; +import { inject } from '@angular/core'; +import { ConfigStateService } from '@abp/ng.core'; +import { map, tap } from 'rxjs'; +import { + ExtensionsService, + getObjectExtensionEntitiesFromStore, + mapEntitiesToContributors, + mergeWithDefaultProps, +} from '@abp/ng.theme.shared/extensions'; +import { eAccountComponents } from '../enums'; +import { ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS, DEFAULT_ACCOUNT_FORM_PROPS } from '../tokens'; export const AccountExtensionsResolver = () => { const configState = inject(ConfigStateService); @@ -28,4 +33,4 @@ export const AccountExtensionsResolver = () => { }), map(() => true), ); -}; \ No newline at end of file +}; diff --git a/npm/ng-packs/packages/identity/src/lib/resolvers/extensions.resolver.ts b/npm/ng-packs/packages/identity/src/lib/resolvers/extensions.resolver.ts index 8865e664a6..0b0731a204 100644 --- a/npm/ng-packs/packages/identity/src/lib/resolvers/extensions.resolver.ts +++ b/npm/ng-packs/packages/identity/src/lib/resolvers/extensions.resolver.ts @@ -1,9 +1,26 @@ -import { ConfigStateService } from "@abp/ng.core"; -import { ExtensionsService, getObjectExtensionEntitiesFromStore, mapEntitiesToContributors, mergeWithDefaultActions, mergeWithDefaultProps } from "@abp/ng.theme.shared/extensions"; -import { inject } from "@angular/core"; -import { map, tap } from "rxjs"; -import { eIdentityComponents } from "../enums"; -import { IDENTITY_ENTITY_ACTION_CONTRIBUTORS, IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS, IDENTITY_ENTITY_PROP_CONTRIBUTORS, IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS, IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS, DEFAULT_IDENTITY_ENTITY_ACTIONS, DEFAULT_IDENTITY_TOOLBAR_ACTIONS, DEFAULT_IDENTITY_ENTITY_PROPS, DEFAULT_IDENTITY_CREATE_FORM_PROPS, DEFAULT_IDENTITY_EDIT_FORM_PROPS } from "../tokens"; +import { inject } from '@angular/core'; +import { map, tap } from 'rxjs'; +import { ConfigStateService } from '@abp/ng.core'; +import { + ExtensionsService, + getObjectExtensionEntitiesFromStore, + mapEntitiesToContributors, + mergeWithDefaultActions, + mergeWithDefaultProps, +} from '@abp/ng.theme.shared/extensions'; +import { eIdentityComponents } from '../enums'; +import { + IDENTITY_ENTITY_ACTION_CONTRIBUTORS, + IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS, + IDENTITY_ENTITY_PROP_CONTRIBUTORS, + IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS, + IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS, + DEFAULT_IDENTITY_ENTITY_ACTIONS, + DEFAULT_IDENTITY_TOOLBAR_ACTIONS, + DEFAULT_IDENTITY_ENTITY_PROPS, + DEFAULT_IDENTITY_CREATE_FORM_PROPS, + DEFAULT_IDENTITY_EDIT_FORM_PROPS, +} from '../tokens'; export const IdentityExtensionsResolver = () => { const configState = inject(ConfigStateService); @@ -55,4 +72,4 @@ export const IdentityExtensionsResolver = () => { }), map(() => true), ); -}; \ No newline at end of file +}; diff --git a/npm/ng-packs/packages/tenant-management/src/lib/resolvers/extensions.resolver.ts b/npm/ng-packs/packages/tenant-management/src/lib/resolvers/extensions.resolver.ts index 714627e2f7..50c13305dc 100644 --- a/npm/ng-packs/packages/tenant-management/src/lib/resolvers/extensions.resolver.ts +++ b/npm/ng-packs/packages/tenant-management/src/lib/resolvers/extensions.resolver.ts @@ -1,12 +1,28 @@ -import { ConfigStateService } from "@abp/ng.core"; -import { ExtensionsService, getObjectExtensionEntitiesFromStore, mapEntitiesToContributors, mergeWithDefaultActions, mergeWithDefaultProps } from "@abp/ng.theme.shared/extensions"; -import { inject } from "@angular/core"; -import { CanActivateFn } from "@angular/router"; -import { map, tap } from "rxjs"; -import { eTenantManagementComponents } from "../enums"; -import { TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS, TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS, TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS, TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS, TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS, DEFAULT_TENANT_MANAGEMENT_ENTITY_ACTIONS, DEFAULT_TENANT_MANAGEMENT_TOOLBAR_ACTIONS, DEFAULT_TENANT_MANAGEMENT_ENTITY_PROPS, DEFAULT_TENANT_MANAGEMENT_CREATE_FORM_PROPS, DEFAULT_TENANT_MANAGEMENT_EDIT_FORM_PROPS } from "../tokens"; +import { inject } from '@angular/core'; +import { map, tap } from 'rxjs'; +import { ConfigStateService } from '@abp/ng.core'; +import { + ExtensionsService, + getObjectExtensionEntitiesFromStore, + mapEntitiesToContributors, + mergeWithDefaultActions, + mergeWithDefaultProps, +} from '@abp/ng.theme.shared/extensions'; +import { eTenantManagementComponents } from '../enums'; +import { + TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS, + TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS, + TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS, + TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS, + TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS, + DEFAULT_TENANT_MANAGEMENT_ENTITY_ACTIONS, + DEFAULT_TENANT_MANAGEMENT_TOOLBAR_ACTIONS, + DEFAULT_TENANT_MANAGEMENT_ENTITY_PROPS, + DEFAULT_TENANT_MANAGEMENT_CREATE_FORM_PROPS, + DEFAULT_TENANT_MANAGEMENT_EDIT_FORM_PROPS, +} from '../tokens'; -export const TenantManagementExtensionsResolver: CanActivateFn = () => { +export const TenantManagementExtensionsResolver = () => { const configState = inject(ConfigStateService); const extensions = inject(ExtensionsService); @@ -56,4 +72,4 @@ export const TenantManagementExtensionsResolver: CanActivateFn = () => { }), map(() => true), ); -}; \ No newline at end of file +}; From 4ac00e8f87839ca026a48a87d38982bad87e9ae6 Mon Sep 17 00:00:00 2001 From: Sinan997 Date: Wed, 1 Nov 2023 16:35:48 +0300 Subject: [PATCH 4/7] rename function names --- .../account/src/lib/account-routing.module.ts | 12 ++++++------ .../src/lib/guards/authentication-flow.guard.ts | 4 ++-- .../account/src/lib/guards/extensions.guard.ts | 2 +- .../account/src/lib/resolvers/extensions.resolver.ts | 2 +- .../packages/core/src/lib/abstracts/auth.guard.ts | 4 ++-- .../packages/core/src/lib/guards/permission.guard.ts | 4 ++-- .../identity/src/lib/guards/extensions.guard.ts | 2 +- .../identity/src/lib/identity-routing.module.ts | 10 +++++----- .../src/lib/resolvers/extensions.resolver.ts | 2 +- .../packages/oauth/src/lib/guards/oauth.guard.ts | 4 ++-- npm/ng-packs/packages/oauth/src/lib/oauth.module.ts | 8 ++++---- .../src/lib/setting-management-routing.module.ts | 4 ++-- .../src/lib/guards/extensions.guard.ts | 3 +-- .../src/lib/resolvers/extensions.resolver.ts | 2 +- .../src/lib/tenant-management-routing.module.ts | 10 +++++----- 15 files changed, 36 insertions(+), 37 deletions(-) diff --git a/npm/ng-packs/packages/account/src/lib/account-routing.module.ts b/npm/ng-packs/packages/account/src/lib/account-routing.module.ts index e3d8db011d..a10bde7009 100644 --- a/npm/ng-packs/packages/account/src/lib/account-routing.module.ts +++ b/npm/ng-packs/packages/account/src/lib/account-routing.module.ts @@ -2,7 +2,7 @@ import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; import { - AuthGuardFn, + authGuard, ReplaceableComponents, ReplaceableRouteContainerComponent, RouterOutletComponent, @@ -14,10 +14,10 @@ import { ManageProfileComponent } from './components/manage-profile/manage-profi import { RegisterComponent } from './components/register/register.component'; import { ResetPasswordComponent } from './components/reset-password/reset-password.component'; import { eAccountComponents } from './enums/components'; -import { AuthenticationFlowGuardFn } from './guards'; -import { AccountExtensionsResolver } from './resolvers'; +import { authenticationFlowGuard } from './guards'; +import { accountExtensionsResolver } from './resolvers'; -const canActivate = [AuthenticationFlowGuardFn]; +const canActivate = [authenticationFlowGuard]; const routes: Routes = [ { path: '', pathMatch: 'full', redirectTo: 'login' }, @@ -74,8 +74,8 @@ const routes: Routes = [ { path: 'manage', component: ReplaceableRouteContainerComponent, - canActivate: [AuthGuardFn], - resolve: [AccountExtensionsResolver], + canActivate: [authGuard], + resolve: [accountExtensionsResolver], data: { replaceableComponent: { key: eAccountComponents.ManageProfile, diff --git a/npm/ng-packs/packages/account/src/lib/guards/authentication-flow.guard.ts b/npm/ng-packs/packages/account/src/lib/guards/authentication-flow.guard.ts index c6134c8c23..0ec529dd37 100644 --- a/npm/ng-packs/packages/account/src/lib/guards/authentication-flow.guard.ts +++ b/npm/ng-packs/packages/account/src/lib/guards/authentication-flow.guard.ts @@ -2,7 +2,7 @@ import { AuthService, IAbpGuard } from '@abp/ng.core'; import { Injectable, inject } from '@angular/core'; /** - * @deprecated Use `AuthenticationFlowGuardFn` instead. + * @deprecated Use `authenticationFlowGuard` instead. */ @Injectable() export class AuthenticationFlowGuard implements IAbpGuard { @@ -16,7 +16,7 @@ export class AuthenticationFlowGuard implements IAbpGuard { } } -export const AuthenticationFlowGuardFn = () => { +export const authenticationFlowGuard = () => { const authService = inject(AuthService); if (authService.isInternalAuth) return true; diff --git a/npm/ng-packs/packages/account/src/lib/guards/extensions.guard.ts b/npm/ng-packs/packages/account/src/lib/guards/extensions.guard.ts index 9e22b133ec..c3965c0ff6 100644 --- a/npm/ng-packs/packages/account/src/lib/guards/extensions.guard.ts +++ b/npm/ng-packs/packages/account/src/lib/guards/extensions.guard.ts @@ -18,7 +18,7 @@ import { import { eAccountComponents } from '../enums/components'; /** - * @deprecated Use `AccountExtensionsResolver` instead. + * @deprecated Use `accountExtensionsResolver` instead. */ @Injectable() export class AccountExtensionsGuard implements IAbpGuard { diff --git a/npm/ng-packs/packages/account/src/lib/resolvers/extensions.resolver.ts b/npm/ng-packs/packages/account/src/lib/resolvers/extensions.resolver.ts index 133be23ec9..7a08418b26 100644 --- a/npm/ng-packs/packages/account/src/lib/resolvers/extensions.resolver.ts +++ b/npm/ng-packs/packages/account/src/lib/resolvers/extensions.resolver.ts @@ -10,7 +10,7 @@ import { import { eAccountComponents } from '../enums'; import { ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS, DEFAULT_ACCOUNT_FORM_PROPS } from '../tokens'; -export const AccountExtensionsResolver = () => { +export const accountExtensionsResolver = () => { const configState = inject(ConfigStateService); const extensions = inject(ExtensionsService); diff --git a/npm/ng-packs/packages/core/src/lib/abstracts/auth.guard.ts b/npm/ng-packs/packages/core/src/lib/abstracts/auth.guard.ts index 2da5d5d21a..b80306cc6c 100644 --- a/npm/ng-packs/packages/core/src/lib/abstracts/auth.guard.ts +++ b/npm/ng-packs/packages/core/src/lib/abstracts/auth.guard.ts @@ -5,7 +5,7 @@ import { IAbpGuard } from './abstract-guard'; import { CanActivateFn } from '@angular/router'; /** - * @deprecated Use `AuthGuardFn` instead. + * @deprecated Use `authGuard` instead. */ @Injectable({ providedIn: 'root', @@ -17,7 +17,7 @@ export class AuthGuard implements IAbpGuard { } } -export const AuthGuardFn: CanActivateFn = () => { +export const authGuard: CanActivateFn = () => { console.error('You should add @abp/ng-oauth packages or create your own auth packages.'); return false; }; \ No newline at end of file diff --git a/npm/ng-packs/packages/core/src/lib/guards/permission.guard.ts b/npm/ng-packs/packages/core/src/lib/guards/permission.guard.ts index 58293da594..197ad0f70c 100644 --- a/npm/ng-packs/packages/core/src/lib/guards/permission.guard.ts +++ b/npm/ng-packs/packages/core/src/lib/guards/permission.guard.ts @@ -12,7 +12,7 @@ import { findRoute, getRoutePath } from '../utils/route-utils'; import { RoutesService, PermissionService, HttpErrorReporterService } from '../services'; /** - * @deprecated Use `PermissionGuardFn` instead. + * @deprecated Use `permissionGuard` instead. */ @Injectable({ providedIn: 'root', @@ -44,7 +44,7 @@ export class PermissionGuard implements IAbpGuard { } } -export const PermissionGuardFn: CanActivateFn = (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => { +export const permissionGuard: CanActivateFn = (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => { const router = inject(Router); const routesService = inject(RoutesService); const oAuthService = inject(OAuthService); diff --git a/npm/ng-packs/packages/identity/src/lib/guards/extensions.guard.ts b/npm/ng-packs/packages/identity/src/lib/guards/extensions.guard.ts index de4be5df78..b4c03bb8f6 100644 --- a/npm/ng-packs/packages/identity/src/lib/guards/extensions.guard.ts +++ b/npm/ng-packs/packages/identity/src/lib/guards/extensions.guard.ts @@ -27,7 +27,7 @@ import { } from '../tokens/extensions.token'; /** - * @deprecated Use `IdentityExtensionsResolver` instead. + * @deprecated Use `identityExtensionsResolver` instead. */ @Injectable() export class IdentityExtensionsGuard implements IAbpGuard { diff --git a/npm/ng-packs/packages/identity/src/lib/identity-routing.module.ts b/npm/ng-packs/packages/identity/src/lib/identity-routing.module.ts index 1e165b49a0..93ac912d97 100644 --- a/npm/ng-packs/packages/identity/src/lib/identity-routing.module.ts +++ b/npm/ng-packs/packages/identity/src/lib/identity-routing.module.ts @@ -2,8 +2,8 @@ import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; import { - AuthGuardFn, - PermissionGuardFn, + authGuard, + permissionGuard, ReplaceableComponents, ReplaceableRouteContainerComponent, RouterOutletComponent, @@ -12,15 +12,15 @@ import { import { RolesComponent } from './components/roles/roles.component'; import { UsersComponent } from './components/users/users.component'; import { eIdentityComponents } from './enums/components'; -import { IdentityExtensionsResolver } from './resolvers'; +import { identityExtensionsResolver } from './resolvers'; const routes: Routes = [ { path: '', redirectTo: 'roles', pathMatch: 'full' }, { path: '', component: RouterOutletComponent, - canActivate: [AuthGuardFn, PermissionGuardFn], - resolve: [IdentityExtensionsResolver], + canActivate: [authGuard, permissionGuard], + resolve: [identityExtensionsResolver], children: [ { path: 'roles', diff --git a/npm/ng-packs/packages/identity/src/lib/resolvers/extensions.resolver.ts b/npm/ng-packs/packages/identity/src/lib/resolvers/extensions.resolver.ts index 0b0731a204..c1676d1c39 100644 --- a/npm/ng-packs/packages/identity/src/lib/resolvers/extensions.resolver.ts +++ b/npm/ng-packs/packages/identity/src/lib/resolvers/extensions.resolver.ts @@ -22,7 +22,7 @@ import { DEFAULT_IDENTITY_EDIT_FORM_PROPS, } from '../tokens'; -export const IdentityExtensionsResolver = () => { +export const identityExtensionsResolver = () => { const configState = inject(ConfigStateService); const extensions = inject(ExtensionsService); diff --git a/npm/ng-packs/packages/oauth/src/lib/guards/oauth.guard.ts b/npm/ng-packs/packages/oauth/src/lib/guards/oauth.guard.ts index a0e0e03c09..f75dc4893a 100644 --- a/npm/ng-packs/packages/oauth/src/lib/guards/oauth.guard.ts +++ b/npm/ng-packs/packages/oauth/src/lib/guards/oauth.guard.ts @@ -7,7 +7,7 @@ import { OAuthService } from 'angular-oauth2-oidc'; import { AuthService, IAbpGuard } from '@abp/ng.core'; /** - * @deprecated Use `AbpOAuthGuardFn` instead. + * @deprecated Use `abpOAuthGuard` instead. */ @Injectable({ providedIn: 'root', @@ -32,7 +32,7 @@ export class AbpOAuthGuard implements IAbpGuard { } -export const AbpOAuthGuardFn: CanActivateFn = ( +export const abpOAuthGuard: CanActivateFn = ( route: ActivatedRouteSnapshot, state: RouterStateSnapshot, ) => { diff --git a/npm/ng-packs/packages/oauth/src/lib/oauth.module.ts b/npm/ng-packs/packages/oauth/src/lib/oauth.module.ts index fb56c7fddd..a222b6327b 100644 --- a/npm/ng-packs/packages/oauth/src/lib/oauth.module.ts +++ b/npm/ng-packs/packages/oauth/src/lib/oauth.module.ts @@ -4,7 +4,7 @@ import { OAuthModule, OAuthStorage } from 'angular-oauth2-oidc'; import { AbpLocalStorageService, ApiInterceptor, - AuthGuardFn, + authGuard, AuthService, CHECK_AUTHENTICATION_STATE_FN_KEY, noop, @@ -14,7 +14,7 @@ import { AbpOAuthService } from './services'; import { OAuthConfigurationHandler } from './handlers/oauth-configuration.handler'; import { HTTP_INTERCEPTORS } from '@angular/common/http'; import { OAuthApiInterceptor } from './interceptors/api.interceptor'; -import { AbpOAuthGuardFn } from './guards/oauth.guard'; +import { abpOAuthGuard } from './guards/oauth.guard'; import { NavigateToManageProfileProvider } from './providers'; import { checkAccessToken, pipeToLogin } from './utils'; @@ -31,8 +31,8 @@ export class AbpOAuthModule { useClass: AbpOAuthService, }, { - provide: AuthGuardFn, - useValue: AbpOAuthGuardFn, + provide: authGuard, + useValue: abpOAuthGuard, }, { provide: ApiInterceptor, diff --git a/npm/ng-packs/packages/setting-management/src/lib/setting-management-routing.module.ts b/npm/ng-packs/packages/setting-management/src/lib/setting-management-routing.module.ts index f77f862fef..b642bc176e 100644 --- a/npm/ng-packs/packages/setting-management/src/lib/setting-management-routing.module.ts +++ b/npm/ng-packs/packages/setting-management/src/lib/setting-management-routing.module.ts @@ -1,7 +1,7 @@ import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; import { - AuthGuardFn, + authGuard, ReplaceableComponents, ReplaceableRouteContainerComponent, RouterOutletComponent, @@ -13,7 +13,7 @@ const routes: Routes = [ { path: '', component: RouterOutletComponent, - canActivate: [AuthGuardFn], + canActivate: [authGuard], children: [ { path: '', diff --git a/npm/ng-packs/packages/tenant-management/src/lib/guards/extensions.guard.ts b/npm/ng-packs/packages/tenant-management/src/lib/guards/extensions.guard.ts index d1be8c9a61..468a92485e 100644 --- a/npm/ng-packs/packages/tenant-management/src/lib/guards/extensions.guard.ts +++ b/npm/ng-packs/packages/tenant-management/src/lib/guards/extensions.guard.ts @@ -25,10 +25,9 @@ import { TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS, TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS, } from '../tokens/extensions.token'; -import { CanActivateFn } from '@angular/router'; /** - * @deprecated Use `TenantManagementExtensionsGuardFn` instead. + * @deprecated Use `tenantManagementExtensionsResolver` instead. */ @Injectable() export class TenantManagementExtensionsGuard implements IAbpGuard { diff --git a/npm/ng-packs/packages/tenant-management/src/lib/resolvers/extensions.resolver.ts b/npm/ng-packs/packages/tenant-management/src/lib/resolvers/extensions.resolver.ts index 50c13305dc..6831396898 100644 --- a/npm/ng-packs/packages/tenant-management/src/lib/resolvers/extensions.resolver.ts +++ b/npm/ng-packs/packages/tenant-management/src/lib/resolvers/extensions.resolver.ts @@ -22,7 +22,7 @@ import { DEFAULT_TENANT_MANAGEMENT_EDIT_FORM_PROPS, } from '../tokens'; -export const TenantManagementExtensionsResolver = () => { +export const tenantManagementExtensionsResolver = () => { const configState = inject(ConfigStateService); const extensions = inject(ExtensionsService); diff --git a/npm/ng-packs/packages/tenant-management/src/lib/tenant-management-routing.module.ts b/npm/ng-packs/packages/tenant-management/src/lib/tenant-management-routing.module.ts index 3db4c7c33d..e1ac10c95e 100644 --- a/npm/ng-packs/packages/tenant-management/src/lib/tenant-management-routing.module.ts +++ b/npm/ng-packs/packages/tenant-management/src/lib/tenant-management-routing.module.ts @@ -2,8 +2,8 @@ import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; import { - AuthGuardFn, - PermissionGuardFn, + authGuard, + permissionGuard, ReplaceableComponents, ReplaceableRouteContainerComponent, RouterOutletComponent, @@ -11,15 +11,15 @@ import { import { TenantsComponent } from './components/tenants/tenants.component'; import { eTenantManagementComponents } from './enums/components'; -import { TenantManagementExtensionsResolver } from './resolvers'; +import { tenantManagementExtensionsResolver } from './resolvers'; const routes: Routes = [ { path: '', redirectTo: 'tenants', pathMatch: 'full' }, { path: '', component: RouterOutletComponent, - canActivate: [AuthGuardFn, PermissionGuardFn, ], - resolve: [TenantManagementExtensionsResolver], + canActivate: [authGuard, permissionGuard, ], + resolve: [tenantManagementExtensionsResolver], children: [ { path: 'tenants', From 2600e5b99f4988842bddb362f0156eba1afeb66e Mon Sep 17 00:00:00 2001 From: Sinan997 Date: Thu, 2 Nov 2023 13:56:49 +0300 Subject: [PATCH 5/7] add method signs --- .../src/lib/guards/authentication-flow.guard.ts | 3 ++- .../src/lib/resolvers/extensions.resolver.ts | 5 +++-- npm/ng-packs/packages/account/src/public-api.ts | 1 + .../packages/core/src/lib/abstracts/auth.guard.ts | 2 +- .../core/src/lib/guards/permission.guard.ts | 14 +++++++++++--- .../src/lib/resolvers/extensions.resolver.ts | 5 +++-- npm/ng-packs/packages/identity/src/public-api.ts | 1 + .../packages/oauth/src/lib/guards/oauth.guard.ts | 10 +++++++--- .../src/lib/resolvers/extensions.resolver.ts | 5 +++-- .../src/lib/tenant-management-routing.module.ts | 2 +- .../packages/tenant-management/src/public-api.ts | 1 + 11 files changed, 34 insertions(+), 15 deletions(-) diff --git a/npm/ng-packs/packages/account/src/lib/guards/authentication-flow.guard.ts b/npm/ng-packs/packages/account/src/lib/guards/authentication-flow.guard.ts index 0ec529dd37..735ee44ee9 100644 --- a/npm/ng-packs/packages/account/src/lib/guards/authentication-flow.guard.ts +++ b/npm/ng-packs/packages/account/src/lib/guards/authentication-flow.guard.ts @@ -1,5 +1,6 @@ import { AuthService, IAbpGuard } from '@abp/ng.core'; import { Injectable, inject } from '@angular/core'; +import { CanActivateFn } from '@angular/router'; /** * @deprecated Use `authenticationFlowGuard` instead. @@ -16,7 +17,7 @@ export class AuthenticationFlowGuard implements IAbpGuard { } } -export const authenticationFlowGuard = () => { +export const authenticationFlowGuard: CanActivateFn = () => { const authService = inject(AuthService); if (authService.isInternalAuth) return true; diff --git a/npm/ng-packs/packages/account/src/lib/resolvers/extensions.resolver.ts b/npm/ng-packs/packages/account/src/lib/resolvers/extensions.resolver.ts index 7a08418b26..67e68b92b4 100644 --- a/npm/ng-packs/packages/account/src/lib/resolvers/extensions.resolver.ts +++ b/npm/ng-packs/packages/account/src/lib/resolvers/extensions.resolver.ts @@ -1,6 +1,6 @@ import { inject } from '@angular/core'; import { ConfigStateService } from '@abp/ng.core'; -import { map, tap } from 'rxjs'; +import { Observable, map, tap } from 'rxjs'; import { ExtensionsService, getObjectExtensionEntitiesFromStore, @@ -9,8 +9,9 @@ import { } from '@abp/ng.theme.shared/extensions'; import { eAccountComponents } from '../enums'; import { ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS, DEFAULT_ACCOUNT_FORM_PROPS } from '../tokens'; +import { ResolveFn } from '@angular/router'; -export const accountExtensionsResolver = () => { +export const accountExtensionsResolver: ResolveFn> = () => { const configState = inject(ConfigStateService); const extensions = inject(ExtensionsService); diff --git a/npm/ng-packs/packages/account/src/public-api.ts b/npm/ng-packs/packages/account/src/public-api.ts index a383562c15..f9df16ebc7 100644 --- a/npm/ng-packs/packages/account/src/public-api.ts +++ b/npm/ng-packs/packages/account/src/public-api.ts @@ -6,3 +6,4 @@ export * from './lib/models'; export * from './lib/services'; export * from './lib/tokens'; export * from './lib/utils'; +export * from './lib/resolvers'; diff --git a/npm/ng-packs/packages/core/src/lib/abstracts/auth.guard.ts b/npm/ng-packs/packages/core/src/lib/abstracts/auth.guard.ts index b80306cc6c..941798b8b0 100644 --- a/npm/ng-packs/packages/core/src/lib/abstracts/auth.guard.ts +++ b/npm/ng-packs/packages/core/src/lib/abstracts/auth.guard.ts @@ -20,4 +20,4 @@ export class AuthGuard implements IAbpGuard { export const authGuard: CanActivateFn = () => { console.error('You should add @abp/ng-oauth packages or create your own auth packages.'); return false; -}; \ No newline at end of file +}; diff --git a/npm/ng-packs/packages/core/src/lib/guards/permission.guard.ts b/npm/ng-packs/packages/core/src/lib/guards/permission.guard.ts index 197ad0f70c..76aebdded0 100644 --- a/npm/ng-packs/packages/core/src/lib/guards/permission.guard.ts +++ b/npm/ng-packs/packages/core/src/lib/guards/permission.guard.ts @@ -1,5 +1,10 @@ import { Injectable, inject } from '@angular/core'; -import { ActivatedRouteSnapshot, CanActivateFn, Router, RouterStateSnapshot } from '@angular/router'; +import { + ActivatedRouteSnapshot, + CanActivateFn, + Router, + RouterStateSnapshot, +} from '@angular/router'; import { HttpErrorResponse } from '@angular/common/http'; import { Observable, of } from 'rxjs'; @@ -44,7 +49,10 @@ export class PermissionGuard implements IAbpGuard { } } -export const permissionGuard: CanActivateFn = (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => { +export const permissionGuard: CanActivateFn = ( + route: ActivatedRouteSnapshot, + state: RouterStateSnapshot, +) => { const router = inject(Router); const routesService = inject(RoutesService); const oAuthService = inject(OAuthService); @@ -67,4 +75,4 @@ export const permissionGuard: CanActivateFn = (route: ActivatedRouteSnapshot, s } }), ); -} +}; diff --git a/npm/ng-packs/packages/identity/src/lib/resolvers/extensions.resolver.ts b/npm/ng-packs/packages/identity/src/lib/resolvers/extensions.resolver.ts index c1676d1c39..2f5a831d62 100644 --- a/npm/ng-packs/packages/identity/src/lib/resolvers/extensions.resolver.ts +++ b/npm/ng-packs/packages/identity/src/lib/resolvers/extensions.resolver.ts @@ -1,5 +1,5 @@ import { inject } from '@angular/core'; -import { map, tap } from 'rxjs'; +import { Observable, map, tap } from 'rxjs'; import { ConfigStateService } from '@abp/ng.core'; import { ExtensionsService, @@ -21,8 +21,9 @@ import { DEFAULT_IDENTITY_CREATE_FORM_PROPS, DEFAULT_IDENTITY_EDIT_FORM_PROPS, } from '../tokens'; +import { ResolveFn } from '@angular/router'; -export const identityExtensionsResolver = () => { +export const identityExtensionsResolver: ResolveFn> = () => { const configState = inject(ConfigStateService); const extensions = inject(ExtensionsService); diff --git a/npm/ng-packs/packages/identity/src/public-api.ts b/npm/ng-packs/packages/identity/src/public-api.ts index 7e85188004..4c4913f7eb 100644 --- a/npm/ng-packs/packages/identity/src/public-api.ts +++ b/npm/ng-packs/packages/identity/src/public-api.ts @@ -4,3 +4,4 @@ export * from './lib/guards'; export * from './lib/identity.module'; export * from './lib/models'; export * from './lib/tokens'; +export * from './lib/resolvers'; diff --git a/npm/ng-packs/packages/oauth/src/lib/guards/oauth.guard.ts b/npm/ng-packs/packages/oauth/src/lib/guards/oauth.guard.ts index f75dc4893a..86b901eb46 100644 --- a/npm/ng-packs/packages/oauth/src/lib/guards/oauth.guard.ts +++ b/npm/ng-packs/packages/oauth/src/lib/guards/oauth.guard.ts @@ -1,5 +1,10 @@ import { Injectable, inject } from '@angular/core'; -import { UrlTree, ActivatedRouteSnapshot, RouterStateSnapshot, CanActivateFn } from '@angular/router'; +import { + UrlTree, + ActivatedRouteSnapshot, + RouterStateSnapshot, + CanActivateFn, +} from '@angular/router'; import { Observable } from 'rxjs'; import { OAuthService } from 'angular-oauth2-oidc'; @@ -31,7 +36,6 @@ export class AbpOAuthGuard implements IAbpGuard { } } - export const abpOAuthGuard: CanActivateFn = ( route: ActivatedRouteSnapshot, state: RouterStateSnapshot, @@ -48,4 +52,4 @@ export const abpOAuthGuard: CanActivateFn = ( const params = { returnUrl: state.url }; authService.navigateToLogin(params); return false; -}; \ No newline at end of file +}; diff --git a/npm/ng-packs/packages/tenant-management/src/lib/resolvers/extensions.resolver.ts b/npm/ng-packs/packages/tenant-management/src/lib/resolvers/extensions.resolver.ts index 6831396898..98b8046d85 100644 --- a/npm/ng-packs/packages/tenant-management/src/lib/resolvers/extensions.resolver.ts +++ b/npm/ng-packs/packages/tenant-management/src/lib/resolvers/extensions.resolver.ts @@ -1,5 +1,5 @@ import { inject } from '@angular/core'; -import { map, tap } from 'rxjs'; +import { Observable, map, tap } from 'rxjs'; import { ConfigStateService } from '@abp/ng.core'; import { ExtensionsService, @@ -21,8 +21,9 @@ import { DEFAULT_TENANT_MANAGEMENT_CREATE_FORM_PROPS, DEFAULT_TENANT_MANAGEMENT_EDIT_FORM_PROPS, } from '../tokens'; +import { ResolveFn } from '@angular/router'; -export const tenantManagementExtensionsResolver = () => { +export const tenantManagementExtensionsResolver: ResolveFn> = () => { const configState = inject(ConfigStateService); const extensions = inject(ExtensionsService); diff --git a/npm/ng-packs/packages/tenant-management/src/lib/tenant-management-routing.module.ts b/npm/ng-packs/packages/tenant-management/src/lib/tenant-management-routing.module.ts index e1ac10c95e..2fcce5e108 100644 --- a/npm/ng-packs/packages/tenant-management/src/lib/tenant-management-routing.module.ts +++ b/npm/ng-packs/packages/tenant-management/src/lib/tenant-management-routing.module.ts @@ -18,7 +18,7 @@ const routes: Routes = [ { path: '', component: RouterOutletComponent, - canActivate: [authGuard, permissionGuard, ], + canActivate: [authGuard, permissionGuard], resolve: [tenantManagementExtensionsResolver], children: [ { diff --git a/npm/ng-packs/packages/tenant-management/src/public-api.ts b/npm/ng-packs/packages/tenant-management/src/public-api.ts index 6321ce8fae..f39c438435 100644 --- a/npm/ng-packs/packages/tenant-management/src/public-api.ts +++ b/npm/ng-packs/packages/tenant-management/src/public-api.ts @@ -4,3 +4,4 @@ export * from './lib/guards'; export * from './lib/models'; export * from './lib/tenant-management.module'; export * from './lib/tokens'; +export * from './lib/resolvers'; From ba70946e6cd2f2cd64c63f4282b9265cd59df9ce Mon Sep 17 00:00:00 2001 From: Sinan997 Date: Thu, 2 Nov 2023 14:43:35 +0300 Subject: [PATCH 6/7] change deprecated messages --- .../account/src/lib/guards/authentication-flow.guard.ts | 2 +- .../packages/account/src/lib/guards/extensions.guard.ts | 2 +- npm/ng-packs/packages/core/src/lib/abstracts/auth.guard.ts | 2 +- npm/ng-packs/packages/core/src/lib/guards/permission.guard.ts | 2 +- .../packages/identity/src/lib/guards/extensions.guard.ts | 2 +- npm/ng-packs/packages/oauth/src/lib/guards/oauth.guard.ts | 2 +- .../tenant-management/src/lib/guards/extensions.guard.ts | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/npm/ng-packs/packages/account/src/lib/guards/authentication-flow.guard.ts b/npm/ng-packs/packages/account/src/lib/guards/authentication-flow.guard.ts index 735ee44ee9..23c6d8c7e3 100644 --- a/npm/ng-packs/packages/account/src/lib/guards/authentication-flow.guard.ts +++ b/npm/ng-packs/packages/account/src/lib/guards/authentication-flow.guard.ts @@ -3,7 +3,7 @@ import { Injectable, inject } from '@angular/core'; import { CanActivateFn } from '@angular/router'; /** - * @deprecated Use `authenticationFlowGuard` instead. + * @deprecated Use `authenticationFlowGuard` *function* instead. */ @Injectable() export class AuthenticationFlowGuard implements IAbpGuard { diff --git a/npm/ng-packs/packages/account/src/lib/guards/extensions.guard.ts b/npm/ng-packs/packages/account/src/lib/guards/extensions.guard.ts index c3965c0ff6..43345bffc3 100644 --- a/npm/ng-packs/packages/account/src/lib/guards/extensions.guard.ts +++ b/npm/ng-packs/packages/account/src/lib/guards/extensions.guard.ts @@ -18,7 +18,7 @@ import { import { eAccountComponents } from '../enums/components'; /** - * @deprecated Use `accountExtensionsResolver` instead. + * @deprecated Use `accountExtensionsResolver` *function* instead. */ @Injectable() export class AccountExtensionsGuard implements IAbpGuard { diff --git a/npm/ng-packs/packages/core/src/lib/abstracts/auth.guard.ts b/npm/ng-packs/packages/core/src/lib/abstracts/auth.guard.ts index 941798b8b0..50473e4df1 100644 --- a/npm/ng-packs/packages/core/src/lib/abstracts/auth.guard.ts +++ b/npm/ng-packs/packages/core/src/lib/abstracts/auth.guard.ts @@ -5,7 +5,7 @@ import { IAbpGuard } from './abstract-guard'; import { CanActivateFn } from '@angular/router'; /** - * @deprecated Use `authGuard` instead. + * @deprecated Use `authGuard` *function* instead. */ @Injectable({ providedIn: 'root', diff --git a/npm/ng-packs/packages/core/src/lib/guards/permission.guard.ts b/npm/ng-packs/packages/core/src/lib/guards/permission.guard.ts index 76aebdded0..4762c19b3d 100644 --- a/npm/ng-packs/packages/core/src/lib/guards/permission.guard.ts +++ b/npm/ng-packs/packages/core/src/lib/guards/permission.guard.ts @@ -17,7 +17,7 @@ import { findRoute, getRoutePath } from '../utils/route-utils'; import { RoutesService, PermissionService, HttpErrorReporterService } from '../services'; /** - * @deprecated Use `permissionGuard` instead. + * @deprecated Use `permissionGuard` *function* instead. */ @Injectable({ providedIn: 'root', diff --git a/npm/ng-packs/packages/identity/src/lib/guards/extensions.guard.ts b/npm/ng-packs/packages/identity/src/lib/guards/extensions.guard.ts index b4c03bb8f6..74dab0745a 100644 --- a/npm/ng-packs/packages/identity/src/lib/guards/extensions.guard.ts +++ b/npm/ng-packs/packages/identity/src/lib/guards/extensions.guard.ts @@ -27,7 +27,7 @@ import { } from '../tokens/extensions.token'; /** - * @deprecated Use `identityExtensionsResolver` instead. + * @deprecated Use `identityExtensionsResolver` *function* instead. */ @Injectable() export class IdentityExtensionsGuard implements IAbpGuard { diff --git a/npm/ng-packs/packages/oauth/src/lib/guards/oauth.guard.ts b/npm/ng-packs/packages/oauth/src/lib/guards/oauth.guard.ts index 86b901eb46..6f751804cd 100644 --- a/npm/ng-packs/packages/oauth/src/lib/guards/oauth.guard.ts +++ b/npm/ng-packs/packages/oauth/src/lib/guards/oauth.guard.ts @@ -12,7 +12,7 @@ import { OAuthService } from 'angular-oauth2-oidc'; import { AuthService, IAbpGuard } from '@abp/ng.core'; /** - * @deprecated Use `abpOAuthGuard` instead. + * @deprecated Use `abpOAuthGuard` *function* instead. */ @Injectable({ providedIn: 'root', diff --git a/npm/ng-packs/packages/tenant-management/src/lib/guards/extensions.guard.ts b/npm/ng-packs/packages/tenant-management/src/lib/guards/extensions.guard.ts index 468a92485e..42e0b50d75 100644 --- a/npm/ng-packs/packages/tenant-management/src/lib/guards/extensions.guard.ts +++ b/npm/ng-packs/packages/tenant-management/src/lib/guards/extensions.guard.ts @@ -27,7 +27,7 @@ import { } from '../tokens/extensions.token'; /** - * @deprecated Use `tenantManagementExtensionsResolver` instead. + * @deprecated Use `tenantManagementExtensionsResolver` *function* instead. */ @Injectable() export class TenantManagementExtensionsGuard implements IAbpGuard { From 0d18e84d33defec7bf02df729829d7509ff5e87d Mon Sep 17 00:00:00 2001 From: Sinan997 Date: Fri, 3 Nov 2023 11:01:36 +0300 Subject: [PATCH 7/7] remove boolean return type in resolvers --- .../account/src/lib/resolvers/extensions.resolver.ts | 5 ++--- .../identity/src/lib/resolvers/extensions.resolver.ts | 5 ++--- .../src/lib/resolvers/extensions.resolver.ts | 5 ++--- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/npm/ng-packs/packages/account/src/lib/resolvers/extensions.resolver.ts b/npm/ng-packs/packages/account/src/lib/resolvers/extensions.resolver.ts index 67e68b92b4..19e29b1e54 100644 --- a/npm/ng-packs/packages/account/src/lib/resolvers/extensions.resolver.ts +++ b/npm/ng-packs/packages/account/src/lib/resolvers/extensions.resolver.ts @@ -1,6 +1,6 @@ import { inject } from '@angular/core'; import { ConfigStateService } from '@abp/ng.core'; -import { Observable, map, tap } from 'rxjs'; +import { map, tap } from 'rxjs'; import { ExtensionsService, getObjectExtensionEntitiesFromStore, @@ -11,7 +11,7 @@ import { eAccountComponents } from '../enums'; import { ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS, DEFAULT_ACCOUNT_FORM_PROPS } from '../tokens'; import { ResolveFn } from '@angular/router'; -export const accountExtensionsResolver: ResolveFn> = () => { +export const accountExtensionsResolver: ResolveFn = () => { const configState = inject(ConfigStateService); const extensions = inject(ExtensionsService); @@ -32,6 +32,5 @@ export const accountExtensionsResolver: ResolveFn> = () => { editFormContributors, ); }), - map(() => true), ); }; diff --git a/npm/ng-packs/packages/identity/src/lib/resolvers/extensions.resolver.ts b/npm/ng-packs/packages/identity/src/lib/resolvers/extensions.resolver.ts index 2f5a831d62..1a303e50c4 100644 --- a/npm/ng-packs/packages/identity/src/lib/resolvers/extensions.resolver.ts +++ b/npm/ng-packs/packages/identity/src/lib/resolvers/extensions.resolver.ts @@ -1,5 +1,5 @@ import { inject } from '@angular/core'; -import { Observable, map, tap } from 'rxjs'; +import { map, tap } from 'rxjs'; import { ConfigStateService } from '@abp/ng.core'; import { ExtensionsService, @@ -23,7 +23,7 @@ import { } from '../tokens'; import { ResolveFn } from '@angular/router'; -export const identityExtensionsResolver: ResolveFn> = () => { +export const identityExtensionsResolver: ResolveFn = () => { const configState = inject(ConfigStateService); const extensions = inject(ExtensionsService); @@ -71,6 +71,5 @@ export const identityExtensionsResolver: ResolveFn> = () => editFormContributors, ); }), - map(() => true), ); }; diff --git a/npm/ng-packs/packages/tenant-management/src/lib/resolvers/extensions.resolver.ts b/npm/ng-packs/packages/tenant-management/src/lib/resolvers/extensions.resolver.ts index 98b8046d85..609f048465 100644 --- a/npm/ng-packs/packages/tenant-management/src/lib/resolvers/extensions.resolver.ts +++ b/npm/ng-packs/packages/tenant-management/src/lib/resolvers/extensions.resolver.ts @@ -1,5 +1,5 @@ import { inject } from '@angular/core'; -import { Observable, map, tap } from 'rxjs'; +import { map, tap } from 'rxjs'; import { ConfigStateService } from '@abp/ng.core'; import { ExtensionsService, @@ -23,7 +23,7 @@ import { } from '../tokens'; import { ResolveFn } from '@angular/router'; -export const tenantManagementExtensionsResolver: ResolveFn> = () => { +export const tenantManagementExtensionsResolver: ResolveFn = () => { const configState = inject(ConfigStateService); const extensions = inject(ExtensionsService); @@ -71,6 +71,5 @@ export const tenantManagementExtensionsResolver: ResolveFn> editFormContributors, ); }), - map(() => true), ); };