@intlayer/backend 3.0.2 → 3.1.0

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.
Files changed (189) hide show
  1. package/dist/cjs/controllers/dictionary.controller.cjs +50 -18
  2. package/dist/cjs/controllers/dictionary.controller.cjs.map +1 -1
  3. package/dist/cjs/controllers/organization.controller.cjs +71 -12
  4. package/dist/cjs/controllers/organization.controller.cjs.map +1 -1
  5. package/dist/cjs/controllers/project.controller.cjs +117 -31
  6. package/dist/cjs/controllers/project.controller.cjs.map +1 -1
  7. package/dist/cjs/controllers/projectAccessKey.controller.cjs +30 -10
  8. package/dist/cjs/controllers/projectAccessKey.controller.cjs.map +1 -1
  9. package/dist/cjs/controllers/sessionAuth.controller.cjs +16 -7
  10. package/dist/cjs/controllers/sessionAuth.controller.cjs.map +1 -1
  11. package/dist/cjs/controllers/user.controller.cjs +9 -17
  12. package/dist/cjs/controllers/user.controller.cjs.map +1 -1
  13. package/dist/cjs/export.cjs.map +1 -1
  14. package/dist/cjs/index.cjs +3 -2
  15. package/dist/cjs/index.cjs.map +1 -1
  16. package/dist/cjs/middlewares/oAuth2.middleware.cjs +10 -0
  17. package/dist/cjs/middlewares/oAuth2.middleware.cjs.map +1 -1
  18. package/dist/cjs/middlewares/sessionAuth.middleware.cjs +49 -7
  19. package/dist/cjs/middlewares/sessionAuth.middleware.cjs.map +1 -1
  20. package/dist/cjs/{middlewares/admin.middleware.cjs → models/plan.moddel.cjs} +9 -22
  21. package/dist/cjs/models/plan.moddel.cjs.map +1 -0
  22. package/dist/cjs/schemas/plans.schema.cjs +62 -0
  23. package/dist/cjs/schemas/plans.schema.cjs.map +1 -0
  24. package/dist/cjs/schemas/project.schema.cjs +14 -1
  25. package/dist/cjs/schemas/project.schema.cjs.map +1 -1
  26. package/dist/cjs/schemas/user.schema.cjs +4 -0
  27. package/dist/cjs/schemas/user.schema.cjs.map +1 -1
  28. package/dist/cjs/services/dictionary.service.cjs.map +1 -1
  29. package/dist/cjs/services/oAuth2.service.cjs +16 -8
  30. package/dist/cjs/services/oAuth2.service.cjs.map +1 -1
  31. package/dist/cjs/services/organization.service.cjs +8 -0
  32. package/dist/cjs/services/organization.service.cjs.map +1 -1
  33. package/dist/cjs/services/plans.service.cjs +72 -0
  34. package/dist/cjs/services/plans.service.cjs.map +1 -0
  35. package/dist/cjs/services/project.service.cjs +8 -2
  36. package/dist/cjs/services/project.service.cjs.map +1 -1
  37. package/dist/cjs/services/projectAccessKey.service.cjs +42 -10
  38. package/dist/cjs/services/projectAccessKey.service.cjs.map +1 -1
  39. package/dist/cjs/services/sessionAuth.service.cjs.map +1 -1
  40. package/dist/cjs/services/subscription.service.cjs +118 -0
  41. package/dist/cjs/services/subscription.service.cjs.map +1 -0
  42. package/dist/cjs/services/user.service.cjs.map +1 -1
  43. package/dist/cjs/types/dictionary.types.cjs.map +1 -1
  44. package/dist/cjs/types/organization.types.cjs.map +1 -1
  45. package/dist/cjs/types/plan.types.cjs +17 -0
  46. package/dist/cjs/types/plan.types.cjs.map +1 -0
  47. package/dist/cjs/types/project.types.cjs.map +1 -1
  48. package/dist/cjs/types/user.types.cjs.map +1 -1
  49. package/dist/cjs/utils/errors/ErrorHandler.cjs +1 -1
  50. package/dist/cjs/utils/errors/ErrorHandler.cjs.map +1 -1
  51. package/dist/cjs/utils/errors/errorCodes.cjs +222 -1
  52. package/dist/cjs/utils/errors/errorCodes.cjs.map +1 -1
  53. package/dist/cjs/utils/mapper/organization.cjs.map +1 -1
  54. package/dist/cjs/utils/mapper/project.cjs +19 -3
  55. package/dist/cjs/utils/mapper/project.cjs.map +1 -1
  56. package/dist/cjs/utils/mapper/user.cjs.map +1 -1
  57. package/dist/cjs/utils/plan.cjs +70 -0
  58. package/dist/cjs/utils/plan.cjs.map +1 -0
  59. package/dist/cjs/webhooks/stripe.cjs +94 -0
  60. package/dist/cjs/webhooks/stripe.cjs.map +1 -0
  61. package/dist/esm/controllers/dictionary.controller.mjs +50 -18
  62. package/dist/esm/controllers/dictionary.controller.mjs.map +1 -1
  63. package/dist/esm/controllers/organization.controller.mjs +71 -12
  64. package/dist/esm/controllers/organization.controller.mjs.map +1 -1
  65. package/dist/esm/controllers/project.controller.mjs +117 -31
  66. package/dist/esm/controllers/project.controller.mjs.map +1 -1
  67. package/dist/esm/controllers/projectAccessKey.controller.mjs +30 -10
  68. package/dist/esm/controllers/projectAccessKey.controller.mjs.map +1 -1
  69. package/dist/esm/controllers/sessionAuth.controller.mjs +16 -7
  70. package/dist/esm/controllers/sessionAuth.controller.mjs.map +1 -1
  71. package/dist/esm/controllers/user.controller.mjs +9 -17
  72. package/dist/esm/controllers/user.controller.mjs.map +1 -1
  73. package/dist/esm/export.mjs.map +1 -1
  74. package/dist/esm/index.mjs +6 -4
  75. package/dist/esm/index.mjs.map +1 -1
  76. package/dist/esm/middlewares/oAuth2.middleware.mjs +10 -0
  77. package/dist/esm/middlewares/oAuth2.middleware.mjs.map +1 -1
  78. package/dist/esm/middlewares/sessionAuth.middleware.mjs +48 -6
  79. package/dist/esm/middlewares/sessionAuth.middleware.mjs.map +1 -1
  80. package/dist/esm/models/plan.moddel.mjs +7 -0
  81. package/dist/esm/models/plan.moddel.mjs.map +1 -0
  82. package/dist/esm/schemas/plans.schema.mjs +38 -0
  83. package/dist/esm/schemas/plans.schema.mjs.map +1 -0
  84. package/dist/esm/schemas/project.schema.mjs +13 -1
  85. package/dist/esm/schemas/project.schema.mjs.map +1 -1
  86. package/dist/esm/schemas/user.schema.mjs +4 -0
  87. package/dist/esm/schemas/user.schema.mjs.map +1 -1
  88. package/dist/esm/services/dictionary.service.mjs.map +1 -1
  89. package/dist/esm/services/oAuth2.service.mjs +16 -8
  90. package/dist/esm/services/oAuth2.service.mjs.map +1 -1
  91. package/dist/esm/services/organization.service.mjs +7 -0
  92. package/dist/esm/services/organization.service.mjs.map +1 -1
  93. package/dist/esm/services/plans.service.mjs +44 -0
  94. package/dist/esm/services/plans.service.mjs.map +1 -0
  95. package/dist/esm/services/project.service.mjs +8 -2
  96. package/dist/esm/services/project.service.mjs.map +1 -1
  97. package/dist/esm/services/projectAccessKey.service.mjs +42 -10
  98. package/dist/esm/services/projectAccessKey.service.mjs.map +1 -1
  99. package/dist/esm/services/sessionAuth.service.mjs.map +1 -1
  100. package/dist/esm/services/subscription.service.mjs +95 -0
  101. package/dist/esm/services/subscription.service.mjs.map +1 -0
  102. package/dist/esm/services/user.service.mjs.map +1 -1
  103. package/dist/esm/types/plan.types.mjs +1 -0
  104. package/dist/esm/types/plan.types.mjs.map +1 -0
  105. package/dist/esm/utils/errors/ErrorHandler.mjs +1 -1
  106. package/dist/esm/utils/errors/ErrorHandler.mjs.map +1 -1
  107. package/dist/esm/utils/errors/errorCodes.mjs +222 -1
  108. package/dist/esm/utils/errors/errorCodes.mjs.map +1 -1
  109. package/dist/esm/utils/mapper/organization.mjs.map +1 -1
  110. package/dist/esm/utils/mapper/project.mjs +17 -2
  111. package/dist/esm/utils/mapper/project.mjs.map +1 -1
  112. package/dist/esm/utils/mapper/user.mjs.map +1 -1
  113. package/dist/esm/utils/plan.mjs +45 -0
  114. package/dist/esm/utils/plan.mjs.map +1 -0
  115. package/dist/esm/webhooks/stripe.mjs +70 -0
  116. package/dist/esm/webhooks/stripe.mjs.map +1 -0
  117. package/dist/types/controllers/dictionary.controller.d.ts.map +1 -1
  118. package/dist/types/controllers/organization.controller.d.ts.map +1 -1
  119. package/dist/types/controllers/project.controller.d.ts +9 -7
  120. package/dist/types/controllers/project.controller.d.ts.map +1 -1
  121. package/dist/types/controllers/projectAccessKey.controller.d.ts.map +1 -1
  122. package/dist/types/controllers/sessionAuth.controller.d.ts +4 -4
  123. package/dist/types/controllers/sessionAuth.controller.d.ts.map +1 -1
  124. package/dist/types/controllers/user.controller.d.ts.map +1 -1
  125. package/dist/types/export.d.ts +1 -0
  126. package/dist/types/export.d.ts.map +1 -1
  127. package/dist/types/index.d.ts.map +1 -1
  128. package/dist/types/middlewares/oAuth2.middleware.d.ts.map +1 -1
  129. package/dist/types/middlewares/sessionAuth.middleware.d.ts +13 -7
  130. package/dist/types/middlewares/sessionAuth.middleware.d.ts.map +1 -1
  131. package/dist/types/models/dictionary.model.d.ts +1 -1
  132. package/dist/types/models/oAuth2.model.d.ts +1 -1
  133. package/dist/types/models/organization.model.d.ts +1 -1
  134. package/dist/types/models/plan.moddel.d.ts +11 -0
  135. package/dist/types/models/plan.moddel.d.ts.map +1 -0
  136. package/dist/types/models/project.model.d.ts +1 -1
  137. package/dist/types/schemas/dictionary.schema.d.ts +2 -2
  138. package/dist/types/schemas/oAuth2.schema.d.ts +2 -2
  139. package/dist/types/schemas/organization.schema.d.ts +2 -2
  140. package/dist/types/schemas/plans.schema.d.ts +16 -0
  141. package/dist/types/schemas/plans.schema.d.ts.map +1 -0
  142. package/dist/types/schemas/project.schema.d.ts +12 -3
  143. package/dist/types/schemas/project.schema.d.ts.map +1 -1
  144. package/dist/types/schemas/user.schema.d.ts +2 -2
  145. package/dist/types/schemas/user.schema.d.ts.map +1 -1
  146. package/dist/types/services/dictionary.service.d.ts +9 -9
  147. package/dist/types/services/dictionary.service.d.ts.map +1 -1
  148. package/dist/types/services/oAuth2.service.d.ts +7 -5
  149. package/dist/types/services/oAuth2.service.d.ts.map +1 -1
  150. package/dist/types/services/organization.service.d.ts +12 -6
  151. package/dist/types/services/organization.service.d.ts.map +1 -1
  152. package/dist/types/services/plans.service.d.ts +35 -0
  153. package/dist/types/services/plans.service.d.ts.map +1 -0
  154. package/dist/types/services/project.service.d.ts +6 -6
  155. package/dist/types/services/project.service.d.ts.map +1 -1
  156. package/dist/types/services/projectAccessKey.service.d.ts +4 -4
  157. package/dist/types/services/projectAccessKey.service.d.ts.map +1 -1
  158. package/dist/types/services/sessionAuth.service.d.ts +9 -9
  159. package/dist/types/services/sessionAuth.service.d.ts.map +1 -1
  160. package/dist/types/services/subscription.service.d.ts +7 -0
  161. package/dist/types/services/subscription.service.d.ts.map +1 -0
  162. package/dist/types/services/user.service.d.ts +11 -19
  163. package/dist/types/services/user.service.d.ts.map +1 -1
  164. package/dist/types/types/dictionary.types.d.ts +2 -2
  165. package/dist/types/types/dictionary.types.d.ts.map +1 -1
  166. package/dist/types/types/organization.types.d.ts +2 -2
  167. package/dist/types/types/organization.types.d.ts.map +1 -1
  168. package/dist/types/types/plan.types.d.ts +19 -0
  169. package/dist/types/types/plan.types.d.ts.map +1 -0
  170. package/dist/types/types/project.types.d.ts +13 -2
  171. package/dist/types/types/project.types.d.ts.map +1 -1
  172. package/dist/types/types/user.types.d.ts +2 -1
  173. package/dist/types/types/user.types.d.ts.map +1 -1
  174. package/dist/types/utils/errors/errorCodes.d.ts +221 -0
  175. package/dist/types/utils/errors/errorCodes.d.ts.map +1 -1
  176. package/dist/types/utils/mapper/organization.d.ts +1 -1
  177. package/dist/types/utils/mapper/organization.d.ts.map +1 -1
  178. package/dist/types/utils/mapper/project.d.ts +10 -1
  179. package/dist/types/utils/mapper/project.d.ts.map +1 -1
  180. package/dist/types/utils/mapper/user.d.ts +1 -1
  181. package/dist/types/utils/mapper/user.d.ts.map +1 -1
  182. package/dist/types/utils/plan.d.ts +17 -0
  183. package/dist/types/utils/plan.d.ts.map +1 -0
  184. package/dist/types/webhooks/stripe.d.ts +3 -0
  185. package/dist/types/webhooks/stripe.d.ts.map +1 -0
  186. package/package.json +25 -23
  187. package/dist/cjs/middlewares/admin.middleware.cjs.map +0 -1
  188. package/dist/esm/middlewares/admin.middleware.mjs +0 -20
  189. package/dist/esm/middlewares/admin.middleware.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../src/utils/mapper/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEjE;;;;GAIG;AACH,eAAO,MAAM,YAAY,SAAU,IAAI,GAAG,YAAY,KAAG,OAWxD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,UAAW,IAAI,EAAE,KAAG,OAAO,EAC5B,CAAC"}
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../src/utils/mapper/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEjE;;;;GAIG;AACH,eAAO,MAAM,YAAY,SAAU,IAAI,GAAG,OAAO,GAAG,YAAY,KAAG,OAWlE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,UAAW,IAAI,EAAE,KAAG,OAAO,EAC5B,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { Plan } from '../types/plan.types';
2
+ /**
3
+ * Retrieves the plan type based on the price ID.
4
+ * @param priceId - The price ID to retrieve the plan type from.
5
+ * @returns The plan type and period.
6
+ */
7
+ export declare const retrievePlanInformation: (priceId: string) => Pick<Plan, "period" | "type">;
8
+ type PlanDetails = {
9
+ numberOfOrganizationUsers?: number;
10
+ numberOfProjects?: number;
11
+ totalStorage?: number;
12
+ SeoAI: boolean;
13
+ contentAI: boolean;
14
+ };
15
+ export declare const getPLanDetails: (planType: Plan["type"]) => PlanDetails;
16
+ export {};
17
+ //# sourceMappingURL=plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../src/utils/plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE1C;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,YACzB,MAAM,KACd,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAa9B,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AA0BF,eAAO,MAAM,cAAc,aAAc,IAAI,CAAC,MAAM,CAAC,KAAG,WACjC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type Request, type Response } from 'express';
2
+ export declare const stripeWebhook: (request: Request, response: Response) => Promise<void>;
3
+ //# sourceMappingURL=stripe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stripe.d.ts","sourceRoot":"","sources":["../../../src/webhooks/stripe.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGtD,eAAO,MAAM,aAAa,YAAmB,OAAO,YAAY,QAAQ,kBA+FvE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intlayer/backend",
3
- "version": "3.0.2",
3
+ "version": "3.1.0",
4
4
  "private": false,
