@duvdu-v1/duvdu 1.0.28 → 1.0.29

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.
@@ -0,0 +1,28 @@
1
+ /// <reference types="qs" />
2
+ /// <reference types="mongoose/types/aggregate" />
3
+ /// <reference types="mongoose/types/callback" />
4
+ /// <reference types="mongoose/types/collection" />
5
+ /// <reference types="mongoose/types/connection" />
6
+ /// <reference types="mongoose/types/cursor" />
7
+ /// <reference types="mongoose/types/document" />
8
+ /// <reference types="mongoose/types/error" />
9
+ /// <reference types="mongoose/types/expressions" />
10
+ /// <reference types="mongoose/types/helpers" />
11
+ /// <reference types="mongoose/types/middlewares" />
12
+ /// <reference types="mongoose/types/indexes" />
13
+ /// <reference types="mongoose/types/models" />
14
+ /// <reference types="mongoose/types/mongooseoptions" />
15
+ /// <reference types="mongoose/types/pipelinestage" />
16
+ /// <reference types="mongoose/types/populate" />
17
+ /// <reference types="mongoose/types/query" />
18
+ /// <reference types="mongoose/types/schemaoptions" />
19
+ /// <reference types="mongoose/types/schematypes" />
20
+ /// <reference types="mongoose/types/session" />
21
+ /// <reference types="mongoose/types/types" />
22
+ /// <reference types="mongoose/types/utility" />
23
+ /// <reference types="mongoose/types/validation" />
24
+ /// <reference types="mongoose/types/virtuals" />
25
+ /// <reference types="mongoose/types/inferschematype" />
26
+ import { RequestHandler } from 'express';
27
+ import { Model } from 'mongoose';
28
+ export declare const allowedTo: (planModel: Model<any>, roleMode: Model<any>, permission: string) => RequestHandler<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.allowedTo = void 0;
13
+ const unauthorized_error_1 = require("../errors/unauthorized-error");
14
+ const allowedTo = (planModel, roleMode, permission) => ((req, res, next) => __awaiter(void 0, void 0, void 0, function* () {
15
+ var _a;
16
+ const plan = yield planModel.findOne((_a = req.loggedUser) === null || _a === void 0 ? void 0 : _a.planId);
17
+ if (!plan)
18
+ return next(new unauthorized_error_1.UnauthorizedError('user dont have plain'));
19
+ const role = yield roleMode.findOne(plan.role);
20
+ if (!role)
21
+ return next(new unauthorized_error_1.UnauthorizedError('user dont have this role'));
22
+ if (!role.features.includes(permission))
23
+ return next(new unauthorized_error_1.UnauthorizedError('user not allowed access this route'));
24
+ return next();
25
+ }));
26
+ exports.allowedTo = allowedTo;
@@ -35,7 +35,7 @@ const auth = (modelName) => ((req, res, next) => __awaiter(void 0, void 0, void
35
35
  }
36
36
  try {
37
37
  const payload = jsonwebtoken_1.default.verify(req.session.jwt, process.env.JWT_KEY);
38
- req.loggedUser = { id: payload.id };
38
+ req.loggedUser = { id: payload.id, planId: payload.planId };
39
39
  return next();
40
40
  }
41
41
  catch (error) {
@@ -1,3 +1,4 @@
1
1
  export interface IjwtPayload {
2
2
  id: string;
3
+ planId: string;
3
4
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@duvdu-v1/duvdu",
3
- "version": "1.0.28",
3
+ "version": "1.0.29",
4
4
  "main": "./build/index.js",
5
5
  "types": "./build/index.d.ts",
6
6
  "files": [