Browse Source

move extensions guards add resolvers

pull/18005/head
Sinan997 3 years ago
parent
commit
7926b073ec
  1. 6
      npm/ng-packs/packages/account/src/lib/account-routing.module.ts
  2. 27
      npm/ng-packs/packages/account/src/lib/guards/extensions.guard.ts
  3. 31
      npm/ng-packs/packages/account/src/lib/resolvers/extensions.resolver.ts
  4. 1
      npm/ng-packs/packages/account/src/lib/resolvers/index.ts
  5. 54
      npm/ng-packs/packages/identity/src/lib/guards/extensions.guard.ts
  6. 5
      npm/ng-packs/packages/identity/src/lib/identity-routing.module.ts
  7. 58
      npm/ng-packs/packages/identity/src/lib/resolvers/extensions.resolver.ts
  8. 1
      npm/ng-packs/packages/identity/src/lib/resolvers/index.ts
  9. 50
      npm/ng-packs/packages/tenant-management/src/lib/guards/extensions.guard.ts
  10. 59
      npm/ng-packs/packages/tenant-management/src/lib/resolvers/extensions.resolver.ts
  11. 1
      npm/ng-packs/packages/tenant-management/src/lib/resolvers/index.ts
  12. 5
      npm/ng-packs/packages/tenant-management/src/lib/tenant-management-routing.module.ts

6
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,

27
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),
);
};

31
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),
);
};

1
npm/ng-packs/packages/account/src/lib/resolvers/index.ts

@ -0,0 +1 @@
export * from './extensions.resolver'

54
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),
);
};

5
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',

58
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),
);
};

1
npm/ng-packs/packages/identity/src/lib/resolvers/index.ts

@ -0,0 +1 @@
export * from './extensions.resolver'

50
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),
);
};

59
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),
);
};

1
npm/ng-packs/packages/tenant-management/src/lib/resolvers/index.ts

@ -0,0 +1 @@
export * from './extensions.resolver'

5
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',

Loading…
Cancel
Save