5
5
  "description": "IntLayer Backend is a an application that allow you to manage your IntLayer content and interact with the intlayer editor.",
6
6
  "keywords": [
@@ -49,27 +49,29 @@
49
49
  "./package.json"
50
50
  ],
51
51
  "dependencies": {
52
- "@react-email/components": "^0.0.25",
52
+ "@react-email/components": "^0.0.28",
53
+ "@types/node": "^22.9.0",
53
54
  "bcrypt": "^5.1.1",
54
- "compression": "^1.7.4",
55
- "cookie-parser": "^1.4.6",
55
+ "compression": "^1.7.5",
56
+ "cookie-parser": "^1.4.7",
56
57
  "cors": "^2.8.5",
57
58
  "crypto-js": "^4.2.0",
58
59
  "csrf": "^3.1.0",
59
- "csrf-csrf": "^3.0.6",
60
+ "csrf-csrf": "^3.0.8",
60
61
  "dotenv": "^16.4.5",
61
62
  "express": "^5.0.1",
62
63
  "jsonwebtoken": "^9.0.2",
63
- "mongodb": "^6.8.0",
64
- "mongoose": "^8.5.3",
64
+ "mongodb": "^6.10.0",
65
+ "mongoose": "^8.8.1",
65
66
  "oauth2-server": "^3.1.1",
66
67
  "react": "^18.3.1",
67
- "react-email": "^3.0.1",
68
+ "react-email": "^3.0.2",
68
69
  "resend": "^4.0.0",
69
- "uuid": "^10.0.0",
70
+ "stripe": "^17.3.1",
71
+ "uuid": "^11.0.3",
70
72
  "validator": "^13.12.0",
71
- "winston": "^3.14.2",
72
- "express-intlayer": "^3.0.2"
73
+ "winston": "^3.17.0",
74
+ "express-intlayer": "^3.1.0"
73
75
  },
