@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.
- package/dist/cjs/index.js +53 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/abstractions/authentication.d.ts +2 -2
- package/dist/cjs/types/abstractions/converters.d.ts +3 -2
- package/dist/cjs/types/platforms/nest/__test__/server/app/crmContacts/crmContact.actions.d.ts +8 -0
- package/dist/cjs/types/platforms/nest/__test__/server/app/crmContacts/crmContact.controller.d.ts +17 -0
- package/dist/cjs/types/platforms/nest/__test__/server/app/crmContacts/crmContact.converter.d.ts +9 -0
- package/dist/cjs/types/platforms/nest/__test__/server/app/crmContacts/crmContact.dto.d.ts +50 -0
- package/dist/cjs/types/platforms/nest/__test__/server/app/crmContacts/crmContact.module.d.ts +2 -0
- package/dist/cjs/types/platforms/nest/__test__/server/database/core/entities/crmContact.entity.d.ts +11 -0
- package/dist/cjs/types/platforms/nest/__test__/server/database/core/index.d.ts +4 -0
- package/dist/cjs/types/platforms/nest/__test__/server/database/core/repositories/crmContact.repository.d.ts +7 -0
- package/dist/cjs/types/platforms/nest/__test__/server/database/core/repositories.d.ts +2 -1
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appCompanies/appCompany.query.d.ts +5 -5
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appDirectories/appDirectory.query.d.ts +5 -5
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appDivisions/appDivision.query.d.ts +5 -5
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appEntityVersions/appEntityVersion.query.d.ts +5 -5
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appOrganizations/appOrganization.query.d.ts +5 -5
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appRoles/appRole.query.d.ts +6 -6
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appTenants/appTenant.query.d.ts +5 -5
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserGroupMembers/appUserGroupMember.query.d.ts +5 -5
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserGroups/appUserGroup.query.d.ts +5 -5
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserProfiles/appUserProfile.query.d.ts +5 -5
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserRoles/appUserRole.query.d.ts +6 -6
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appUsers/appUser.query.d.ts +5 -5
- package/dist/cjs/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.adapter.d.ts +7 -0
- package/dist/cjs/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.authentication.d.ts +11 -0
- package/dist/cjs/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.manager.d.ts +7 -0
- package/dist/cjs/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.models.d.ts +13 -0
- package/dist/cjs/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.module.d.ts +2 -0
- package/dist/cjs/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.query.d.ts +13 -0
- package/dist/cjs/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.serializer.d.ts +6 -0
- package/dist/cjs/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.types.d.ts +68 -0
- package/dist/cjs/types/platforms/nest/__test__/server/entities/foos/foo.query.d.ts +4 -5
- package/dist/cjs/types/platforms/nest/__test__/server/infrastructure/authentication/processors/entity-auth/index.d.ts +8 -1
- package/dist/cjs/types/platforms/nest/__test__/server/infrastructure/authentication/providers/context/index.d.ts +3 -3
- package/dist/cjs/types/platforms/nest/__test__/server/infrastructure/authentication/types.d.ts +3 -1
- package/dist/cjs/types/platforms/nest/__test__/tests/multitenancy/multitenancy-actions.test.d.ts +5 -0
- package/dist/cjs/types/platforms/nest/__test__/tests/ports.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/extensions/authentication/guards/auth.d.ts +2 -0
- package/dist/cjs/types/platforms/nest/extensions/multi-tenancy/abstractions/entities.d.ts +10 -0
- package/dist/cjs/types/platforms/nest/extensions/multi-tenancy/abstractions/index.d.ts +1 -0
- package/dist/esm/index.js +53 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/abstractions/authentication.d.ts +2 -2
- package/dist/esm/types/abstractions/converters.d.ts +3 -2
- package/dist/esm/types/platforms/nest/__test__/server/app/crmContacts/crmContact.actions.d.ts +8 -0
- package/dist/esm/types/platforms/nest/__test__/server/app/crmContacts/crmContact.controller.d.ts +17 -0
- package/dist/esm/types/platforms/nest/__test__/server/app/crmContacts/crmContact.converter.d.ts +9 -0
- package/dist/esm/types/platforms/nest/__test__/server/app/crmContacts/crmContact.dto.d.ts +50 -0
- package/dist/esm/types/platforms/nest/__test__/server/app/crmContacts/crmContact.module.d.ts +2 -0
- package/dist/esm/types/platforms/nest/__test__/server/database/core/entities/crmContact.entity.d.ts +11 -0
- package/dist/esm/types/platforms/nest/__test__/server/database/core/index.d.ts +4 -0
- package/dist/esm/types/platforms/nest/__test__/server/database/core/repositories/crmContact.repository.d.ts +7 -0
- package/dist/esm/types/platforms/nest/__test__/server/database/core/repositories.d.ts +2 -1
- package/dist/esm/types/platforms/nest/__test__/server/entities/appCompanies/appCompany.query.d.ts +5 -5
- package/dist/esm/types/platforms/nest/__test__/server/entities/appDirectories/appDirectory.query.d.ts +5 -5
- package/dist/esm/types/platforms/nest/__test__/server/entities/appDivisions/appDivision.query.d.ts +5 -5
- package/dist/esm/types/platforms/nest/__test__/server/entities/appEntityVersions/appEntityVersion.query.d.ts +5 -5
- package/dist/esm/types/platforms/nest/__test__/server/entities/appOrganizations/appOrganization.query.d.ts +5 -5
- package/dist/esm/types/platforms/nest/__test__/server/entities/appRoles/appRole.query.d.ts +6 -6
- package/dist/esm/types/platforms/nest/__test__/server/entities/appTenants/appTenant.query.d.ts +5 -5
- package/dist/esm/types/platforms/nest/__test__/server/entities/appUserGroupMembers/appUserGroupMember.query.d.ts +5 -5
- package/dist/esm/types/platforms/nest/__test__/server/entities/appUserGroups/appUserGroup.query.d.ts +5 -5
- package/dist/esm/types/platforms/nest/__test__/server/entities/appUserProfiles/appUserProfile.query.d.ts +5 -5
- package/dist/esm/types/platforms/nest/__test__/server/entities/appUserRoles/appUserRole.query.d.ts +6 -6
- package/dist/esm/types/platforms/nest/__test__/server/entities/appUsers/appUser.query.d.ts +5 -5
- package/dist/esm/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.adapter.d.ts +7 -0
- package/dist/esm/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.authentication.d.ts +11 -0
- package/dist/esm/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.manager.d.ts +7 -0
- package/dist/esm/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.models.d.ts +13 -0
- package/dist/esm/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.module.d.ts +2 -0
- package/dist/esm/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.query.d.ts +13 -0
- package/dist/esm/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.serializer.d.ts +6 -0
- package/dist/esm/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.types.d.ts +68 -0
- package/dist/esm/types/platforms/nest/__test__/server/entities/foos/foo.query.d.ts +4 -5
- package/dist/esm/types/platforms/nest/__test__/server/infrastructure/authentication/processors/entity-auth/index.d.ts +8 -1
- package/dist/esm/types/platforms/nest/__test__/server/infrastructure/authentication/providers/context/index.d.ts +3 -3
- package/dist/esm/types/platforms/nest/__test__/server/infrastructure/authentication/types.d.ts +3 -1
- package/dist/esm/types/platforms/nest/__test__/tests/multitenancy/multitenancy-actions.test.d.ts +5 -0
- package/dist/esm/types/platforms/nest/__test__/tests/ports.d.ts +1 -0
- package/dist/esm/types/platforms/nest/extensions/authentication/guards/auth.d.ts +2 -0
- package/dist/esm/types/platforms/nest/extensions/multi-tenancy/abstractions/entities.d.ts +10 -0
- package/dist/esm/types/platforms/nest/extensions/multi-tenancy/abstractions/index.d.ts +1 -0
- package/dist/index.d.ts +17 -5
- 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 {
|
|
1
|
+
import { AppUserContext } from "../../types";
|
|
2
2
|
import { AppSessionService, IAuthenticationContext, IAuthenticationContextProvider } from "../../../../../../../..";
|
|
3
|
-
export declare class AppAuthContextProvider implements IAuthenticationContextProvider<
|
|
3
|
+
export declare class AppAuthContextProvider implements IAuthenticationContextProvider<AppUserContext> {
|
|
4
4
|
private readonly appSessionService;
|
|
5
5
|
constructor(appSessionService: AppSessionService);
|
|
6
|
-
getContext(): Promise<IAuthenticationContext<
|
|
6
|
+
getContext(): Promise<IAuthenticationContext<AppUserContext>>;
|
|
7
7
|
private getRequestAuth;
|
|
8
8
|
}
|
package/dist/cjs/types/platforms/nest/__test__/server/infrastructure/authentication/types.d.ts
CHANGED
|
@@ -5,7 +5,9 @@ export type AppUserInfo = {
|
|
|
5
5
|
lastName: string;
|
|
6
6
|
};
|
|
7
7
|
export type AppUserContext = {
|
|
8
|
-
|
|
8
|
+
organizationId?: string;
|
|
9
|
+
organizationUid?: string;
|
|
10
|
+
tenantId: string;
|
|
9
11
|
tenantUid: string;
|
|
10
12
|
};
|
|
11
13
|
export declare class AppAuthContext implements IAuthenticationContext<AppUserContext> {
|
package/dist/cjs/types/platforms/nest/__test__/tests/multitenancy/multitenancy-actions.test.d.ts
ADDED
|
@@ -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;
|
|
@@ -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
|
+
}
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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);
|