@punks/backend-entity-manager 0.0.107 → 0.0.109

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/dist/cjs/index.js +53 -4
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/abstractions/authentication.d.ts +2 -2
  4. package/dist/cjs/types/abstractions/converters.d.ts +3 -2
  5. package/dist/cjs/types/platforms/nest/__test__/server/app/crmContacts/crmContact.actions.d.ts +8 -0
  6. package/dist/cjs/types/platforms/nest/__test__/server/app/crmContacts/crmContact.controller.d.ts +17 -0
  7. package/dist/cjs/types/platforms/nest/__test__/server/app/crmContacts/crmContact.converter.d.ts +9 -0
  8. package/dist/cjs/types/platforms/nest/__test__/server/app/crmContacts/crmContact.dto.d.ts +50 -0
  9. package/dist/cjs/types/platforms/nest/__test__/server/app/crmContacts/crmContact.module.d.ts +2 -0
  10. package/dist/cjs/types/platforms/nest/__test__/server/database/core/entities/crmContact.entity.d.ts +11 -0
  11. package/dist/cjs/types/platforms/nest/__test__/server/database/core/index.d.ts +4 -0
  12. package/dist/cjs/types/platforms/nest/__test__/server/database/core/repositories/crmContact.repository.d.ts +7 -0
  13. package/dist/cjs/types/platforms/nest/__test__/server/database/core/repositories.d.ts +2 -1
  14. package/dist/cjs/types/platforms/nest/__test__/server/entities/appCompanies/appCompany.query.d.ts +5 -5
  15. package/dist/cjs/types/platforms/nest/__test__/server/entities/appDirectories/appDirectory.query.d.ts +5 -5
  16. package/dist/cjs/types/platforms/nest/__test__/server/entities/appDivisions/appDivision.query.d.ts +5 -5
  17. package/dist/cjs/types/platforms/nest/__test__/server/entities/appEntityVersions/appEntityVersion.query.d.ts +5 -5
  18. package/dist/cjs/types/platforms/nest/__test__/server/entities/appOrganizations/appOrganization.query.d.ts +5 -5
  19. package/dist/cjs/types/platforms/nest/__test__/server/entities/appRoles/appRole.query.d.ts +6 -6
  20. package/dist/cjs/types/platforms/nest/__test__/server/entities/appTenants/appTenant.query.d.ts +5 -5
  21. package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserGroupMembers/appUserGroupMember.query.d.ts +5 -5
  22. package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserGroups/appUserGroup.query.d.ts +5 -5
  23. package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserProfiles/appUserProfile.query.d.ts +5 -5
  24. package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserRoles/appUserRole.query.d.ts +6 -6
  25. package/dist/cjs/types/platforms/nest/__test__/server/entities/appUsers/appUser.query.d.ts +5 -5
  26. package/dist/cjs/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.adapter.d.ts +7 -0
  27. package/dist/cjs/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.authentication.d.ts +11 -0
  28. package/dist/cjs/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.manager.d.ts +7 -0
  29. package/dist/cjs/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.models.d.ts +13 -0
  30. package/dist/cjs/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.module.d.ts +2 -0
  31. package/dist/cjs/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.query.d.ts +13 -0
  32. package/dist/cjs/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.serializer.d.ts +6 -0
  33. package/dist/cjs/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.types.d.ts +68 -0
  34. package/dist/cjs/types/platforms/nest/__test__/server/entities/foos/foo.query.d.ts +4 -5
  35. package/dist/cjs/types/platforms/nest/__test__/server/infrastructure/authentication/processors/entity-auth/index.d.ts +8 -1
  36. package/dist/cjs/types/platforms/nest/__test__/server/infrastructure/authentication/providers/context/index.d.ts +3 -3
  37. package/dist/cjs/types/platforms/nest/__test__/server/infrastructure/authentication/types.d.ts +3 -1
  38. package/dist/cjs/types/platforms/nest/__test__/tests/multitenancy/multitenancy-actions.test.d.ts +5 -0
  39. package/dist/cjs/types/platforms/nest/__test__/tests/ports.d.ts +1 -0
  40. package/dist/cjs/types/platforms/nest/extensions/authentication/guards/auth.d.ts +2 -0
  41. package/dist/cjs/types/platforms/nest/extensions/multi-tenancy/abstractions/entities.d.ts +10 -0
  42. package/dist/cjs/types/platforms/nest/extensions/multi-tenancy/abstractions/index.d.ts +1 -0
  43. package/dist/esm/index.js +53 -4
  44. package/dist/esm/index.js.map +1 -1
  45. package/dist/esm/types/abstractions/authentication.d.ts +2 -2
  46. package/dist/esm/types/abstractions/converters.d.ts +3 -2
  47. package/dist/esm/types/platforms/nest/__test__/server/app/crmContacts/crmContact.actions.d.ts +8 -0
  48. package/dist/esm/types/platforms/nest/__test__/server/app/crmContacts/crmContact.controller.d.ts +17 -0
  49. package/dist/esm/types/platforms/nest/__test__/server/app/crmContacts/crmContact.converter.d.ts +9 -0
  50. package/dist/esm/types/platforms/nest/__test__/server/app/crmContacts/crmContact.dto.d.ts +50 -0
  51. package/dist/esm/types/platforms/nest/__test__/server/app/crmContacts/crmContact.module.d.ts +2 -0
  52. package/dist/esm/types/platforms/nest/__test__/server/database/core/entities/crmContact.entity.d.ts +11 -0
  53. package/dist/esm/types/platforms/nest/__test__/server/database/core/index.d.ts +4 -0
  54. package/dist/esm/types/platforms/nest/__test__/server/database/core/repositories/crmContact.repository.d.ts +7 -0
  55. package/dist/esm/types/platforms/nest/__test__/server/database/core/repositories.d.ts +2 -1
  56. package/dist/esm/types/platforms/nest/__test__/server/entities/appCompanies/appCompany.query.d.ts +5 -5
  57. package/dist/esm/types/platforms/nest/__test__/server/entities/appDirectories/appDirectory.query.d.ts +5 -5
  58. package/dist/esm/types/platforms/nest/__test__/server/entities/appDivisions/appDivision.query.d.ts +5 -5
  59. package/dist/esm/types/platforms/nest/__test__/server/entities/appEntityVersions/appEntityVersion.query.d.ts +5 -5
  60. package/dist/esm/types/platforms/nest/__test__/server/entities/appOrganizations/appOrganization.query.d.ts +5 -5
  61. package/dist/esm/types/platforms/nest/__test__/server/entities/appRoles/appRole.query.d.ts +6 -6
  62. package/dist/esm/types/platforms/nest/__test__/server/entities/appTenants/appTenant.query.d.ts +5 -5
  63. package/dist/esm/types/platforms/nest/__test__/server/entities/appUserGroupMembers/appUserGroupMember.query.d.ts +5 -5
  64. package/dist/esm/types/platforms/nest/__test__/server/entities/appUserGroups/appUserGroup.query.d.ts +5 -5
  65. package/dist/esm/types/platforms/nest/__test__/server/entities/appUserProfiles/appUserProfile.query.d.ts +5 -5
  66. package/dist/esm/types/platforms/nest/__test__/server/entities/appUserRoles/appUserRole.query.d.ts +6 -6
  67. package/dist/esm/types/platforms/nest/__test__/server/entities/appUsers/appUser.query.d.ts +5 -5
  68. package/dist/esm/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.adapter.d.ts +7 -0
  69. package/dist/esm/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.authentication.d.ts +11 -0
  70. package/dist/esm/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.manager.d.ts +7 -0
  71. package/dist/esm/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.models.d.ts +13 -0
  72. package/dist/esm/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.module.d.ts +2 -0
  73. package/dist/esm/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.query.d.ts +13 -0
  74. package/dist/esm/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.serializer.d.ts +6 -0
  75. package/dist/esm/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.types.d.ts +68 -0
  76. package/dist/esm/types/platforms/nest/__test__/server/entities/foos/foo.query.d.ts +4 -5
  77. package/dist/esm/types/platforms/nest/__test__/server/infrastructure/authentication/processors/entity-auth/index.d.ts +8 -1
  78. package/dist/esm/types/platforms/nest/__test__/server/infrastructure/authentication/providers/context/index.d.ts +3 -3
  79. package/dist/esm/types/platforms/nest/__test__/server/infrastructure/authentication/types.d.ts +3 -1
  80. package/dist/esm/types/platforms/nest/__test__/tests/multitenancy/multitenancy-actions.test.d.ts +5 -0
  81. package/dist/esm/types/platforms/nest/__test__/tests/ports.d.ts +1 -0
  82. package/dist/esm/types/platforms/nest/extensions/authentication/guards/auth.d.ts +2 -0
  83. package/dist/esm/types/platforms/nest/extensions/multi-tenancy/abstractions/entities.d.ts +10 -0
  84. package/dist/esm/types/platforms/nest/extensions/multi-tenancy/abstractions/index.d.ts +1 -0
  85. package/dist/index.d.ts +17 -5
  86. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { NestEntityAuthorizationMiddleware } from "../../../../../..";
