@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.
- package/dist/cjs/index.js +7 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/integrations/repository/typeorm/permissionsChecker.d.ts +2 -1
- package/dist/cjs/types/platforms/nest/authentication/entityAuthorizationMiddleware.d.ts +2 -0
- package/dist/esm/index.js +7 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/integrations/repository/typeorm/permissionsChecker.d.ts +2 -1
- package/dist/esm/types/platforms/nest/authentication/entityAuthorizationMiddleware.d.ts +2 -0
- package/dist/index.d.ts +3 -1
- package/package.json +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IAuthenticationContext } from "../../../abstractions";
|
|
2
2
|
export declare class PermissionsChecker<TUserContext> {
|
|
3
|
-
|
|
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
|
-
|
|
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 {
|