@punks/backend-entity-manager 0.0.196 → 0.0.197

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.
@@ -1,4 +1,5 @@
1
1
  import { IAuthenticationContext } from "../../../abstractions";
2
2
  export declare class PermissionsChecker<TUserContext> {
3
- hasPermission(context: IAuthenticationContext<TUserContext>, permissions: string[]): boolean;
3
+ hasAny(context: IAuthenticationContext<TUserContext>, permissions: string[]): boolean;
4
+ hasAll(context: IAuthenticationContext<TUserContext>, permissions: string[]): boolean;
4
5
  }
@@ -1,5 +1,7 @@
1
1
  import { IAuthenticationContext, IAuthorizationResult, IEntityAuthorizationMiddleware } from "../../../abstractions";
2
+ import { PermissionsChecker } from "../../../integrations/repository/typeorm/permissionsChecker";
2
3
  export declare abstract class NestEntityAuthorizationMiddleware<TEntity, TAuthenticationContext extends IAuthenticationContext<TUserContext>, TUserContext> implements IEntityAuthorizationMiddleware<TEntity, TAuthenticationContext, TUserContext> {
4
+ protected permissions: PermissionsChecker<TUserContext>;
3
5
  abstract canSearch(context: TAuthenticationContext): Promise<IAuthorizationResult>;
4
6
  abstract canRead(entity: Partial<TEntity>, context: TAuthenticationContext): Promise<IAuthorizationResult>;
5
7
  abstract canCreate(entity: Partial<TEntity>, context: TAuthenticationContext): Promise<IAuthorizationResult>;
package/dist/esm/index.js CHANGED
@@ -2828,9 +2828,12 @@ class QueryClauseBuilder {
2828
2828
  }
2829
2829
 
2830
2830
  class PermissionsChecker {
2831
- hasPermission(context, permissions) {
2831
+ hasAny(context, permissions) {
2832
2832
  return (context.userPermissions?.some((p) => permissions.includes(p.uid)) ?? false);
2833
2833
  }
2834
+ hasAll(context, permissions) {
2835
+ return (permissions.every((p) => context.userPermissions?.some((up) => up.uid === p)) ?? false);
2836
+ }
2834
2837
  }
2835
2838
 
2836
2839
  class TypeOrmQueryBuilder extends QueryBuilderBase {
@@ -3175,6 +3178,9 @@ class TypeOrmRepository {
3175
3178
  }
3176
3179
 
3177
3180
  class NestEntityAuthorizationMiddleware {
3181
+ constructor() {
3182
+ this.permissions = new PermissionsChecker();
3183
+ }
3178
3184
  }
3179
3185
 
3180
3186
  class NestEntityActions {