1
+ import { IMultiOrganizationEntity, NestEntityAuthorizationMiddleware } from "../../../../../..";
2
2
  import { IAuthorizationResult } from "../../../../../../../..";
3
3
  import { AppAuthContext, AppUserContext } from "../../types";
4
4
  export declare abstract class AppEntityAuthorizationMiddlewareBase<TEntity> extends NestEntityAuthorizationMiddleware<TEntity, AppAuthContext, AppUserContext> {
@@ -8,4 +8,11 @@ export declare abstract class AppEntityAuthorizationMiddlewareBase<TEntity> exte
8
8
  protected defaultCanUpdate(entity: Partial<TEntity>, context: AppAuthContext): Promise<IAuthorizationResult>;
9
9
  protected defaultCanDelete(entity: Partial<TEntity>, context: AppAuthContext): Promise<IAuthorizationResult>;
10
10
  protected defaultCanDeleteItems(context: AppAuthContext): Promise<IAuthorizationResult>;
11
+ protected organizationEntityCanSearch(context: AppAuthContext): Promise<IAuthorizationResult>;
12
+ protected organizationEntityCanRead(entity: IMultiOrganizationEntity, context: AppAuthContext): Promise<IAuthorizationResult>;
13
+ protected organizationEntityCanCreate(entity: IMultiOrganizationEntity, context: AppAuthContext): Promise<IAuthorizationResult>;
14
+ protected organizationEntityCanUpdate(entity: IMultiOrganizationEntity, context: AppAuthContext): Promise<IAuthorizationResult>;
15
+ protected organizationEntityCanDelete(entity: IMultiOrganizationEntity, context: AppAuthContext): Promise<IAuthorizationResult>;
16
+ protected organizationEntityCanDeleteItems(context: AppAuthContext): Promise<IAuthorizationResult>;
17
+ private isOrganizationMatching;
11
18
  }
