sentinel-nestjs-core 0.1.8 → 0.1.9
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/permission/guard/permission.guard.d.ts +1 -1
- package/dist/permission/guard/permission.guard.js +19 -13
- package/dist/permission/guard/permission.guard.js.map +1 -1
- package/dist/permission/strategy/jwt.strategy.js +0 -1
- package/dist/permission/strategy/jwt.strategy.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CanActivate, ExecutionContext } from '@nestjs/common';
|
|
2
2
|
import { Reflector } from '@nestjs/core';
|
|
3
3
|
import { LoggerAppService } from '../../logger/logger.service';
|
|
4
|
-
import { SentinelPermissionOptions } from
|
|
4
|
+
import { SentinelPermissionOptions } from '../interfaces/sentinel-permission-options.interface';
|
|
5
5
|
export declare class PermissionGuard implements CanActivate {
|
|
6
6
|
private readonly reflector;
|
|
7
7
|
private readonly logger;
|
|
@@ -27,37 +27,43 @@ let PermissionGuard = class PermissionGuard {
|
|
|
27
27
|
canActivate(context) {
|
|
28
28
|
var _a, _b;
|
|
29
29
|
const { resource, action } = this.reflector.get(permission_decorator_1.PERMISSION_METADATA, context.getHandler()) || {};
|
|
30
|
-
if (!resource || !action)
|
|
30
|
+
if (!resource || !action) {
|
|
31
31
|
return true;
|
|
32
|
+
}
|
|
32
33
|
const request = context.switchToHttp().getRequest();
|
|
33
34
|
const user = request.user;
|
|
34
|
-
if (!
|
|
35
|
-
this.logger.warn(`
|
|
36
|
-
|
|
35
|
+
if (!user) {
|
|
36
|
+
this.logger.warn(`Aucun utilisateur détecté dans la requête`);
|
|
37
|
+
throw new common_1.ForbiddenException(`Utilisateur non authentifié`);
|
|
38
|
+
}
|
|
39
|
+
if (!user.permissions) {
|
|
40
|
+
this.logger.warn(`Aucune permission trouvée pour l'utilisateur ${user.username}`);
|
|
41
|
+
throw new common_1.ForbiddenException(`Permissions introuvables pour l'utilisateur`);
|
|
37
42
|
}
|
|
38
43
|
const currentSite = this.options.siteSlug;
|
|
39
44
|
if (!currentSite) {
|
|
40
|
-
this.logger.warn(`Aucun site courant configuré dans
|
|
41
|
-
|
|
45
|
+
this.logger.warn(`Aucun site courant configuré dans SentinelPermissionOptions`);
|
|
46
|
+
throw new common_1.ForbiddenException(`Impossible de déterminer le site courant`);
|
|
42
47
|
}
|
|
43
48
|
const sitePermissions = (_b = (_a = user.permissions.permissions) === null || _a === void 0 ? void 0 : _a[currentSite]) !== null && _b !== void 0 ? _b : [];
|
|
44
49
|
if (!Array.isArray(sitePermissions)) {
|
|
45
|
-
this.logger.warn(`
|
|
46
|
-
|
|
50
|
+
this.logger.warn(`Permissions invalides pour le site ${currentSite}`);
|
|
51
|
+
throw new common_1.ForbiddenException(`Permissions invalides pour ce site`);
|
|
47
52
|
}
|
|
48
|
-
const perm =
|
|
53
|
+
const perm = sitePermissions.find((p) => p.slug === resource);
|
|
49
54
|
if (!perm) {
|
|
50
|
-
this.logger.warn(`Permission manquante : ${resource}
|
|
51
|
-
|
|
55
|
+
this.logger.warn(`Permission manquante : ressource="${resource}" site="${currentSite}"`);
|
|
56
|
+
throw new common_1.ForbiddenException(`L'utilisateur n'a pas accès à la ressource "${resource}"`);
|
|
52
57
|
}
|
|
53
58
|
const ownBit = permission_map_1.ACTION_BITS[`${action}:own`];
|
|
54
59
|
const allBit = permission_map_1.ACTION_BITS[`${action}:all`];
|
|
55
60
|
const authorized = (perm.bitmask & ownBit) === ownBit ||
|
|
56
61
|
(perm.bitmask & allBit) === allBit;
|
|
57
62
|
if (!authorized) {
|
|
58
|
-
this.logger.warn(`Accès refusé
|
|
63
|
+
this.logger.warn(`Accès refusé : ${resource}:${action} | site=${currentSite} | bitmask=${perm.bitmask}`);
|
|
64
|
+
throw new common_1.ForbiddenException(`L'utilisateur n'a pas la permission d'effectuer "${action}" sur "${resource}"`);
|
|
59
65
|
}
|
|
60
|
-
return
|
|
66
|
+
return true;
|
|
61
67
|
}
|
|
62
68
|
};
|
|
63
69
|
exports.PermissionGuard = PermissionGuard;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission.guard.js","sourceRoot":"","sources":["../../../src/permission/guard/permission.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"permission.guard.js","sourceRoot":"","sources":["../../../src/permission/guard/permission.guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -72,7 +72,6 @@ let JwtStrategy = class JwtStrategy extends (0, passport_1.PassportStrategy)(pas
|
|
|
72
72
|
return done(new common_1.UnauthorizedException('Clé publique introuvable'));
|
|
73
73
|
}
|
|
74
74
|
this.logger.log(`Clé publique trouvée pour kid=${kid}`);
|
|
75
|
-
this.logger.log('test');
|
|
76
75
|
done(null, publicKey);
|
|
77
76
|
}
|
|
78
77
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt.strategy.js","sourceRoot":"","sources":["../../../src/permission/strategy/jwt.strategy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkEA,2CAGwB;AACxB,+CAAoD;AACpD,+CAAoD;AACpD,kDAAoC;AAEpC,6DAAyD;AAEzD,gEAA+D;AAGxD,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,IAAA,2BAAgB,EAAC,uBAAQ,CAAC;IACzD,YACmB,UAAsB,EACtB,MAAwB;QAEzC,MAAM,SAAS,GAAc,OAAO,CAAC;QAErC,KAAK,CAAC;YACJ,cAAc,EAAE,yBAAU,CAAC,2BAA2B,EAAE;YACxD,gBAAgB,EAAE,KAAK;YACvB,UAAU,EAAE,CAAC,SAAS,CAAC;YACvB,mBAAmB,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE;;gBACxD,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC5D,IAAI,CAAC,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,0CAAE,GAAG,CAAA,EAAE,CAAC;wBAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;wBACjD,OAAO,IAAI,CAAC,IAAI,8BAAqB,CAAC,+BAA+B,CAAC,CAAC,CAAC;oBAC1E,CAAC;oBAED,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;oBAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kCAAkC,GAAG,EAAE,CAAC,CAAC;oBAEzD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;oBAC1D,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,wCAAwC,GAAG,EAAE,CAAC,CAAC;wBAC/D,OAAO,IAAI,CAAC,IAAI,8BAAqB,CAAC,0BAA0B,CAAC,CAAC,CAAC;oBACrE,CAAC;oBAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iCAAiC,GAAG,EAAE,CAAC,CAAC;oBACxD,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"jwt.strategy.js","sourceRoot":"","sources":["../../../src/permission/strategy/jwt.strategy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkEA,2CAGwB;AACxB,+CAAoD;AACpD,+CAAoD;AACpD,kDAAoC;AAEpC,6DAAyD;AAEzD,gEAA+D;AAGxD,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,IAAA,2BAAgB,EAAC,uBAAQ,CAAC;IACzD,YACmB,UAAsB,EACtB,MAAwB;QAEzC,MAAM,SAAS,GAAc,OAAO,CAAC;QAErC,KAAK,CAAC;YACJ,cAAc,EAAE,yBAAU,CAAC,2BAA2B,EAAE;YACxD,gBAAgB,EAAE,KAAK;YACvB,UAAU,EAAE,CAAC,SAAS,CAAC;YACvB,mBAAmB,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE;;gBACxD,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC5D,IAAI,CAAC,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,0CAAE,GAAG,CAAA,EAAE,CAAC;wBAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;wBACjD,OAAO,IAAI,CAAC,IAAI,8BAAqB,CAAC,+BAA+B,CAAC,CAAC,CAAC;oBAC1E,CAAC;oBAED,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;oBAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kCAAkC,GAAG,EAAE,CAAC,CAAC;oBAEzD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;oBAC1D,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,wCAAwC,GAAG,EAAE,CAAC,CAAC;wBAC/D,OAAO,IAAI,CAAC,IAAI,8BAAqB,CAAC,0BAA0B,CAAC,CAAC,CAAC;oBACrE,CAAC;oBAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iCAAiC,GAAG,EAAE,CAAC,CAAC;oBACxD,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBACxB,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;oBACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAE,CAAC;oBAC1F,IAAI,CAAC,IAAI,8BAAqB,CAAC,0CAA0C,CAAC,CAAC,CAAC;gBAC9E,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QAlCc,eAAU,GAAV,UAAU,CAAY;QACtB,WAAM,GAAN,MAAM,CAAkB;QAmCzC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAgB;QAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,0BAA0B,OAAO,CAAC,QAAQ,SAAS,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAEnF,OAAO;YACL,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,CAAC;IACJ,CAAC;CACF,CAAA;AAnDY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;qCAGoB,wBAAU;QACd,iCAAgB;GAHhC,WAAW,CAmDvB"}
|