@volcanicminds/backend 2.0.0 → 2.0.2

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/README.md CHANGED
@@ -680,6 +680,23 @@ module.exports = {
680
680
  }
681
681
  ```
682
682
 
683
+ ## Disable embedded authorization
684
+
685
+ Out-of-the-box, the framework automatically secures all routes by checking for a valid (Bearer) JWT token if roles are defined for that route. However, if you want to disable this automatic authorization check and handle it manually within your controllers or middleware, you can do so by setting the `embedded_auth` option to `false`.
686
+
687
+ ```ts
688
+ // src/config/general.ts
689
+ 'use strict'
690
+
691
+ module.exports = {
692
+ name: 'general',
693
+ enable: true,
694
+ options: {
695
+ embedded_auth: false
696
+ }
697
+ }
698
+ ```
699
+
683
700
  ## Job Scheduler
684
701
 
685
702
  It's possible to add a job scheduler. For more information, go to [Fastify Schedule](https://github.com/fastify/fastify-schedule). To enable this feature, it's necessary to add or change the property `scheduler` to `true` (the default is `false`).
@@ -262,9 +262,7 @@ function login(req, reply) {
262
262
  }
263
263
  const isPasswordToBeChanged = req.server['userManager'].isPasswordToBeChanged(user);
264
264
  if (isPasswordToBeChanged) {
265
- return reply
266
- .status(403)
267
- .send({ statusCode: 403, code: 'PASSWORD_TO_BE_CHANGED', message: 'The password is expired' });
265
+ return reply.status(403).send({ statusCode: 403, code: 'PASSWORD_TO_BE_CHANGED', message: 'Password is expired' });
268
266
  }
269
267
  if (user.blocked) {
270
268
  return reply.status(403).send(new Error('User blocked'));
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../../lib/api/auth/controller/auth.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,4BA6CC;AAED,gCAsBC;AAED,4CAaC;AAED,wCA6BC;AAED,wCAgCC;AAED,oCAsBC;AAED,sCA6BC;AAED,sBA0DC;AAED,oCAgCC;AAED,4CASC;AAED,sBAeC;AAED,0BAcC;AAxVD,6DAA8C;AAE9C,SAAsB,QAAQ,CAAC,GAAmB,EAAE,KAAmB;;;QACrE,MAAM,KAA8C,GAAG,CAAC,IAAI,EAAE,EAAxD,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,OAAwB,EAAnB,IAAI,cAAzC,0BAA2C,CAAa,CAAA;QAE9D,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACpC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAA;QAChE,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAClD,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAA;QAC7D,CAAC;QACD,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjD,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAA;QAChE,CAAC;QACD,IAAI,CAAC,SAAS,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YACzC,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAA;QACzE,CAAC;QAED,IAAI,SAAS,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC/E,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAA;QACtE,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACjD,SAAS,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAA;YAC9E,IAAI,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,0CAAE,MAAM,EAAE,CAAC;gBAC/B,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAA;YAC3E,CAAC;QACH,CAAC;QAGD,MAAM,UAAU,GAAG,CAAA,MAAA,MAAA,MAAM,CAAC,KAAK,0CAAE,MAAM,0CAAE,IAAI,KAAI,QAAQ,CAAA;QACzD,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,MAAA,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,0CAAE,IAAI,CAAA,EAAA,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5F,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC7B,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,UAAU,iCAAM,IAAI,KAAE,QAAQ,EAAE,QAAQ,IAAG,CAAA;QACxF,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAA;QACjE,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CAAA;AAED,SAAsB,UAAU,CAAC,GAAmB,EAAE,KAAmB;;QACvE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;QAEtC,IAAI,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,sBAAsB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QAClF,IAAI,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAE/D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAA;QAC/D,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAA;QAC1D,CAAC;QAED,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;QACpE,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAE3D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAA;QAC5D,CAAC;QAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;IACrB,CAAC;CAAA;AAED,SAAsB,gBAAgB,CAAC,GAAmB,EAAE,KAAmB;;QAC7E,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;QAE/B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAA;QACrE,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAA;QACnE,CAAC;QAED,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAA;IACtB,CAAC;CAAA;AAED,SAAsB,cAAc,CAAC,GAAmB,EAAE,KAAmB;;QAC3E,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;QAErE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACpC,CAAC;QAED,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YACzD,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAA;QACvE,CAAC;QAED,IAAI,CAAC,YAAY,IAAI,YAAY,KAAK,YAAY,EAAE,CAAC;YACnD,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAA;QAC7E,CAAC;QAED,IAAI,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,sBAAsB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;QACrF,IAAI,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAE/D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAA;QAC/D,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAA;QAC1D,CAAC;QAED,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,WAAW,CAAC,CAAA;QACvF,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAC3D,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAAA;IACxB,CAAC;CAAA;AAED,SAAsB,cAAc,CAAC,GAAmB,EAAE,KAAmB;;QAC3E,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;QAEtC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACpC,CAAC;QAED,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAA;QAC7E,CAAC;QAED,IAAI,IAAI,GAAG,IAAW,CAAA;QACtB,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAA;QACnE,CAAC;aAAM,IAAI,QAAQ,EAAE,CAAC;YACpB,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAA;QACzE,CAAC;QAED,IAAI,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAE/D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAA;QAC/D,CAAC;QAED,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAA;QAC1D,CAAC;QAED,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACjE,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAE3D,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAAA;IACxB,CAAC;CAAA;AAED,SAAsB,YAAY,CAAC,GAAmB,EAAE,KAAmB;;QACzE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;QAE3B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAA;QAC7E,CAAC;QAED,IAAI,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAA;QAChF,IAAI,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAE/D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAA;QAC/D,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAA;QAC1D,CAAC;QAED,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAC7D,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAE3D,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAAA;IACxB,CAAC;CAAA;AAED,SAAsB,aAAa,CAAC,GAAmB,EAAE,KAAmB;;QAC1E,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;QAEvD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACpC,CAAC;QAED,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YACzD,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAA;QACpE,CAAC;QAED,IAAI,CAAC,YAAY,IAAI,YAAY,KAAK,YAAY,EAAE,CAAC;YACnD,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAA;QAC7E,CAAC;QAED,IAAI,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,gCAAgC,CAAC,IAAI,CAAC,CAAA;QACjF,IAAI,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAE/D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAA;QAC/D,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAA;QAC1D,CAAC;QAED,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;QACxE,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAC3D,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC9B,CAAC;CAAA;AAED,SAAsB,KAAK,CAAC,GAAmB,EAAE,KAAmB;;;QAClE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;QAEtC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACpC,CAAC;QAED,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACxC,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAA;QAC7D,CAAC;QACD,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjD,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAA;QAChE,CAAC;QAED,IAAI,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,sBAAsB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QAClF,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAA;QAC/D,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAIjE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAA;QAC/D,CAAC;QAED,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAA;QACpE,CAAC;QAED,MAAM,qBAAqB,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;QACnF,IAAI,qBAAqB,EAAE,CAAC;YAC1B,OAAO,KAAK;iBACT,MAAM,CAAC,GAAG,CAAC;iBACX,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAA;QAClG,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAA;QAC1D,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC;YAC/D,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;QACtE,CAAC;QAGD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;QAC3D,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;YACnD,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;YACvE,CAAC,CAAC,SAAS,CAAA;QAEb,uCACK,IAAI,KACP,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAA,MAAA,MAAA,MAAM,CAAC,IAAI,0CAAE,MAAM,0CAAE,IAAI,KAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,IAAI,KAAI,CAAC,CAAC,EACvF,KAAK,EAAE,KAAK,EACZ,YAAY,IACb;IACH,CAAC;CAAA;AAED,SAAsB,YAAY,CAAC,GAAmB,EAAE,KAAmB;;QACzE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;QAE1C,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACpC,CAAC;QAED,MAAM,SAAS,GAAG,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAoB,CAAA;QAC3E,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAA;QAE7D,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,GAAG,IAAG,CAAC,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,GAAG,IAAG,aAAa,EAAE,CAAC;YACzD,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAA;QAC3D,CAAC;QAED,MAAM,gBAAgB,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QACpF,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,GAAG,KAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,GAAG,OAAK,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,GAAG,CAAA,EAAE,CAAC;YAC/D,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAA;QAC/D,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,wBAAwB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QACpF,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAIjE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAA;QACjE,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;QAC9D,OAAO;YACL,KAAK,EAAE,QAAQ;SAChB,CAAA;IACH,CAAC;CAAA;AAED,SAAsB,gBAAgB,CAAC,GAAmB,EAAE,KAAmB;;QAC7E,IAAI,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACnE,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAA;QAC7D,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;QAC9E,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAC3D,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAAA;IACxB,CAAC;CAAA;AAED,SAAsB,KAAK,CAAC,GAAmB,EAAE,KAAmB;;QAClE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACpC,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YAChE,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC,CAAA;QACtH,CAAC;QAED,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,CAAA;QACvC,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;QAE7B,IAAI,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACxE,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;QACpE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAA;IAC/B,CAAC;CAAA;AAED,SAAsB,OAAO,CAAC,GAAmB,EAAE,KAAmB;;QACpE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACpC,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YAChE,OAAO,KAAK;iBACT,MAAM,CAAC,GAAG,CAAC;iBACX,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC,CAAA;QAClG,CAAC;QAED,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,CAAA;QACvC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;QACpE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAA;IAC/B,CAAC;CAAA"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../../lib/api/auth/controller/auth.ts"],"names":[],"mappings":"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"}
@@ -20,8 +20,6 @@ var __rest = (this && this.__rest) || function (s, e) {
20
20
  return t;
21
21
  };
22
22
  Object.defineProperty(exports, "__esModule", { value: true });
23
- exports.currentUser = currentUser;
24
- exports.isAdmin = isAdmin;
25
23
  exports.getRoles = getRoles;
26
24
  exports.count = count;
27
25
  exports.find = find;
@@ -29,17 +27,14 @@ exports.findOne = findOne;
29
27
  exports.create = create;
30
28
  exports.update = update;
31
29
  exports.remove = remove;
32
- function currentUser(req, reply) {
33
- const user = req.user;
34
- reply.send(user ? Object.assign(Object.assign({}, user), { roles: req.roles() }) : {});
35
- }
36
- function isAdmin(req, reply) {
37
- const user = req.user;
38
- reply.send({ isAdmin: (user === null || user === void 0 ? void 0 : user.getId()) && req.hasRole(roles.admin) });
39
- }
30
+ exports.getCurrentUser = getCurrentUser;
31
+ exports.updateCurrentUser = updateCurrentUser;
32
+ exports.isAdmin = isAdmin;
40
33
  function getRoles(req, reply) {
41
- const allRoles = Object.keys(roles).map((key) => roles[key]);
42
- reply.send(allRoles);
34
+ return __awaiter(this, void 0, void 0, function* () {
35
+ const allRoles = Object.keys(roles).map((key) => roles[key]);
36
+ return reply.send(allRoles);
37
+ });
43
38
  }
44
39
  function count(req, reply) {
45
40
  return __awaiter(this, void 0, void 0, function* () {
@@ -61,14 +56,23 @@ function findOne(req, reply) {
61
56
  }
62
57
  function create(req, reply) {
63
58
  return __awaiter(this, void 0, void 0, function* () {
64
- const _a = req.data(), { id } = _a, data = __rest(_a, ["id"]);
59
+ var _a;
60
+ if (!req.hasRole(roles.admin)) {
61
+ return reply.status(403).send(Error('Only admins can create users'));
62
+ }
63
+ const _b = req.data(), { id } = _b, data = __rest(_b, ["id"]);
64
+ if (data.roles && data.roles.includes(roles.admin)) {
65
+ if (!config.enable || ((_a = config.options) === null || _a === void 0 ? void 0 : _a.allow_multiple_admin) !== true) {
66
+ return reply.status(403).send(Error('Cannot assign admin role to a user'));
67
+ }
68
+ }
65
69
  const user = yield req.server['userManager'].createUser(data);
66
70
  return user ? entity.User.save(user) : reply.status(400).send(Error('User not creatable'));
67
71
  });
68
72
  }
69
73
  function update(req, reply) {
70
74
  return __awaiter(this, void 0, void 0, function* () {
71
- const _a = req.parameters(), { id } = _a, userData = __rest(_a, ["id"]);
75
+ const _a = req.data(), { id } = _a, userData = __rest(_a, ["id"]);
72
76
  if (!id) {
73
77
  return reply.status(400).send('Missing required id parameter');
74
78
  }
@@ -84,4 +88,27 @@ function remove(req, reply) {
84
88
  return yield req.server['userManager'].deleteUser(id);
85
89
  });
86
90
  }
91
+ function getCurrentUser(req, reply) {
92
+ return __awaiter(this, void 0, void 0, function* () {
93
+ const user = req.user;
94
+ return reply.send(user ? Object.assign(Object.assign({}, user), { roles: req.roles() }) : {});
95
+ });
96
+ }
97
+ function updateCurrentUser(req, reply) {
98
+ return __awaiter(this, void 0, void 0, function* () {
99
+ const user = req.user;
100
+ const id = user === null || user === void 0 ? void 0 : user.getId();
101
+ if (!id) {
102
+ return reply.status(403).send('Cannot update current user');
103
+ }
104
+ const _a = req.data(), { id: _id } = _a, userData = __rest(_a, ["id"]);
105
+ return yield req.server['userManager'].updateUserById(id, userData);
106
+ });
107
+ }
108
+ function isAdmin(req, reply) {
109
+ return __awaiter(this, void 0, void 0, function* () {
110
+ const user = req.user;
111
+ return reply.send({ isAdmin: (user === null || user === void 0 ? void 0 : user.getId()) && req.hasRole(roles.admin) });
112
+ });
113
+ }
87
114
  //# sourceMappingURL=user.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../../lib/api/users/controller/user.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAGA,kCAGC;AAED,0BAGC;AAED,4BAGC;AAED,sBAEC;AAED,oBAGC;AAED,0BAIC;AAED,wBAIC;AAED,wBAOC;AAED,wBAMC;AAnDD,SAAgB,WAAW,CAAC,GAAmB,EAAE,KAAmB;IAClE,MAAM,IAAI,GAAkC,GAAG,CAAC,IAAI,CAAA;IACpD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,iCAAM,IAAI,KAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,IAAG,CAAC,CAAC,EAAE,CAAC,CAAA;AACzD,CAAC;AAED,SAAgB,OAAO,CAAC,GAAmB,EAAE,KAAmB;IAC9D,MAAM,IAAI,GAAkC,GAAG,CAAC,IAAI,CAAA;IACpD,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,EAAE,KAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;AACpE,CAAC;AAED,SAAgB,QAAQ,CAAC,GAAmB,EAAE,KAAmB;IAC/D,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;IAC5D,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AACtB,CAAC;AAED,SAAsB,KAAK,CAAC,GAAmB,EAAE,KAAmB;;QAClE,OAAO,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;IACzD,CAAC;CAAA;AAED,SAAsB,IAAI,CAAC,GAAmB,EAAE,KAAmB;;QACjE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;QAClF,OAAO,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACtE,CAAC;CAAA;AAED,SAAsB,OAAO,CAAC,GAAmB,EAAE,KAAmB;;QACpE,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,CAAA;QAC/B,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAC7E,OAAO,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;IACzC,CAAC;CAAA;AAED,SAAsB,MAAM,CAAC,GAAmB,EAAE,KAAmB;;QACnE,MAAM,KAAkB,GAAG,CAAC,IAAI,EAAE,EAA5B,EAAE,EAAE,OAAwB,EAAnB,IAAI,cAAb,MAAe,CAAa,CAAA;QAClC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC7D,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAA;IAC5F,CAAC;CAAA;AAED,SAAsB,MAAM,CAAC,GAAmB,EAAE,KAAmB;;QACnE,MAAM,KAAsB,GAAG,CAAC,UAAU,EAAE,EAAtC,EAAE,EAAE,OAAkC,EAA7B,QAAQ,cAAjB,MAAmB,CAAmB,CAAA;QAC5C,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAA;QAChE,CAAC;QAED,OAAO,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,cAAc,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;IACrE,CAAC;CAAA;AAED,SAAsB,MAAM,CAAC,GAAmB,EAAE,KAAmB;;QACnE,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,CAAA;QAC/B,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;QACjC,CAAC;QACD,OAAO,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IACvD,CAAC;CAAA"}
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../../lib/api/users/controller/user.ts"],"names":[],"mappings":"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"}
@@ -65,9 +65,9 @@ module.exports = {
65
65
  {
66
66
  method: 'GET',
67
67
  path: '/:id',
68
- roles: [],
68
+ roles: [roles.admin],
69
69
  handler: 'user.findOne',
70
- middlewares: [],
70
+ middlewares: ['global.isAuthenticated'],
71
71
  config: {
72
72
  title: 'Find user',
73
73
  description: 'Get user by id',
@@ -83,9 +83,9 @@ module.exports = {
83
83
  {
84
84
  method: 'PUT',
85
85
  path: '/:id',
86
- roles: [],
86
+ roles: [roles.admin],
87
87
  handler: 'user.update',
88
- middlewares: [],
88
+ middlewares: ['global.isAuthenticated'],
89
89
  config: {
90
90
  title: 'Update user',
91
91
  description: 'Updates a user by id',
@@ -102,9 +102,9 @@ module.exports = {
102
102
  {
103
103
  method: 'POST',
104
104
  path: '/',
105
- roles: [],
105
+ roles: [roles.admin],
106
106
  handler: 'user.create',
107
- middlewares: [],
107
+ middlewares: ['global.isAuthenticated'],
108
108
  config: {
109
109
  title: 'Create a user',
110
110
  description: 'Creates a new user',
@@ -120,9 +120,9 @@ module.exports = {
120
120
  {
121
121
  method: 'DELETE',
122
122
  path: '/:id',
123
- roles: [],
123
+ roles: [roles.admin],
124
124
  handler: 'user.remove',
125
- middlewares: [],
125
+ middlewares: ['global.isAuthenticated'],
126
126
  config: {
127
127
  title: 'Delete user',
128
128
  description: 'Deletes user by id',
@@ -139,7 +139,7 @@ module.exports = {
139
139
  method: 'GET',
140
140
  path: '/me',
141
141
  roles: [],
142
- handler: 'user.currentUser',
142
+ handler: 'user.getCurrentUser',
143
143
  middlewares: ['global.isAuthenticated'],
144
144
  config: {
145
145
  title: 'Get current user',
@@ -149,6 +149,24 @@ module.exports = {
149
149
  }
150
150
  }
151
151
  },
152
+ {
153
+ method: 'PUT',
154
+ path: '/me',
155
+ roles: [],
156
+ handler: 'user.updateCurrentUser',
157
+ middlewares: ['global.isAuthenticated'],
158
+ config: {
159
+ title: 'Update current user',
160
+ description: 'Update current user',
161
+ body: { $ref: 'currentUserBodySchema#' },
162
+ response: {
163
+ 200: {
164
+ description: 'Default response',
165
+ $ref: 'userSchema#'
166
+ }
167
+ }
168
+ }
169
+ },
152
170
  {
153
171
  method: 'GET',
154
172
  path: '/is-admin',
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../../lib/api/users/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../../lib/api/users/routes.ts"],"names":[],"mappings":";AAAA,MAAM,CAAC,OAAO,GAAG;IACf,MAAM,EAAE;QACN,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,gBAAgB;QAC7B,UAAU,EAAE,YAAY;QACxB,IAAI,EAAE,CAAC,OAAO,CAAC;QACf,OAAO,EAAE,KAAK;KACf;IACD,MAAM,EAAE;QACN;YACE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,GAAG;YACT,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;YACpB,OAAO,EAAE,WAAW;YACpB,WAAW,EAAE,CAAC,wBAAwB,CAAC;YACvC,MAAM,EAAE;gBACN,KAAK,EAAE,YAAY;gBACnB,WAAW,EAAE,WAAW;gBACxB,KAAK,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE;gBACvC,QAAQ,EAAE;oBACR,GAAG,EAAE;wBACH,WAAW,EAAE,kBAAkB;wBAC/B,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;qBAC/B;iBACF;aACF;SACF;QACD;YACE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;YACpB,OAAO,EAAE,YAAY;YACrB,WAAW,EAAE,CAAC,wBAAwB,CAAC;YACvC,MAAM,EAAE;gBACN,KAAK,EAAE,aAAa;gBACpB,WAAW,EAAE,aAAa;gBAC1B,QAAQ,EAAE;oBACR,GAAG,EAAE;wBACH,WAAW,EAAE,kBAAkB;wBAC/B,IAAI,EAAE,QAAQ;qBACf;iBACF;aACF;SACF;QACD;YACE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;YACpB,OAAO,EAAE,eAAe;YACxB,WAAW,EAAE,CAAC,wBAAwB,CAAC;YACvC,MAAM,EAAE;gBACN,KAAK,EAAE,eAAe;gBACtB,WAAW,EAAE,eAAe;gBAC5B,QAAQ,EAAE;oBACR,GAAG,EAAE;wBACH,WAAW,EAAE,kBAAkB;wBAC/B,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;qBAC/B;iBACF;aACF;SACF;QACD;YACE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;YACpB,OAAO,EAAE,cAAc;YACvB,WAAW,EAAE,CAAC,wBAAwB,CAAC;YACvC,MAAM,EAAE;gBACN,KAAK,EAAE,WAAW;gBAClB,WAAW,EAAE,gBAAgB;gBAC7B,MAAM,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE;gBACvC,QAAQ,EAAE;oBACR,GAAG,EAAE;wBACH,WAAW,EAAE,kBAAkB;wBAC/B,IAAI,EAAE,aAAa;qBACpB;iBACF;aACF;SACF;QACD;YACE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;YACpB,OAAO,EAAE,aAAa;YACtB,WAAW,EAAE,CAAC,wBAAwB,CAAC;YACvC,MAAM,EAAE;gBACN,KAAK,EAAE,aAAa;gBACpB,WAAW,EAAE,sBAAsB;gBACnC,MAAM,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE;gBACvC,IAAI,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;gBACjC,QAAQ,EAAE;oBACR,GAAG,EAAE;wBACH,WAAW,EAAE,kBAAkB;wBAC/B,IAAI,EAAE,aAAa;qBACpB;iBACF;aACF;SACF;QACD;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,GAAG;YACT,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;YACpB,OAAO,EAAE,aAAa;YACtB,WAAW,EAAE,CAAC,wBAAwB,CAAC;YACvC,MAAM,EAAE;gBACN,KAAK,EAAE,eAAe;gBACtB,WAAW,EAAE,oBAAoB;gBACjC,IAAI,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;gBACjC,QAAQ,EAAE;oBACR,GAAG,EAAE;wBACH,WAAW,EAAE,kBAAkB;wBAC/B,IAAI,EAAE,aAAa;qBACpB;iBACF;aACF;SACF;QACD;YACE,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;YACpB,OAAO,EAAE,aAAa;YACtB,WAAW,EAAE,CAAC,wBAAwB,CAAC;YACvC,MAAM,EAAE;gBACN,KAAK,EAAE,aAAa;gBACpB,WAAW,EAAE,oBAAoB;gBACjC,MAAM,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE;gBACvC,QAAQ,EAAE;oBACR,GAAG,EAAE;wBACH,WAAW,EAAE,kBAAkB;wBAC/B,IAAI,EAAE,aAAa;qBACpB;iBACF;aACF;SACF;QACD;YACE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,qBAAqB;YAC9B,WAAW,EAAE,CAAC,wBAAwB,CAAC;YACvC,MAAM,EAAE;gBACN,KAAK,EAAE,kBAAkB;gBACzB,WAAW,EAAE,kBAAkB;gBAC/B,QAAQ,EAAE;oBACR,GAAG,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;iBAC7B;aACF;SACF;QACD;YACE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,wBAAwB;YACjC,WAAW,EAAE,CAAC,wBAAwB,CAAC;YACvC,MAAM,EAAE;gBACN,KAAK,EAAE,qBAAqB;gBAC5B,WAAW,EAAE,qBAAqB;gBAClC,IAAI,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE;gBACxC,QAAQ,EAAE;oBACR,GAAG,EAAE;wBACH,WAAW,EAAE,kBAAkB;wBAC/B,IAAI,EAAE,aAAa;qBACpB;iBACF;aACF;SACF;QACD;YACE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,cAAc;YACvB,WAAW,EAAE,CAAC,wBAAwB,CAAC;YACvC,MAAM,EAAE;gBACN,KAAK,EAAE,sBAAsB;gBAC7B,WAAW,EAAE,uCAAuC;gBACpD,QAAQ,EAAE;oBACR,GAAG,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE;iBAChC;aACF;SACF;KACF;CACF,CAAA"}
@@ -3,6 +3,7 @@ module.exports = {
3
3
  name: 'general',
4
4
  enable: true,
5
5
  options: {
6
+ allow_multiple_admin: false,
6
7
  reset_external_id_on_login: false,
7
8
  scheduler: false,
8
9
  embedded_auth: true
@@ -1 +1 @@
1
- {"version":3,"file":"general.js","sourceRoot":"","sources":["../../../lib/config/general.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,MAAM,CAAC,OAAO,GAAG;IACf,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE;QACP,0BAA0B,EAAE,KAAK;QACjC,SAAS,EAAE,KAAK;QAChB,aAAa,EAAE,IAAI;KACpB;CACF,CAAA"}
1
+ {"version":3,"file":"general.js","sourceRoot":"","sources":["../../../lib/config/general.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,MAAM,CAAC,OAAO,GAAG;IACf,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE;QACP,oBAAoB,EAAE,KAAK;QAC3B,0BAA0B,EAAE,KAAK;QACjC,SAAS,EAAE,KAAK;QAChB,aAAa,EAAE,IAAI;KACpB;CACF,CAAA"}
@@ -12,62 +12,85 @@ var _a;
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  const common_1 = require("../util/common");
14
14
  const { embedded_auth = true } = ((_a = global.config) === null || _a === void 0 ? void 0 : _a.options) || {};
15
+ const normalizeRoles = (rolesArray) => {
16
+ if (!rolesArray || rolesArray.length === 0) {
17
+ return [roles.public.code];
18
+ }
19
+ const firstElement = rolesArray[0];
20
+ if (typeof firstElement === 'string') {
21
+ return rolesArray;
22
+ }
23
+ if (typeof firstElement === 'object' && firstElement !== null && 'code' in firstElement) {
24
+ return rolesArray.map((role) => role.code);
25
+ }
26
+ return [roles.public.code];
27
+ };
15
28
  module.exports = (req, reply) => __awaiter(void 0, void 0, void 0, function* () {
16
- var _a, _b, _c, _d, _e, _f, _g;
29
+ var _a, _b, _c, _d, _e, _f, _g, _h;
17
30
  log.i && (req.startedAt = new Date());
18
31
  req.data = () => (0, common_1.getData)(req);
19
32
  req.parameters = () => (0, common_1.getParams)(req);
20
33
  if (embedded_auth) {
21
- req.roles = () => (req.user ? req.user.roles : [roles.public]);
22
- req.hasRole = (r) => (req.user ? req.user.roles : [roles.public]).some((role) => role === (r === null || r === void 0 ? void 0 : r.code));
34
+ req.roles = () => [roles.public.code];
35
+ req.hasRole = (r) => req.roles().includes(r === null || r === void 0 ? void 0 : r.code);
23
36
  const auth = ((_a = req.headers) === null || _a === void 0 ? void 0 : _a.authorization) || '';
24
37
  const cfg = ((_b = req.routeOptions) === null || _b === void 0 ? void 0 : _b.config) || req.routeConfig || {};
25
38
  const [prefix, bearerToken] = auth.split(' ');
26
39
  if (prefix === 'Bearer' && bearerToken != null) {
27
- let user = null;
28
- let token = null;
29
40
  try {
30
41
  const tokenData = reply.server.jwt.verify(bearerToken);
31
- user = yield req.server['userManager'].retrieveUserByExternalId(tokenData === null || tokenData === void 0 ? void 0 : tokenData.sub);
32
- if (!user && req.server['tokenManager'].isImplemented()) {
33
- token = yield req.server['tokenManager'].retrieveTokenByExternalId(tokenData === null || tokenData === void 0 ? void 0 : tokenData.sub);
34
- }
35
- if (!user && !token) {
36
- return reply.status(404).send({ statusCode: 404, code: 'USER_NOT_FOUND', message: 'User not found' });
42
+ const subjectId = tokenData === null || tokenData === void 0 ? void 0 : tokenData.sub;
43
+ if (!subjectId) {
44
+ throw new Error('Invalid token subject');
37
45
  }
38
- if (user) {
39
- const isValid = yield req.server['userManager'].isValidUser(user);
40
- if (!isValid) {
41
- return reply.status(404).send({ statusCode: 404, code: 'USER_NOT_VALID', message: 'User not valid' });
46
+ let user = null;
47
+ let token = null;
48
+ if ((_c = req.server['userManager']) === null || _c === void 0 ? void 0 : _c.isImplemented()) {
49
+ user = yield req.server['userManager'].retrieveUserByExternalId(subjectId);
50
+ if (user) {
51
+ const isValid = yield req.server['userManager'].isValidUser(user);
52
+ if (!isValid) {
53
+ return reply
54
+ .status(403)
55
+ .send({ statusCode: 403, code: 'USER_NOT_VALID', message: 'User is not valid or blocked' });
56
+ }
57
+ req.user = user;
42
58
  }
43
- req.user = user;
44
59
  }
45
- if (token) {
46
- const isValid = yield req.server['tokenManager'].isValidToken(token);
47
- if (!isValid) {
48
- return reply.status(404).send({ statusCode: 404, code: 'TOKEN_NOT_VALID', message: 'Token not valid' });
60
+ if (!user && ((_d = req.server['tokenManager']) === null || _d === void 0 ? void 0 : _d.isImplemented())) {
61
+ token = yield req.server['tokenManager'].retrieveTokenByExternalId(subjectId);
62
+ if (token) {
63
+ const isValid = yield req.server['tokenManager'].isValidToken(token);
64
+ if (!isValid) {
65
+ return reply
66
+ .status(403)
67
+ .send({ statusCode: 403, code: 'TOKEN_NOT_VALID', message: 'Token is not valid or blocked' });
68
+ }
69
+ req.token = token;
49
70
  }
50
- req.token = token;
51
71
  }
72
+ if (!req.user && !req.token) {
73
+ return reply.status(404).send({ statusCode: 404, code: 'SUBJECT_NOT_FOUND', message: 'Subject not found' });
74
+ }
75
+ const freshNormalizedRoles = normalizeRoles(((_e = req.user) === null || _e === void 0 ? void 0 : _e.roles) || ((_f = req.token) === null || _f === void 0 ? void 0 : _f.roles));
76
+ req.roles = () => freshNormalizedRoles;
52
77
  }
53
78
  catch (error) {
54
79
  const isRoutePublic = (cfg.requiredRoles || []).some((role) => role.code === roles.public.code);
55
80
  if (!isRoutePublic) {
56
- throw error;
81
+ return reply
82
+ .status(401)
83
+ .send({ statusCode: 401, code: 'UNAUTHORIZED', message: error.message || 'Invalid or expired token' });
57
84
  }
58
85
  }
59
86
  }
60
- if (((_c = cfg.requiredRoles) === null || _c === void 0 ? void 0 : _c.length) > 0) {
87
+ if (((_g = cfg.requiredRoles) === null || _g === void 0 ? void 0 : _g.length) > 0) {
61
88
  const { method = '', url = '', requiredRoles } = cfg;
62
- const authRoles = ((_f = (((_d = req.user) === null || _d === void 0 ? void 0 : _d.roles) || ((_e = req.token) === null || _e === void 0 ? void 0 : _e.roles))) === null || _f === void 0 ? void 0 : _f.map((code) => code)) || [
63
- ((_g = roles.public) === null || _g === void 0 ? void 0 : _g.code) || 'public'
64
- ];
65
- const resolvedRoles = authRoles.length > 0 ? requiredRoles.filter((r) => authRoles.includes(r.code)) : [];
66
- if (!resolvedRoles.length) {
67
- log.w && log.warn(`Not allowed to call ${method.toUpperCase()} ${url}`);
68
- return reply
69
- .status(403)
70
- .send({ statusCode: 403, code: 'ROLE_NOT_ALLOWED', message: 'Not allowed to call this route' });
89
+ const authorizedRoles = req.roles();
90
+ const hasPermission = requiredRoles.some((r) => authorizedRoles.includes(r.code));
91
+ if (!hasPermission) {
92
+ log.w && log.warn(`Forbidden: ${((_h = req.user) === null || _h === void 0 ? void 0 : _h.email) || 'anonymous'} cannot call ${method.toUpperCase()} ${url}`);
93
+ return reply.status(403).send({ statusCode: 403, code: 'FORBIDDEN', message: 'Authorization denied' });
71
94
  }
72
95
  }
73
96
  }
@@ -1 +1 @@
1
- {"version":3,"file":"onRequest.js","sourceRoot":"","sources":["../../../lib/hooks/onRequest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"onRequest.js","sourceRoot":"","sources":["../../../lib/hooks/onRequest.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ function load() {
8
8
  name: 'general',
9
9
  enable: true,
10
10
  options: {
11
+ allow_multiple_admin: false,
11
12
  reset_external_id_on_login: false,
12
13
  scheduler: false,
13
14
  embedded_auth: true
@@ -1 +1 @@
1
- {"version":3,"file":"general.js","sourceRoot":"","sources":["../../../lib/loader/general.ts"],"names":[],"mappings":";;AAIA,oBA6BC;AAhCD,uCAAgD;AAChD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAE5B,SAAgB,IAAI;IAClB,MAAM,aAAa,GAAkB;QACnC,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE;YACP,0BAA0B,EAAE,KAAK;YACjC,SAAS,EAAE,KAAK;YAChB,aAAa,EAAE,IAAI;SACpB;KACF,CAAA;IAED,MAAM,QAAQ,GAAG,IAAA,wBAAiB,EAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAA;IAC7G,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC,CAAA;QAC5C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE;YACvC,MAAM,MAAM,GAAkB,OAAO,CAAC,CAAC,CAAC,CAAA;YAExC,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI,EAAE,CAAC;gBACvC,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;gBACpC,aAAa,CAAC,OAAO,mCAChB,aAAa,CAAC,OAAO,GACrB,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAC1B,CAAA;YACH,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;IAClD,OAAO,aAAa,CAAA;AACtB,CAAC"}
1
+ {"version":3,"file":"general.js","sourceRoot":"","sources":["../../../lib/loader/general.ts"],"names":[],"mappings":";;AAIA,oBA8BC;AAjCD,uCAAgD;AAChD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAE5B,SAAgB,IAAI;IAClB,MAAM,aAAa,GAAkB;QACnC,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE;YACP,oBAAoB,EAAE,KAAK;YAC3B,0BAA0B,EAAE,KAAK;YACjC,SAAS,EAAE,KAAK;YAChB,aAAa,EAAE,IAAI;SACpB;KACF,CAAA;IAED,MAAM,QAAQ,GAAG,IAAA,wBAAiB,EAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAA;IAC7G,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC,CAAA;QAC5C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE;YACvC,MAAM,MAAM,GAAkB,OAAO,CAAC,CAAC,CAAC,CAAA;YAExC,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI,EAAE,CAAC;gBACvC,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;gBACpC,aAAa,CAAC,OAAO,mCAChB,aAAa,CAAC,OAAO,GACrB,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAC1B,CAAA;YACH,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;IAClD,OAAO,aAAa,CAAA;AACtB,CAAC"}
@@ -1,6 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.roleSchema = exports.isAdminSchema = exports.userSchema = exports.userBodySchema = void 0;
3
+ exports.roleSchema = exports.isAdminSchema = exports.userSchema = exports.userBodySchema = exports.currentUserBodySchema = void 0;
4
+ exports.currentUserBodySchema = {
5
+ $id: 'currentUserBodySchema',
6
+ type: 'object',
7
+ nullable: true,
8
+ properties: {
9
+ username: { type: 'string' }
10
+ }
11
+ };
4
12
  exports.userBodySchema = {
5
13
  $id: 'userBodySchema',
6
14
  type: 'object',
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../lib/schemas/user.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG;IAC5B,GAAG,EAAE,gBAAgB;IACrB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC5B,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACjC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7B,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC9B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;KACpD;CACF,CAAA;AAEY,QAAA,UAAU,GAAG;IACxB,GAAG,EAAE,YAAY;IACjB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACtB,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC9B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC5B,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACjC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7B,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC9B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QACnD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC3B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC9B;CACF,CAAA;AAEY,QAAA,aAAa,GAAG;IAC3B,GAAG,EAAE,eAAe;IACpB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;KAC7B;CACF,CAAA;AAEY,QAAA,UAAU,GAAG;IACxB,GAAG,EAAE,YAAY;IACjB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAChC;CACF,CAAA"}
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../lib/schemas/user.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG;IACnC,GAAG,EAAE,uBAAuB;IAC5B,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC7B;CACF,CAAA;AAEY,QAAA,cAAc,GAAG;IAC5B,GAAG,EAAE,gBAAgB;IACrB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC5B,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACjC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7B,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC9B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;KACpD;CACF,CAAA;AAEY,QAAA,UAAU,GAAG;IACxB,GAAG,EAAE,YAAY;IACjB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACtB,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC9B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC5B,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACjC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7B,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC9B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QACnD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC3B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC9B;CACF,CAAA;AAEY,QAAA,aAAa,GAAG;IAC3B,GAAG,EAAE,eAAe;IACpB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;KAC7B;CACF,CAAA;AAEY,QAAA,UAAU,GAAG;IACxB,GAAG,EAAE,YAAY;IACjB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAChC;CACF,CAAA"}
@@ -404,9 +404,9 @@
404
404
  "license": "MIT"
405
405
  },
406
406
  "node_modules/@fastify/compress": {
407
- "version": "8.1.0",
408
- "resolved": "https://registry.npmjs.org/@fastify/compress/-/compress-8.1.0.tgz",
409
- "integrity": "sha512-wX3I5u/SYQXxbqjG7CysvzeaCe4Sv8y13MnvnaGTpqfKkJbTLpwvdIDgqrwp/+UGvXOW7OLDLoTAQCDMJJRjDQ==",
407
+ "version": "8.3.0",
408
+ "resolved": "https://registry.npmjs.org/@fastify/compress/-/compress-8.3.0.tgz",
409
+ "integrity": "sha512-zYp6SCa7nJMxAse8+TXWNF0l0xV9K9GeMFwdr0aESAKfCEGo7N96b5vjFDFEz/pg8eyo1Am1B249UX79mS3x9A==",
410
410
  "funding": [
411
411
  {
412
412
  "type": "github",
@@ -712,9 +712,9 @@
712
712
  }
713
713
  },
714
714
  "node_modules/@fastify/swagger": {
715
- "version": "9.5.2",
716
- "resolved": "https://registry.npmjs.org/@fastify/swagger/-/swagger-9.5.2.tgz",
717
- "integrity": "sha512-8e8w/LItg/cF6IR/hYKtnt+E0QImees5o3YWJsTLxaIk+tzNUEc6Z2Ursi4oOHWwUlKjUCnV6yh5z5ZdxvlsWA==",
715
+ "version": "9.6.0",
716
+ "resolved": "https://registry.npmjs.org/@fastify/swagger/-/swagger-9.6.0.tgz",
717
+ "integrity": "sha512-qYsQtaWgcVTh7V9OVnbtzpo7hHXS01utWeahs43XETgTTF+iYq7u8NKNZbuoLxj+IsluZ2vjWsQLTFOnWiuCbg==",
718
718
  "funding": [
719
719
  {
720
720
  "type": "github",
@@ -3443,9 +3443,9 @@
3443
3443
  }
3444
3444
  },
3445
3445
  "node_modules/fastify": {
3446
- "version": "5.6.1",
3447
- "resolved": "https://registry.npmjs.org/fastify/-/fastify-5.6.1.tgz",
3448
- "integrity": "sha512-WjjlOciBF0K8pDUPZoGPhqhKrQJ02I8DKaDIfO51EL0kbSMwQFl85cRwhOvmSDWoukNOdTo27gLN549pLCcH7Q==",
3446
+ "version": "5.6.2",
3447
+ "resolved": "https://registry.npmjs.org/fastify/-/fastify-5.6.2.tgz",
3448
+ "integrity": "sha512-dPugdGnsvYkBlENLhCgX8yhyGCsCPrpA8lFWbTNU428l+YOnLgYHR69hzV8HWPC79n536EqzqQtvhtdaCE0dKg==",
3449
3449
  "funding": [
3450
3450
  {
3451
3451
  "type": "github",
@@ -3468,7 +3468,7 @@
3468
3468
  "fast-json-stringify": "^6.0.0",
3469
3469
  "find-my-way": "^9.0.0",
3470
3470
  "light-my-request": "^6.0.0",
3471
- "pino": "^9.0.0",
3471
+ "pino": "^10.1.0",
3472
3472
  "process-warning": "^5.0.0",
3473
3473
  "rfdc": "^1.3.1",
3474
3474
  "secure-json-parse": "^4.0.0",
@@ -3515,28 +3515,6 @@
3515
3515
  "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==",
3516
3516
  "license": "BSD-3-Clause"
3517
3517
  },
3518
- "node_modules/fastify/node_modules/pino": {
3519
- "version": "9.14.0",
3520
- "resolved": "https://registry.npmjs.org/pino/-/pino-9.14.0.tgz",
3521
- "integrity": "sha512-8OEwKp5juEvb/MjpIc4hjqfgCNysrS94RIOMXYvpYCdm/jglrKEiAYmiumbmGhCvs+IcInsphYDFwqrjr7398w==",
3522
- "license": "MIT",
3523
- "dependencies": {
3524
- "@pinojs/redact": "^0.4.0",
3525
- "atomic-sleep": "^1.0.0",
3526
- "on-exit-leak-free": "^2.1.0",
3527
- "pino-abstract-transport": "^2.0.0",
3528
- "pino-std-serializers": "^7.0.0",
3529
- "process-warning": "^5.0.0",
3530
- "quick-format-unescaped": "^4.0.3",
3531
- "real-require": "^0.2.0",
3532
- "safe-stable-stringify": "^2.3.1",
3533
- "sonic-boom": "^4.0.1",
3534
- "thread-stream": "^3.0.0"
3535
- },
3536
- "bin": {
3537
- "pino": "bin.js"
3538
- }
3539
- },
3540
3518
  "node_modules/fastparallel": {
3541
3519
  "version": "2.4.1",
3542
3520
  "resolved": "https://registry.npmjs.org/fastparallel/-/fastparallel-2.4.1.tgz",
@@ -4608,9 +4586,9 @@
4608
4586
  }
4609
4587
  },
4610
4588
  "node_modules/ip-address": {
4611
- "version": "10.0.1",
4612
- "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.0.1.tgz",
4613
- "integrity": "sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==",
4589
+ "version": "10.1.0",
4590
+ "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz",
4591
+ "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==",
4614
4592
  "dev": true,
4615
4593
  "license": "MIT",
4616
4594
  "engines": {
@@ -7267,9 +7245,9 @@
7267
7245
  "license": "MIT"
7268
7246
  },
7269
7247
  "node_modules/path-scurry": {
7270
- "version": "2.0.0",
7271
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz",
7272
- "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==",
7248
+ "version": "2.0.1",
7249
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz",
7250
+ "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==",
7273
7251
  "license": "BlueOak-1.0.0",
7274
7252
  "dependencies": {
7275
7253
  "lru-cache": "^11.0.0",
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volcanicminds/backend",
3
- "version": "2.0.0",
3
+ "version": "2.0.2",
4
4
  "codename": "rome",
5
5
  "license": "MIT",
6
6
  "description": "The volcanic (minds) backend",
@@ -240,9 +240,7 @@ export async function login(req: FastifyRequest, reply: FastifyReply) {
240
240
 
241
241
  const isPasswordToBeChanged = req.server['userManager'].isPasswordToBeChanged(user)
242
242
  if (isPasswordToBeChanged) {
243
- return reply
244
- .status(403)
245
- .send({ statusCode: 403, code: 'PASSWORD_TO_BE_CHANGED', message: 'The password is expired' })
243
+ return reply.status(403).send({ statusCode: 403, code: 'PASSWORD_TO_BE_CHANGED', message: 'Password is expired' })
246
244
  }
247
245
 
248
246
  if (user.blocked) {
@@ -1,19 +1,9 @@
1
1
  import { FastifyReply, FastifyRequest } from 'fastify'
2
2
  import { AuthenticatedUser } from '../../../../types/global'
3
3
 
4
- export function currentUser(req: FastifyRequest, reply: FastifyReply) {
5
- const user: AuthenticatedUser | undefined = req.user
6
- reply.send(user ? { ...user, roles: req.roles() } : {})
7
- }
8
-
9
- export function isAdmin(req: FastifyRequest, reply: FastifyReply) {
10
- const user: AuthenticatedUser | undefined = req.user
11
- reply.send({ isAdmin: user?.getId() && req.hasRole(roles.admin) })
12
- }
13
-
14
- export function getRoles(req: FastifyRequest, reply: FastifyReply) {
4
+ export async function getRoles(req: FastifyRequest, reply: FastifyReply) {
15
5
  const allRoles = Object.keys(roles).map((key) => roles[key])
16
- reply.send(allRoles)
6
+ return reply.send(allRoles)
17
7
  }
18
8
 
19
9
  export async function count(req: FastifyRequest, reply: FastifyReply) {
@@ -32,13 +22,24 @@ export async function findOne(req: FastifyRequest, reply: FastifyReply) {
32
22
  }
33
23
 
34
24
  export async function create(req: FastifyRequest, reply: FastifyReply) {
25
+ if (!req.hasRole(roles.admin)) {
26
+ return reply.status(403).send(Error('Only admins can create users'))
27
+ }
28
+
35
29
  const { id, ...data } = req.data()
30
+
31
+ if (data.roles && data.roles.includes(roles.admin)) {
32
+ if (!config.enable || config.options?.allow_multiple_admin !== true) {
33
+ return reply.status(403).send(Error('Cannot assign admin role to a user'))
34
+ }
35
+ }
36
+
36
37
  const user = await req.server['userManager'].createUser(data)
37
38
  return user ? entity.User.save(user) : reply.status(400).send(Error('User not creatable'))
38
39
  }
39
40
 
40
41
  export async function update(req: FastifyRequest, reply: FastifyReply) {
41
- const { id, ...userData } = req.parameters()
42
+ const { id, ...userData } = req.data()
42
43
  if (!id) {
43
44
  return reply.status(400).send('Missing required id parameter')
44
45
  }
@@ -53,3 +54,24 @@ export async function remove(req: FastifyRequest, reply: FastifyReply) {
53
54
  }
54
55
  return await req.server['userManager'].deleteUser(id)
55
56
  }
57
+
58
+ export async function getCurrentUser(req: FastifyRequest, reply: FastifyReply) {
59
+ const user: AuthenticatedUser | undefined = req.user
60
+ return reply.send(user ? { ...user, roles: req.roles() } : {})
61
+ }
62
+
63
+ export async function updateCurrentUser(req: FastifyRequest, reply: FastifyReply) {
64
+ const user: AuthenticatedUser | undefined = req.user
65
+ const id = user?.getId()
66
+ if (!id) {
67
+ return reply.status(403).send('Cannot update current user')
68
+ }
69
+
70
+ const { id: _id, ...userData } = req.data()
71
+ return await req.server['userManager'].updateUserById(id, userData)
72
+ }
73
+
74
+ export async function isAdmin(req: FastifyRequest, reply: FastifyReply) {
75
+ const user: AuthenticatedUser | undefined = req.user
76
+ return reply.send({ isAdmin: user?.getId() && req.hasRole(roles.admin) })
77
+ }
@@ -64,9 +64,9 @@ module.exports = {
64
64
  {
65
65
  method: 'GET',
66
66
  path: '/:id',
67
- roles: [],
67
+ roles: [roles.admin],
68
68
  handler: 'user.findOne',
69
- middlewares: [],
69
+ middlewares: ['global.isAuthenticated'],
70
70
  config: {
71
71
  title: 'Find user',
72
72
  description: 'Get user by id',
@@ -82,9 +82,9 @@ module.exports = {
82
82
  {
83
83
  method: 'PUT',
84
84
  path: '/:id',
85
- roles: [],
85
+ roles: [roles.admin],
86
86
  handler: 'user.update',
87
- middlewares: [],
87
+ middlewares: ['global.isAuthenticated'],
88
88
  config: {
89
89
  title: 'Update user',
90
90
  description: 'Updates a user by id',
@@ -101,9 +101,9 @@ module.exports = {
101
101
  {
102
102
  method: 'POST',
103
103
  path: '/',
104
- roles: [],
104
+ roles: [roles.admin],
105
105
  handler: 'user.create',
106
- middlewares: [],
106
+ middlewares: ['global.isAuthenticated'],
107
107
  config: {
108
108
  title: 'Create a user',
109
109
  description: 'Creates a new user',
@@ -119,9 +119,9 @@ module.exports = {
119
119
  {
120
120
  method: 'DELETE',
121
121
  path: '/:id',
122
- roles: [],
122
+ roles: [roles.admin],
123
123
  handler: 'user.remove',
124
- middlewares: [],
124
+ middlewares: ['global.isAuthenticated'],
125
125
  config: {
126
126
  title: 'Delete user',
127
127
  description: 'Deletes user by id',
@@ -138,7 +138,7 @@ module.exports = {
138
138
  method: 'GET',
139
139
  path: '/me',
140
140
  roles: [],
141
- handler: 'user.currentUser',
141
+ handler: 'user.getCurrentUser',
142
142
  middlewares: ['global.isAuthenticated'],
143
143
  config: {
144
144
  title: 'Get current user',
@@ -148,6 +148,24 @@ module.exports = {
148
148
  }
149
149
  }
150
150
  },
151
+ {
152
+ method: 'PUT',
153
+ path: '/me',
154
+ roles: [],
155
+ handler: 'user.updateCurrentUser',
156
+ middlewares: ['global.isAuthenticated'],
157
+ config: {
158
+ title: 'Update current user',
159
+ description: 'Update current user',
160
+ body: { $ref: 'currentUserBodySchema#' },
161
+ response: {
162
+ 200: {
163
+ description: 'Default response',
164
+ $ref: 'userSchema#'
165
+ }
166
+ }
167
+ }
168
+ },
151
169
  {
152
170
  method: 'GET',
153
171
  path: '/is-admin',
@@ -4,6 +4,7 @@ module.exports = {
4
4
  name: 'general',
5
5
  enable: true,
6
6
  options: {
7
+ allow_multiple_admin: false,
7
8
  reset_external_id_on_login: false,
8
9
  scheduler: false,
9
10
  embedded_auth: true
@@ -3,71 +3,108 @@ import { AuthenticatedUser, AuthenticatedToken, Role } from '../../types/global'
3
3
 
4
4
  const { embedded_auth = true } = global.config?.options || {}
5
5
 
6
+ const normalizeRoles = (rolesArray: any[] | undefined): string[] => {
7
+ if (!rolesArray || rolesArray.length === 0) {
8
+ return [roles.public.code]
9
+ }
10
+
11
+ // Check the type of the first element to determine the array's structure
12
+ const firstElement = rolesArray[0]
13
+ if (typeof firstElement === 'string') {
14
+ return rolesArray as string[]
15
+ }
16
+
17
+ if (typeof firstElement === 'object' && firstElement !== null && 'code' in firstElement) {
18
+ return rolesArray.map((role: Role) => role.code)
19
+ }
20
+
21
+ // Fallback for unexpected formats
22
+ return [roles.public.code]
23
+ }
24
+
6
25
  module.exports = async (req, reply) => {
7
26
  log.i && (req.startedAt = new Date())
8
27
 
9
- // request enrichment
28
+ // Request enrichment
10
29
  req.data = () => getData(req)
11
30
  req.parameters = () => getParams(req)
12
31
 
13
32
  if (embedded_auth) {
14
- req.roles = () => (req.user ? req.user.roles : [roles.public])
15
- req.hasRole = (r: Role) => (req.user ? req.user.roles : [roles.public]).some((role) => role === r?.code)
33
+ // Initialize role helpers with a default 'public' role
34
+ req.roles = () => [roles.public.code]
35
+ req.hasRole = (r: Role) => req.roles().includes(r?.code)
16
36
 
17
- // authorization check
18
37
  const auth = req.headers?.authorization || ''
19
38
  const cfg = req.routeOptions?.config || req.routeConfig || {}
20
39
  const [prefix, bearerToken] = auth.split(' ')
21
40
 
22
41
  if (prefix === 'Bearer' && bearerToken != null) {
23
- let user: null | AuthenticatedUser = null
24
- let token: null | AuthenticatedToken = null
25
-
26
42
  try {
27
43
  const tokenData = reply.server.jwt.verify(bearerToken)
28
- user = await req.server['userManager'].retrieveUserByExternalId(tokenData?.sub)
29
- if (!user && req.server['tokenManager'].isImplemented()) {
30
- token = await req.server['tokenManager'].retrieveTokenByExternalId(tokenData?.sub)
31
- }
32
- if (!user && !token) {
33
- return reply.status(404).send({ statusCode: 404, code: 'USER_NOT_FOUND', message: 'User not found' })
44
+ const subjectId = tokenData?.sub
45
+
46
+ if (!subjectId) {
47
+ throw new Error('Invalid token subject')
34
48
  }
35
- if (user) {
36
- const isValid = await req.server['userManager'].isValidUser(user)
37
- if (!isValid) {
38
- return reply.status(404).send({ statusCode: 404, code: 'USER_NOT_VALID', message: 'User not valid' })
49
+
50
+ let user: null | AuthenticatedUser = null
51
+ let token: null | AuthenticatedToken = null
52
+
53
+ // Attempt to retrieve user only if userManager is implemented
54
+ if (req.server['userManager']?.isImplemented()) {
55
+ user = await req.server['userManager'].retrieveUserByExternalId(subjectId)
56
+ if (user) {
57
+ const isValid = await req.server['userManager'].isValidUser(user)
58
+ if (!isValid) {
59
+ return reply
60
+ .status(403)
61
+ .send({ statusCode: 403, code: 'USER_NOT_VALID', message: 'User is not valid or blocked' })
62
+ }
63
+ req.user = user
39
64
  }
40
- // ok, we have the full user here
41
- req.user = user
42
65
  }
43
- if (token) {
44
- const isValid = await req.server['tokenManager'].isValidToken(token)
45
- if (!isValid) {
46
- return reply.status(404).send({ statusCode: 404, code: 'TOKEN_NOT_VALID', message: 'Token not valid' })
66
+
67
+ // Attempt to retrieve token if user was not found and tokenManager is implemented
68
+ if (!user && req.server['tokenManager']?.isImplemented()) {
69
+ token = await req.server['tokenManager'].retrieveTokenByExternalId(subjectId)
70
+ if (token) {
71
+ const isValid = await req.server['tokenManager'].isValidToken(token)
72
+ if (!isValid) {
73
+ return reply
74
+ .status(403)
75
+ .send({ statusCode: 403, code: 'TOKEN_NOT_VALID', message: 'Token is not valid or blocked' })
76
+ }
77
+ req.token = token
47
78
  }
48
- // ok, we have the full user here
49
- req.token = token
50
79
  }
80
+
81
+ if (!req.user && !req.token) {
82
+ return reply.status(404).send({ statusCode: 404, code: 'SUBJECT_NOT_FOUND', message: 'Subject not found' })
83
+ }
84
+
85
+ // Re-normalize roles now that req.user or req.token is populated
86
+ const freshNormalizedRoles = normalizeRoles(req.user?.roles || req.token?.roles)
87
+ req.roles = () => freshNormalizedRoles
51
88
  } catch (error) {
52
89
  const isRoutePublic = (cfg.requiredRoles || []).some((role: Role) => role.code === roles.public.code)
53
90
  if (!isRoutePublic) {
54
- throw error
91
+ return reply
92
+ .status(401)
93
+ .send({ statusCode: 401, code: 'UNAUTHORIZED', message: error.message || 'Invalid or expired token' })
55
94
  }
56
95
  }
57
96
  }
58
97
 
98
+ // Role-Based Access Control (RBAC) check
59
99
  if (cfg.requiredRoles?.length > 0) {
60
100
  const { method = '', url = '', requiredRoles } = cfg
61
- const authRoles: string[] = ((req.user?.roles || req.token?.roles)?.map((code) => code) as string[]) || [
62
- roles.public?.code || 'public'
63
- ]
64
- const resolvedRoles = authRoles.length > 0 ? requiredRoles.filter((r) => authRoles.includes(r.code)) : []
65
-
66
- if (!resolvedRoles.length) {
67
- log.w && log.warn(`Not allowed to call ${method.toUpperCase()} ${url}`)
68
- return reply
69
- .status(403)
70
- .send({ statusCode: 403, code: 'ROLE_NOT_ALLOWED', message: 'Not allowed to call this route' })
101
+ const authorizedRoles: string[] = req.roles()
102
+
103
+ const hasPermission = requiredRoles.some((r) => authorizedRoles.includes(r.code))
104
+
105
+ if (!hasPermission) {
106
+ log.w && log.warn(`Forbidden: ${req.user?.email || 'anonymous'} cannot call ${method.toUpperCase()} ${url}`)
107
+ return reply.status(403).send({ statusCode: 403, code: 'FORBIDDEN', message: 'Authorization denied' })
71
108
  }
72
109
  }
73
110
  }
@@ -7,6 +7,7 @@ export function load() {
7
7
  name: 'general',
8
8
  enable: true,
9
9
  options: {
10
+ allow_multiple_admin: false,
10
11
  reset_external_id_on_login: false,
11
12
  scheduler: false,
12
13
  embedded_auth: true
@@ -1,3 +1,12 @@
1
+ export const currentUserBodySchema = {
2
+ $id: 'currentUserBodySchema',
3
+ type: 'object',
4
+ nullable: true,
5
+ properties: {
6
+ username: { type: 'string' }
7
+ }
8
+ }
9
+
1
10
  export const userBodySchema = {
2
11
  $id: 'userBodySchema',
3
12
  type: 'object',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volcanicminds/backend",
3
- "version": "2.0.0",
3
+ "version": "2.0.2",
4
4
  "codename": "rome",
5
5
  "license": "MIT",
6
6
  "description": "The volcanic (minds) backend",
package/types/global.d.ts CHANGED
@@ -57,6 +57,7 @@ export interface GeneralConfig {
57
57
  name: string
58
58
  enable: boolean
59
59
  options: {
60
+ allow_multiple_admin: boolean
60
61
  reset_external_id_on_login: boolean
61
62
  scheduler: boolean
62
63
  embedded_auth: boolean