@@ -1,8 +1,8 @@
1
- import { AppAuthContext } from "../../types";
1
+ import { AppUserContext } from "../../types";
2
2
  import { AppSessionService, IAuthenticationContext, IAuthenticationContextProvider } from "../../../../../../../..";
3
- export declare class AppAuthContextProvider implements IAuthenticationContextProvider<AppAuthContext> {
3
+ export declare class AppAuthContextProvider implements IAuthenticationContextProvider<AppUserContext> {
4
4
  private readonly appSessionService;
5
5
  constructor(appSessionService: AppSessionService);
6
- getContext(): Promise<IAuthenticationContext<AppAuthContext>>;
6
+ getContext(): Promise<IAuthenticationContext<AppUserContext>>;
7
7
  private getRequestAuth;
8
8
  }
@@ -5,7 +5,9 @@ export type AppUserInfo = {
5
5
  lastName: string;
6
6
  };
7
7
  export type AppUserContext = {
8
- organizationUid: string;
8
+ organizationId?: string;
9
+ organizationUid?: string;
10
+ tenantId: string;
9
11
  tenantUid: string;
10
12
  };
11
13
  export declare class AppAuthContext implements IAuthenticationContext<AppUserContext> {
@@ -0,0 +1,5 @@
1
+ import { AppTenantEntity } from "../../server/database/core/entities/appTenant.entity";
2
+ import { AppOrganizationEntity } from "../../server/database/core/entities/appOrganization.entity";
3
+ import { AppAuthContextProvider } from "../../server/infrastructure/authentication";
4
+ export declare const mockAdminUser: (auth: AppAuthContextProvider, tenant: AppTenantEntity) => void;
5
+ export declare const mockOrganizationUser: (auth: AppAuthContextProvider, organization: AppOrganizationEntity) => void;
@@ -6,6 +6,7 @@ export declare const NestTestServerPorts: {
6
6
  SessionTest: number;
7
7
  InitApiTest: number;
8
8
  VersioningApiTest: number;
9
+ MultiTenancyApiTest: number;
9
10
  TenantInitPipeline: number;
10
11
  CompanyInitPipeline: number;
11
12
  };
@@ -2,6 +2,7 @@ import { CanActivate, ExecutionContext } from "@nestjs/common";
2
2
  import { Reflector } from "@nestjs/core";
3
3
  export declare class AuthGuard implements CanActivate {
4
4
  private reflector;
5
+ private readonly logger;
5
6
  constructor(reflector: Reflector);
6
7
  canActivate(context: ExecutionContext): boolean;
7
8
  private isRoleMatching;
@@ -10,4 +11,5 @@ export declare class AuthGuard implements CanActivate {
10
11
  private getAllowedRoles;
11
12
  private getCurrentAuth;
12
13
  private getMetadata;
14
+ private getContextInfo;
13
15
  }
@@ -0,0 +1,10 @@
1
+ import { IAppCompany, IAppOrganization, IAppTenant } from "./models";
2
+ export interface IMultiTenantEntity {
3
+ tenant: IAppTenant;
4
+ }
5
+ export interface IMultiOrganizationEntity {
6
+ organization: IAppOrganization;
7
+ }
8
+ export interface IMultiCompanyEntity {
9
+ company: IAppCompany;
10
+ }
@@ -1 +1,2 @@
1
1
  export * from "./models";
2
+ export { IMultiCompanyEntity, IMultiOrganizationEntity, IMultiTenantEntity, } from "./entities";
package/dist/esm/index.js CHANGED
@@ -2394,24 +2394,53 @@ const AuthenticationEvents = {
2394
2394
  UserPasswordResetCompleted: `${AUTHENTICATION_EVENTS_NAMESPACE}:user.passwordResetCompleted`,
2395
2395
  };
2396
2396
 
2397
- let AuthGuard = class AuthGuard {
2397
+ var AuthGuard_1;
2398
+ let AuthGuard = AuthGuard_1 = class AuthGuard {
2398
2399
  constructor(reflector) {
2399
2400
  this.reflector = reflector;
2401
+ this.logger = Log.getLogger(AuthGuard_1.name);
2400
2402
  }
2401
2403
  canActivate(context) {
2402
2404
  const isPublic = this.getIsPublic(context);
2403
2405
  if (isPublic) {
2406
+ this.logger.debug(`Authorized:true -> public route`, this.getContextInfo({
2407
+ context,
2408
+ }));
2404
2409
  return true;
2405
2410
  }
2406
2411
  const auth = this.getCurrentAuth(context);
2407
2412
  const allowedRoles = this.getAllowedRoles(context);
2408
2413
  if (allowedRoles) {
2409
- return this.isRoleMatching(allowedRoles, auth?.roles ?? []);
2414
+ const isAllowed = this.isRoleMatching(allowedRoles, auth?.roles ?? []);
2415
+ this.logger.debug(`Authorized:${isAllowed} -> authorization guard`, {
2416
+ ...this.getContextInfo({
2417
+ context,
2418
+ roles: auth?.roles,
2419
+ user: auth?.user,
2420
+ }),
2421
+ allowedRoles,
2422
+ });
2423
+ return isAllowed;
2410
2424
  }
2411
2425
  const isForAllAuthenticated = this.getIsForAllAuthenticated(context);
2412
2426
  if (isForAllAuthenticated) {
2413
- return !!auth?.user;
2427
+ const isAuthenticated = !!auth?.user;
2428
+ this.logger.debug(`Authorized:${isAuthenticated} -> authentication guard`, {
2429
+ ...this.getContextInfo({
2430
+ context,
2431
+ roles: auth?.roles,
2432
+ user: auth?.user,
2433
+ }),
2434
+ });
2435
+ return isAuthenticated;
2414
2436
  }
2437
+ this.logger.debug(`Authorized:false -> auth guard`, {
2438
+ ...this.getContextInfo({
2439
+ context,
2440
+ roles: auth?.roles,
2441
+ user: auth?.user,
2442
+ }),
2443
+ });
2415
2444
  return false;
2416
2445
  }
2417
2446
  isRoleMatching(allowedRoles, userRoles) {
@@ -2441,8 +2470,28 @@ let AuthGuard = class AuthGuard {
2441
2470
  context.getClass(),
2442
2471
  ]);
2443
2472
  }
2473
+ getContextInfo({ context, user, roles, }) {
2474
+ return {
2475
+ request: {
2476
+ path: context.switchToHttp()?.getRequest()?.path,
2477
+ method: context.switchToHttp()?.getRequest()?.method,
2478
+ },
2479
+ ...(user
2480
+ ? {
2481
+ id: user.id,
2482
+ userName: user.userName,
2483
+ email: user.email,
2484
+ roles: roles?.map((role) => ({
2485
+ id: role.id,
2486
+ name: role.name,
2487
+ uid: role.uid,
2488
+ })),
2489
+ }
2490
+ : {}),
2491
+ };
2492
+ }
2444
2493
  };
2445
- AuthGuard = __decorate([
2494
+ AuthGuard = AuthGuard_1 = __decorate([
2446
2495
  Injectable(),
2447
2496
  __metadata("design:paramtypes", [Reflector])
2448
2497
  ], AuthGuard);