74
76
  "devDependencies": {
75
77
  "@types/bcrypt": "^5.0.2",
@@ -80,25 +82,25 @@
80
82
  "@types/crypto-js": "^4.2.2",
81
83
  "@types/csurf": "^1.11.5",
82
84
  "@types/express": "^5.0.0",
83
- "@types/jsonwebtoken": "^9.0.6",
85
+ "@types/jsonwebtoken": "^9.0.7",
84
86
  "@types/node": "^22.1.0",
85
87
  "@types/oauth2-server": "^3.0.18",
86
- "@types/react": "^18.3.3",
88
+ "@types/react": "^18.3.12",
87
89
  "@types/uuid": "^10.0.0",
88
- "@types/validator": "^13.12.0",
89
- "esbuild-fix-imports-plugin": "^1.0.5",
90
- "eslint": "^9.11.1",
91
- "prettier": "3.3.3",
90
+ "@types/validator": "^13.12.2",
91
+ "esbuild-fix-imports-plugin": "^1.0.6",
92
+ "eslint": "^9.14.0",
93
+ "prettier": "^3.3.3",
92
94
  "tsc-alias": "^1.8.10",
93
- "tsup": "^8.3.0",
94
- "tsx": "^4.19.1",
95
- "typescript": "^5.5.4",
96
- "@intlayer/core": "^3.0.2",
95
+ "tsup": "^8.3.5",
96
+ "tsx": "^4.19.2",
97
+ "typescript": "^5.6.3",
98
+ "@intlayer/core": "^3.1.0",
97
99
  "@utils/eslint-config": "^1.0.4",
98
- "@utils/ts-config": "^1.0.4",
99
100
  "@utils/ts-config-types": "^1.0.4",
101
+ "@utils/ts-config": "^1.0.4",
100
102
  "@utils/tsup-config": "^1.0.4",
101
- "intlayer": "^3.0.2"
103
+ "intlayer": "^3.1.0"
102
104
  },
103
105
  "scripts": {
104
106
  "build": "pnpm build:package & pnpm build:types",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/middlewares/admin.middleware.ts"],"sourcesContent":["import type { Request, NextFunction } from 'express';\nimport { ResponseWithInformation } from './sessionAuth.middleware';\n\n/**\n * Middleware to check if the user is an admin of the organization or project\n * Sets the following properties in res.locals:\n * - isOrganizationAdmin: boolean\n * - isProjectAdmin: boolean\n */\nexport const checkAdmin = async (\n _req: Request,\n res: ResponseWithInformation,\n next: NextFunction\n): Promise<void> => {\n const { organization, project, user } = res.locals;\n\n res.locals.isOrganizationAdmin = false;\n res.locals.isProjectAdmin = false;\n\n if (user) {\n if (organization) {\n const isOrganizationAdmin: boolean =\n organization.adminsIds\n .map((id) => String(id))\n .includes(String(user._id)) ?? false;\n\n res.locals.isOrganizationAdmin = isOrganizationAdmin;\n }\n\n if (project) {\n const isProjectAdmin: boolean =\n project.adminsIds.map((id) => String(id)).includes(String(user._id)) ??\n false;\n\n res.locals.isProjectAdmin = isProjectAdmin;\n }\n }\n\n return next();\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AASO,MAAM,aAAa,OACxB,MACA,KACA,SACkB;AAClB,QAAM,EAAE,cAAc,SAAS,KAAK,IAAI,IAAI;AAE5C,MAAI,OAAO,sBAAsB;AACjC,MAAI,OAAO,iBAAiB;AAE5B,MAAI,MAAM;AACR,QAAI,cAAc;AAChB,YAAM,sBACJ,aAAa,UACV,IAAI,CAAC,OAAO,OAAO,EAAE,CAAC,EACtB,SAAS,OAAO,KAAK,GAAG,CAAC,KAAK;AAEnC,UAAI,OAAO,sBAAsB;AAAA,IACnC;AAEA,QAAI,SAAS;AACX,YAAM,iBACJ,QAAQ,UAAU,IAAI,CAAC,OAAO,OAAO,EAAE,CAAC,EAAE,SAAS,OAAO,KAAK,GAAG,CAAC,KACnE;AAEF,UAAI,OAAO,iBAAiB;AAAA,IAC9B;AAAA,EACF;AAEA,SAAO,KAAK;AACd;","names":[]}
@@ -1,20 +0,0 @@
1
- const checkAdmin = async (_req, res, next) => {
2
- const { organization, project, user } = res.locals;
3
- res.locals.isOrganizationAdmin = false;
4
- res.locals.isProjectAdmin = false;
5
- if (user) {
6
- if (organization) {
7
- const isOrganizationAdmin = organization.adminsIds.map((id) => String(id)).includes(String(user._id)) ?? false;
8
- res.locals.isOrganizationAdmin = isOrganizationAdmin;
9
- }
10
- if (project) {
11
- const isProjectAdmin = project.adminsIds.map((id) => String(id)).includes(String(user._id)) ?? false;
12
- res.locals.isProjectAdmin = isProjectAdmin;
13
- }
14
- }
15
- return next();
16
- };
17
- export {
18
- checkAdmin
19
- };
20
- //# sourceMappingURL=admin.middleware.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/middlewares/admin.middleware.ts"],"sourcesContent":["import type { Request, NextFunction } from 'express';\nimport { ResponseWithInformation } from './sessionAuth.middleware';\n\n/**\n * Middleware to check if the user is an admin of the organization or project\n * Sets the following properties in res.locals:\n * - isOrganizationAdmin: boolean\n * - isProjectAdmin: boolean\n */\nexport const checkAdmin = async (\n _req: Request,\n res: ResponseWithInformation,\n next: NextFunction\n): Promise<void> => {\n const { organization, project, user } = res.locals;\n\n res.locals.isOrganizationAdmin = false;\n res.locals.isProjectAdmin = false;\n\n if (user) {\n if (organization) {\n const isOrganizationAdmin: boolean =\n organization.adminsIds\n .map((id) => String(id))\n .includes(String(user._id)) ?? false;\n\n res.locals.isOrganizationAdmin = isOrganizationAdmin;\n }\n\n if (project) {\n const isProjectAdmin: boolean =\n project.adminsIds.map((id) => String(id)).includes(String(user._id)) ??\n false;\n\n res.locals.isProjectAdmin = isProjectAdmin;\n }\n }\n\n return next();\n};\n"],"mappings":"AASO,MAAM,aAAa,OACxB,MACA,KACA,SACkB;AAClB,QAAM,EAAE,cAAc,SAAS,KAAK,IAAI,IAAI;AAE5C,MAAI,OAAO,sBAAsB;AACjC,MAAI,OAAO,iBAAiB;AAE5B,MAAI,MAAM;AACR,QAAI,cAAc;AAChB,YAAM,sBACJ,aAAa,UACV,IAAI,CAAC,OAAO,OAAO,EAAE,CAAC,EACtB,SAAS,OAAO,KAAK,GAAG,CAAC,KAAK;AAEnC,UAAI,OAAO,sBAAsB;AAAA,IACnC;AAEA,QAAI,SAAS;AACX,YAAM,iBACJ,QAAQ,UAAU,IAAI,CAAC,OAAO,OAAO,EAAE,CAAC,EAAE,SAAS,OAAO,KAAK,GAAG,CAAC,KACnE;AAEF,UAAI,OAAO,iBAAiB;AAAA,IAC9B;AAAA,EACF;AAEA,SAAO,KAAK;AACd;","names":[]}