@kalisio/kdk 2.5.2 → 2.5.3

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 (275) hide show
  1. package/core/client/components/input/KShapePicker.vue +4 -4
  2. package/coverage/core/api/application.js.html +344 -344
  3. package/coverage/core/api/authentication.js.html +79 -79
  4. package/coverage/core/api/db.js.html +167 -167
  5. package/coverage/core/api/hooks/hooks.authentication.js.html +12 -12
  6. package/coverage/core/api/hooks/hooks.authorisations.js.html +166 -163
  7. package/coverage/core/api/hooks/hooks.groups.js.html +1 -1
  8. package/coverage/core/api/hooks/hooks.logger.js.html +18 -18
  9. package/coverage/core/api/hooks/hooks.model.js.html +280 -268
  10. package/coverage/core/api/hooks/hooks.organisations.js.html +1 -1
  11. package/coverage/core/api/hooks/hooks.push.js.html +12 -12
  12. package/coverage/core/api/hooks/hooks.query.js.html +92 -92
  13. package/coverage/core/api/hooks/hooks.schemas.js.html +13 -13
  14. package/coverage/core/api/hooks/hooks.service.js.html +28 -28
  15. package/coverage/core/api/hooks/hooks.storage.js.html +7 -7
  16. package/coverage/core/api/hooks/hooks.users.js.html +48 -48
  17. package/coverage/core/api/hooks/index.html +49 -49
  18. package/coverage/core/api/hooks/index.js.html +11 -11
  19. package/coverage/core/api/index.html +42 -42
  20. package/coverage/core/api/index.js.html +22 -22
  21. package/coverage/core/api/marshall.js.html +127 -127
  22. package/coverage/core/api/models/groups.model.mongodb.js.html +1 -1
  23. package/coverage/core/api/models/index.html +1 -1
  24. package/coverage/core/api/models/messages.model.mongodb.js.html +1 -1
  25. package/coverage/core/api/models/organisations.model.mongodb.js.html +1 -1
  26. package/coverage/core/api/models/tags.model.mongodb.js.html +1 -1
  27. package/coverage/core/api/models/users.model.mongodb.js.html +11 -11
  28. package/coverage/core/api/services/account/account.hooks.js.html +42 -42
  29. package/coverage/core/api/services/account/account.service.js.html +34 -34
  30. package/coverage/core/api/services/account/index.html +1 -1
  31. package/coverage/core/api/services/authorisations/authorisations.hooks.js.html +34 -34
  32. package/coverage/core/api/services/authorisations/authorisations.service.js.html +108 -120
  33. package/coverage/core/api/services/authorisations/index.html +19 -19
  34. package/coverage/core/api/services/databases/databases.hooks.js.html +1 -1
  35. package/coverage/core/api/services/databases/databases.service.js.html +1 -1
  36. package/coverage/core/api/services/databases/index.html +1 -1
  37. package/coverage/core/api/services/groups/groups.hooks.js.html +1 -1
  38. package/coverage/core/api/services/groups/index.html +1 -1
  39. package/coverage/core/api/services/import-export/import-export.hooks.js.html +1 -1
  40. package/coverage/core/api/services/import-export/import-export.service.js.html +1 -1
  41. package/coverage/core/api/services/import-export/index.html +1 -1
  42. package/coverage/core/api/services/index.html +15 -15
  43. package/coverage/core/api/services/index.js.html +97 -85
  44. package/coverage/core/api/services/mailer/index.html +1 -1
  45. package/coverage/core/api/services/mailer/mailer.hooks.js.html +1 -1
  46. package/coverage/core/api/services/mailer/mailer.service.js.html +1 -1
  47. package/coverage/core/api/services/messages/index.html +5 -5
  48. package/coverage/core/api/services/messages/messages.hooks.js.html +11 -8
  49. package/coverage/core/api/services/organisations/index.html +1 -1
  50. package/coverage/core/api/services/organisations/organisations.hooks.js.html +1 -1
  51. package/coverage/core/api/services/organisations/organisations.service.js.html +1 -1
  52. package/coverage/core/api/services/push/index.html +1 -1
  53. package/coverage/core/api/services/push/push.hooks.js.html +1 -1
  54. package/coverage/core/api/services/push/push.service.js.html +1 -1
  55. package/coverage/core/api/services/storage/index.html +1 -1
  56. package/coverage/core/api/services/storage/storage.hooks.js.html +36 -36
  57. package/coverage/core/api/services/storage/storage.service.js.html +30 -30
  58. package/coverage/core/api/services/tags/index.html +1 -1
  59. package/coverage/core/api/services/tags/tags.hooks.js.html +1 -1
  60. package/coverage/core/api/services/users/index.html +7 -7
  61. package/coverage/core/api/services/users/users.hooks.js.html +83 -80
  62. package/coverage/core/api/services/users/users.service.js.html +4 -4
  63. package/coverage/core/api/utils.js.html +1 -1
  64. package/coverage/core/common/errors.js.html +2 -2
  65. package/coverage/core/common/index.html +30 -30
  66. package/coverage/core/common/index.js.html +11 -11
  67. package/coverage/core/common/permissions.js.html +187 -187
  68. package/coverage/core/common/schema.js.html +26 -26
  69. package/coverage/core/common/utils.js.html +61 -61
  70. package/coverage/core/common/utils.offline.js.html +6 -6
  71. package/coverage/index.html +179 -164
  72. package/coverage/lcov-report/core/api/application.js.html +344 -344
  73. package/coverage/lcov-report/core/api/authentication.js.html +79 -79
  74. package/coverage/lcov-report/core/api/db.js.html +167 -167
  75. package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +12 -12
  76. package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +166 -163
  77. package/coverage/lcov-report/core/api/hooks/hooks.groups.js.html +1 -1
  78. package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +18 -18
  79. package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +280 -268
  80. package/coverage/lcov-report/core/api/hooks/hooks.organisations.js.html +1 -1
  81. package/coverage/lcov-report/core/api/hooks/hooks.push.js.html +12 -12
  82. package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +92 -92
  83. package/coverage/lcov-report/core/api/hooks/hooks.schemas.js.html +13 -13
  84. package/coverage/lcov-report/core/api/hooks/hooks.service.js.html +28 -28
  85. package/coverage/lcov-report/core/api/hooks/hooks.storage.js.html +7 -7
  86. package/coverage/lcov-report/core/api/hooks/hooks.users.js.html +48 -48
  87. package/coverage/lcov-report/core/api/hooks/index.html +49 -49
  88. package/coverage/lcov-report/core/api/hooks/index.js.html +11 -11
  89. package/coverage/lcov-report/core/api/index.html +42 -42
  90. package/coverage/lcov-report/core/api/index.js.html +22 -22
  91. package/coverage/lcov-report/core/api/marshall.js.html +127 -127
  92. package/coverage/lcov-report/core/api/models/groups.model.mongodb.js.html +1 -1
  93. package/coverage/lcov-report/core/api/models/index.html +1 -1
  94. package/coverage/lcov-report/core/api/models/messages.model.mongodb.js.html +1 -1
  95. package/coverage/lcov-report/core/api/models/organisations.model.mongodb.js.html +1 -1
  96. package/coverage/lcov-report/core/api/models/tags.model.mongodb.js.html +1 -1
  97. package/coverage/lcov-report/core/api/models/users.model.mongodb.js.html +11 -11
  98. package/coverage/lcov-report/core/api/services/account/account.hooks.js.html +42 -42
  99. package/coverage/lcov-report/core/api/services/account/account.service.js.html +34 -34
  100. package/coverage/lcov-report/core/api/services/account/index.html +1 -1
  101. package/coverage/lcov-report/core/api/services/authorisations/authorisations.hooks.js.html +34 -34
  102. package/coverage/lcov-report/core/api/services/authorisations/authorisations.service.js.html +108 -120
  103. package/coverage/lcov-report/core/api/services/authorisations/index.html +19 -19
  104. package/coverage/lcov-report/core/api/services/databases/databases.hooks.js.html +1 -1
  105. package/coverage/lcov-report/core/api/services/databases/databases.service.js.html +1 -1
  106. package/coverage/lcov-report/core/api/services/databases/index.html +1 -1
  107. package/coverage/lcov-report/core/api/services/groups/groups.hooks.js.html +1 -1
  108. package/coverage/lcov-report/core/api/services/groups/index.html +1 -1
  109. package/coverage/lcov-report/core/api/services/import-export/import-export.hooks.js.html +1 -1
  110. package/coverage/lcov-report/core/api/services/import-export/import-export.service.js.html +1 -1
  111. package/coverage/lcov-report/core/api/services/import-export/index.html +1 -1
  112. package/coverage/lcov-report/core/api/services/index.html +15 -15
  113. package/coverage/lcov-report/core/api/services/index.js.html +97 -85
  114. package/coverage/lcov-report/core/api/services/mailer/index.html +1 -1
  115. package/coverage/lcov-report/core/api/services/mailer/mailer.hooks.js.html +1 -1
  116. package/coverage/lcov-report/core/api/services/mailer/mailer.service.js.html +1 -1
  117. package/coverage/lcov-report/core/api/services/messages/index.html +5 -5
  118. package/coverage/lcov-report/core/api/services/messages/messages.hooks.js.html +11 -8
  119. package/coverage/lcov-report/core/api/services/organisations/index.html +1 -1
  120. package/coverage/lcov-report/core/api/services/organisations/organisations.hooks.js.html +1 -1
  121. package/coverage/lcov-report/core/api/services/organisations/organisations.service.js.html +1 -1
  122. package/coverage/lcov-report/core/api/services/push/index.html +1 -1
  123. package/coverage/lcov-report/core/api/services/push/push.hooks.js.html +1 -1
  124. package/coverage/lcov-report/core/api/services/push/push.service.js.html +1 -1
  125. package/coverage/lcov-report/core/api/services/storage/index.html +1 -1
  126. package/coverage/lcov-report/core/api/services/storage/storage.hooks.js.html +36 -36
  127. package/coverage/lcov-report/core/api/services/storage/storage.service.js.html +30 -30
  128. package/coverage/lcov-report/core/api/services/tags/index.html +1 -1
  129. package/coverage/lcov-report/core/api/services/tags/tags.hooks.js.html +1 -1
  130. package/coverage/lcov-report/core/api/services/users/index.html +7 -7
  131. package/coverage/lcov-report/core/api/services/users/users.hooks.js.html +83 -80
  132. package/coverage/lcov-report/core/api/services/users/users.service.js.html +4 -4
  133. package/coverage/lcov-report/core/api/utils.js.html +1 -1
  134. package/coverage/lcov-report/core/common/errors.js.html +2 -2
  135. package/coverage/lcov-report/core/common/index.html +30 -30
  136. package/coverage/lcov-report/core/common/index.js.html +11 -11
  137. package/coverage/lcov-report/core/common/permissions.js.html +187 -187
  138. package/coverage/lcov-report/core/common/schema.js.html +26 -26
  139. package/coverage/lcov-report/core/common/utils.js.html +61 -61
  140. package/coverage/lcov-report/core/common/utils.offline.js.html +6 -6
  141. package/coverage/lcov-report/index.html +179 -164
  142. package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +348 -258
  143. package/coverage/lcov-report/map/api/hooks/hooks.features.js.html +218 -218
  144. package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +795 -810
  145. package/coverage/lcov-report/map/api/hooks/index.html +54 -54
  146. package/coverage/lcov-report/map/api/hooks/index.js.html +16 -16
  147. package/coverage/lcov-report/map/api/index.html +32 -32
  148. package/coverage/lcov-report/map/api/index.js.html +46 -46
  149. package/coverage/lcov-report/map/api/marshall.js.html +72 -72
  150. package/coverage/lcov-report/map/api/models/alerts.model.mongodb.js.html +24 -24
  151. package/coverage/lcov-report/map/api/models/catalog.model.mongodb.js.html +69 -27
  152. package/coverage/lcov-report/map/api/models/features.model.mongodb.js.html +80 -80
  153. package/coverage/lcov-report/map/api/models/index.html +69 -54
  154. package/coverage/lcov-report/map/api/models/projects.model.mongodb.js.html +26 -26
  155. package/coverage/lcov-report/map/api/models/styles.model.mongodb.js.html +112 -0
  156. package/coverage/lcov-report/map/api/services/alerts/alerts.hooks.js.html +136 -136
  157. package/coverage/lcov-report/map/api/services/alerts/alerts.service.js.html +343 -343
  158. package/coverage/lcov-report/map/api/services/alerts/index.html +32 -32
  159. package/coverage/lcov-report/map/api/services/catalog/catalog.hooks.js.html +177 -162
  160. package/coverage/lcov-report/map/api/services/catalog/index.html +21 -21
  161. package/coverage/lcov-report/map/api/services/daptiles/daptiles.service.js.html +1 -1
  162. package/coverage/lcov-report/map/api/services/daptiles/index.html +1 -1
  163. package/coverage/lcov-report/map/api/services/features/features.hooks.js.html +160 -160
  164. package/coverage/lcov-report/map/api/services/features/features.service.js.html +117 -117
  165. package/coverage/lcov-report/map/api/services/features/index.html +31 -31
  166. package/coverage/lcov-report/map/api/services/index.html +21 -21
  167. package/coverage/lcov-report/map/api/services/index.js.html +404 -296
  168. package/coverage/lcov-report/map/api/services/projects/index.html +21 -21
  169. package/coverage/lcov-report/map/api/services/projects/projects.hooks.js.html +237 -237
  170. package/coverage/lcov-report/map/api/services/styles/index.html +116 -0
  171. package/coverage/lcov-report/map/api/services/styles/styles.hooks.js.html +196 -0
  172. package/coverage/lcov-report/map/common/dynamic-grid-source.js.html +68 -68
  173. package/coverage/lcov-report/map/common/errors.js.html +16 -16
  174. package/coverage/lcov-report/map/common/geotiff-grid-source.js.html +267 -267
  175. package/coverage/lcov-report/map/common/grid.js.html +554 -554
  176. package/coverage/lcov-report/map/common/index.html +158 -158
  177. package/coverage/lcov-report/map/common/index.js.html +68 -68
  178. package/coverage/lcov-report/map/common/meteo-model-grid-source.js.html +73 -73
  179. package/coverage/lcov-report/map/common/moment-utils.js.html +18 -18
  180. package/coverage/lcov-report/map/common/opendap-grid-source.js.html +484 -484
  181. package/coverage/lcov-report/map/common/opendap-utils.js.html +353 -353
  182. package/coverage/lcov-report/map/common/permissions.js.html +42 -36
  183. package/coverage/lcov-report/map/common/time-based-grid-source.js.html +59 -59
  184. package/coverage/lcov-report/map/common/tms-utils.js.html +6 -6
  185. package/coverage/lcov-report/map/common/wcs-grid-source.js.html +190 -190
  186. package/coverage/lcov-report/map/common/wcs-utils.js.html +339 -339
  187. package/coverage/lcov-report/map/common/weacast-grid-source.js.html +345 -345
  188. package/coverage/lcov-report/map/common/wfs-utils.js.html +11 -11
  189. package/coverage/lcov-report/map/common/wms-utils.js.html +8 -8
  190. package/coverage/lcov-report/map/common/wmts-utils.js.html +7 -7
  191. package/coverage/lcov.info +7022 -5894
  192. package/coverage/map/api/hooks/hooks.catalog.js.html +348 -258
  193. package/coverage/map/api/hooks/hooks.features.js.html +218 -218
  194. package/coverage/map/api/hooks/hooks.query.js.html +795 -810
  195. package/coverage/map/api/hooks/index.html +54 -54
  196. package/coverage/map/api/hooks/index.js.html +16 -16
  197. package/coverage/map/api/index.html +32 -32
  198. package/coverage/map/api/index.js.html +46 -46
  199. package/coverage/map/api/marshall.js.html +72 -72
  200. package/coverage/map/api/models/alerts.model.mongodb.js.html +24 -24
  201. package/coverage/map/api/models/catalog.model.mongodb.js.html +69 -27
  202. package/coverage/map/api/models/features.model.mongodb.js.html +80 -80
  203. package/coverage/map/api/models/index.html +69 -54
  204. package/coverage/map/api/models/projects.model.mongodb.js.html +26 -26
  205. package/coverage/map/api/models/styles.model.mongodb.js.html +112 -0
  206. package/coverage/map/api/services/alerts/alerts.hooks.js.html +136 -136
  207. package/coverage/map/api/services/alerts/alerts.service.js.html +343 -343
  208. package/coverage/map/api/services/alerts/index.html +32 -32
  209. package/coverage/map/api/services/catalog/catalog.hooks.js.html +177 -162
  210. package/coverage/map/api/services/catalog/index.html +21 -21
  211. package/coverage/map/api/services/daptiles/daptiles.service.js.html +1 -1
  212. package/coverage/map/api/services/daptiles/index.html +1 -1
  213. package/coverage/map/api/services/features/features.hooks.js.html +160 -160
  214. package/coverage/map/api/services/features/features.service.js.html +117 -117
  215. package/coverage/map/api/services/features/index.html +31 -31
  216. package/coverage/map/api/services/index.html +21 -21
  217. package/coverage/map/api/services/index.js.html +404 -296
  218. package/coverage/map/api/services/projects/index.html +21 -21
  219. package/coverage/map/api/services/projects/projects.hooks.js.html +237 -237
  220. package/coverage/map/api/services/styles/index.html +116 -0
  221. package/coverage/map/api/services/styles/styles.hooks.js.html +196 -0
  222. package/coverage/map/common/dynamic-grid-source.js.html +68 -68
  223. package/coverage/map/common/errors.js.html +16 -16
  224. package/coverage/map/common/geotiff-grid-source.js.html +267 -267
  225. package/coverage/map/common/grid.js.html +554 -554
  226. package/coverage/map/common/index.html +158 -158
  227. package/coverage/map/common/index.js.html +68 -68
  228. package/coverage/map/common/meteo-model-grid-source.js.html +73 -73
  229. package/coverage/map/common/moment-utils.js.html +18 -18
  230. package/coverage/map/common/opendap-grid-source.js.html +484 -484
  231. package/coverage/map/common/opendap-utils.js.html +353 -353
  232. package/coverage/map/common/permissions.js.html +42 -36
  233. package/coverage/map/common/time-based-grid-source.js.html +59 -59
  234. package/coverage/map/common/tms-utils.js.html +6 -6
  235. package/coverage/map/common/wcs-grid-source.js.html +190 -190
  236. package/coverage/map/common/wcs-utils.js.html +339 -339
  237. package/coverage/map/common/weacast-grid-source.js.html +345 -345
  238. package/coverage/map/common/wfs-utils.js.html +11 -11
  239. package/coverage/map/common/wms-utils.js.html +8 -8
  240. package/coverage/map/common/wmts-utils.js.html +7 -7
  241. package/coverage/tmp/coverage-151198-1753351220086-0.json +1 -0
  242. package/coverage/tmp/coverage-151210-1753351220070-0.json +1 -0
  243. package/coverage/tmp/coverage-151221-1753351129816-0.json +1 -0
  244. package/coverage/tmp/coverage-151233-1753351129803-0.json +1 -0
  245. package/coverage/tmp/coverage-151240-1753351129770-0.json +1 -0
  246. package/coverage/tmp/coverage-151307-1753351220058-0.json +1 -0
  247. package/coverage/tmp/coverage-151319-1753351220044-0.json +1 -0
  248. package/coverage/tmp/coverage-151326-1753351220010-0.json +1 -0
  249. package/map/api/services/styles/styles.hooks.js +1 -1
  250. package/map/client/components/KLayerEditor.vue +4 -0
  251. package/map/client/components/catalog/KLayerCategories.vue +2 -0
  252. package/map/client/components/stickies/KLevelSlider.vue +10 -8
  253. package/map/client/components/styles/KStyleEditor.vue +1 -1
  254. package/map/client/components/styles/KStyleManager.vue +7 -1
  255. package/map/client/composables/highlight.js +5 -1
  256. package/map/client/i18n/map_en.json +4 -1
  257. package/map/client/i18n/map_fr.json +4 -1
  258. package/map/client/mixins/globe/mixin.geojson-layers.js +11 -5
  259. package/map/client/mixins/mixin.activity.js +9 -0
  260. package/map/client/utils/utils.layers.js +0 -2
  261. package/package.json +1 -1
  262. package/test/api/core/push.test.js +1 -1
  263. package/test/api/core/test-log-2025-02-05.log +23 -0
  264. package/test/api/core/test-log-2025-05-21.log +15 -0
  265. package/test/api/core/test-log-2025-06-25.log +9 -0
  266. package/test/api/core/test-log-2025-07-24.log +44 -0
  267. package/test/api/map/test-log-2025-05-27.log +13 -0
  268. package/test/api/map/test-log-2025-06-23.log +7 -0
  269. package/test/api/map/{test-log-2025-05-26.log → test-log-2025-07-24.log} +3 -4
  270. package/coverage/tmp/coverage-122123-1739872365211-0.json +0 -1
  271. package/coverage/tmp/coverage-122135-1739872365196-0.json +0 -1
  272. package/coverage/tmp/coverage-122146-1739872365184-0.json +0 -1
  273. package/coverage/tmp/coverage-122158-1739872365169-0.json +0 -1
  274. package/coverage/tmp/coverage-122165-1739872365141-0.json +0 -1
  275. package/test/api/core/test-log-2025-05-26.log +0 -22
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">80.27% </span>
26
+ <span class="strong">85.51% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>232/289</span>
28
+ <span class='fraction'>248/290</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">66.23% </span>
33
+ <span class="strong">70.73% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>51/77</span>
35
+ <span class='fraction'>58/82</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">80.27% </span>
47
+ <span class="strong">85.51% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>232/289</span>
49
+ <span class='fraction'>248/290</span>
50
50
  </div>
51
51
 
52
52
 
@@ -353,22 +353,25 @@
353
353
  <a name='L288'></a><a href='#L288'>288</a>
354
354
  <a name='L289'></a><a href='#L289'>289</a>
355
355
  <a name='L290'></a><a href='#L290'>290</a>
356
- <a name='L291'></a><a href='#L291'>291</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
357
- <span class="cline-any cline-yes">1x</span>
358
- <span class="cline-any cline-yes">1x</span>
359
- <span class="cline-any cline-yes">1x</span>
360
- <span class="cline-any cline-yes">1x</span>
361
- <span class="cline-any cline-yes">1x</span>
362
- <span class="cline-any cline-yes">1x</span>
363
- <span class="cline-any cline-yes">1x</span>
364
- <span class="cline-any cline-yes">1x</span>
365
- <span class="cline-any cline-yes">1x</span>
366
- <span class="cline-any cline-yes">1x</span>
367
- <span class="cline-any cline-yes">1x</span>
368
- <span class="cline-any cline-yes">1x</span>
369
- <span class="cline-any cline-yes">1x</span>
370
- <span class="cline-any cline-yes">1x</span>
371
- <span class="cline-any cline-yes">1x</span>
356
+ <a name='L291'></a><a href='#L291'>291</a>
357
+ <a name='L292'></a><a href='#L292'>292</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
358
+ <span class="cline-any cline-yes">2x</span>
359
+ <span class="cline-any cline-yes">2x</span>
360
+ <span class="cline-any cline-yes">2x</span>
361
+ <span class="cline-any cline-yes">2x</span>
362
+ <span class="cline-any cline-yes">2x</span>
363
+ <span class="cline-any cline-yes">2x</span>
364
+ <span class="cline-any cline-yes">2x</span>
365
+ <span class="cline-any cline-yes">2x</span>
366
+ <span class="cline-any cline-yes">2x</span>
367
+ <span class="cline-any cline-yes">2x</span>
368
+ <span class="cline-any cline-yes">2x</span>
369
+ <span class="cline-any cline-yes">2x</span>
370
+ <span class="cline-any cline-yes">2x</span>
371
+ <span class="cline-any cline-yes">2x</span>
372
+ <span class="cline-any cline-yes">2x</span>
373
+ <span class="cline-any cline-yes">2x</span>
374
+ <span class="cline-any cline-yes">2x</span>
372
375
  <span class="cline-any cline-yes">2x</span>
373
376
  <span class="cline-any cline-yes">2x</span>
374
377
  <span class="cline-any cline-yes">2x</span>
@@ -389,40 +392,38 @@
389
392
  <span class="cline-any cline-yes">2x</span>
390
393
  <span class="cline-any cline-yes">2x</span>
391
394
  <span class="cline-any cline-yes">2x</span>
392
- <span class="cline-any cline-yes">1x</span>
393
- <span class="cline-any cline-yes">1x</span>
394
395
  <span class="cline-any cline-yes">4x</span>
395
396
  <span class="cline-any cline-no">&nbsp;</span>
396
397
  <span class="cline-any cline-no">&nbsp;</span>
397
398
  <span class="cline-any cline-yes">4x</span>
398
399
  <span class="cline-any cline-yes">4x</span>
399
400
  <span class="cline-any cline-yes">4x</span>
400
- <span class="cline-any cline-yes">1x</span>
401
- <span class="cline-any cline-yes">1x</span>
401
+ <span class="cline-any cline-yes">2x</span>
402
+ <span class="cline-any cline-yes">2x</span>
402
403
  <span class="cline-any cline-no">&nbsp;</span>
403
404
  <span class="cline-any cline-no">&nbsp;</span>
404
405
  <span class="cline-any cline-no">&nbsp;</span>
405
406
  <span class="cline-any cline-no">&nbsp;</span>
406
407
  <span class="cline-any cline-no">&nbsp;</span>
407
408
  <span class="cline-any cline-no">&nbsp;</span>
408
- <span class="cline-any cline-yes">1x</span>
409
- <span class="cline-any cline-yes">1x</span>
409
+ <span class="cline-any cline-yes">2x</span>
410
+ <span class="cline-any cline-yes">2x</span>
410
411
  <span class="cline-any cline-yes">4x</span>
411
412
  <span class="cline-any cline-no">&nbsp;</span>
412
413
  <span class="cline-any cline-no">&nbsp;</span>
413
414
  <span class="cline-any cline-yes">4x</span>
414
415
  <span class="cline-any cline-yes">4x</span>
415
416
  <span class="cline-any cline-yes">4x</span>
416
- <span class="cline-any cline-yes">1x</span>
417
- <span class="cline-any cline-yes">1x</span>
417
+ <span class="cline-any cline-yes">2x</span>
418
+ <span class="cline-any cline-yes">2x</span>
418
419
  <span class="cline-any cline-no">&nbsp;</span>
419
420
  <span class="cline-any cline-no">&nbsp;</span>
420
421
  <span class="cline-any cline-no">&nbsp;</span>
421
422
  <span class="cline-any cline-no">&nbsp;</span>
422
423
  <span class="cline-any cline-no">&nbsp;</span>
423
424
  <span class="cline-any cline-no">&nbsp;</span>
424
- <span class="cline-any cline-yes">1x</span>
425
- <span class="cline-any cline-yes">1x</span>
425
+ <span class="cline-any cline-yes">2x</span>
426
+ <span class="cline-any cline-yes">2x</span>
426
427
  <span class="cline-any cline-yes">4x</span>
427
428
  <span class="cline-any cline-no">&nbsp;</span>
428
429
  <span class="cline-any cline-no">&nbsp;</span>
@@ -498,104 +499,85 @@
498
499
  <span class="cline-any cline-yes">2x</span>
499
500
  <span class="cline-any cline-yes">2x</span>
500
501
  <span class="cline-any cline-yes">4x</span>
501
- <span class="cline-any cline-yes">1x</span>
502
- <span class="cline-any cline-yes">1x</span>
503
- <span class="cline-any cline-yes">106x</span>
504
- <span class="cline-any cline-no">&nbsp;</span>
505
- <span class="cline-any cline-no">&nbsp;</span>
506
- <span class="cline-any cline-yes">106x</span>
507
- <span class="cline-any cline-yes">106x</span>
508
- <span class="cline-any cline-yes">106x</span>
509
- <span class="cline-any cline-yes">106x</span>
510
- <span class="cline-any cline-yes">106x</span>
511
- <span class="cline-any cline-yes">106x</span>
512
- <span class="cline-any cline-yes">106x</span>
513
- <span class="cline-any cline-yes">106x</span>
514
- <span class="cline-any cline-yes">106x</span>
515
- <span class="cline-any cline-yes">106x</span>
516
- <span class="cline-any cline-yes">106x</span>
517
- <span class="cline-any cline-yes">106x</span>
502
+ <span class="cline-any cline-yes">2x</span>
503
+ <span class="cline-any cline-yes">2x</span>
504
+ <span class="cline-any cline-yes">243x</span>
505
+ <span class="cline-any cline-no">&nbsp;</span>
506
+ <span class="cline-any cline-no">&nbsp;</span>
507
+ <span class="cline-any cline-yes">243x</span>
508
+ <span class="cline-any cline-yes">243x</span>
509
+ <span class="cline-any cline-yes">243x</span>
510
+ <span class="cline-any cline-yes">243x</span>
511
+ <span class="cline-any cline-yes">243x</span>
512
+ <span class="cline-any cline-yes">243x</span>
513
+ <span class="cline-any cline-yes">243x</span>
514
+ <span class="cline-any cline-yes">243x</span>
515
+ <span class="cline-any cline-yes">243x</span>
516
+ <span class="cline-any cline-yes">243x</span>
517
+ <span class="cline-any cline-yes">243x</span>
518
+ <span class="cline-any cline-yes">243x</span>
518
519
  <span class="cline-any cline-yes">10x</span>
519
520
  <span class="cline-any cline-yes">10x</span>
520
521
  <span class="cline-any cline-yes">10x</span>
521
- <span class="cline-any cline-yes">106x</span>
522
- <span class="cline-any cline-yes">106x</span>
522
+ <span class="cline-any cline-yes">243x</span>
523
+ <span class="cline-any cline-yes">243x</span>
523
524
  <span class="cline-any cline-yes">5x</span>
524
525
  <span class="cline-any cline-yes">5x</span>
525
526
  <span class="cline-any cline-yes">5x</span>
526
- <span class="cline-any cline-yes">106x</span>
527
- <span class="cline-any cline-yes">106x</span>
528
- <span class="cline-any cline-no">&nbsp;</span>
529
- <span class="cline-any cline-no">&nbsp;</span>
527
+ <span class="cline-any cline-yes">243x</span>
528
+ <span class="cline-any cline-yes">243x</span>
530
529
  <span class="cline-any cline-no">&nbsp;</span>
531
- <span class="cline-any cline-yes">106x</span>
532
- <span class="cline-any cline-yes">106x</span>
533
- <span class="cline-any cline-yes">6x</span>
534
- <span class="cline-any cline-yes">6x</span>
535
- <span class="cline-any cline-yes">6x</span>
536
- <span class="cline-any cline-yes">6x</span>
537
- <span class="cline-any cline-yes">6x</span>
538
- <span class="cline-any cline-yes">106x</span>
539
- <span class="cline-any cline-yes">106x</span>
540
- <span class="cline-any cline-yes">106x</span>
541
- <span class="cline-any cline-yes">4x</span>
542
- <span class="cline-any cline-yes">4x</span>
543
- <span class="cline-any cline-yes">4x</span>
544
- <span class="cline-any cline-yes">4x</span>
545
- <span class="cline-any cline-yes">4x</span>
546
- <span class="cline-any cline-yes">2x</span>
547
- <span class="cline-any cline-yes">2x</span>
548
- <span class="cline-any cline-yes">2x</span>
549
530
  <span class="cline-any cline-no">&nbsp;</span>
550
531
  <span class="cline-any cline-no">&nbsp;</span>
551
- <span class="cline-any cline-yes">2x</span>
552
- <span class="cline-any cline-yes">4x</span>
553
- <span class="cline-any cline-yes">4x</span>
554
- <span class="cline-any cline-yes">4x</span>
555
- <span class="cline-any cline-yes">2x</span>
556
- <span class="cline-any cline-yes">4x</span>
557
- <span class="cline-any cline-yes">4x</span>
558
- <span class="cline-any cline-yes">4x</span>
559
- <span class="cline-any cline-yes">1x</span>
560
- <span class="cline-any cline-yes">1x</span>
532
+ <span class="cline-any cline-yes">243x</span>
533
+ <span class="cline-any cline-yes">243x</span>
534
+ <span class="cline-any cline-yes">14x</span>
535
+ <span class="cline-any cline-yes">14x</span>
536
+ <span class="cline-any cline-yes">14x</span>
537
+ <span class="cline-any cline-yes">14x</span>
538
+ <span class="cline-any cline-yes">14x</span>
539
+ <span class="cline-any cline-yes">243x</span>
540
+ <span class="cline-any cline-yes">243x</span>
541
+ <span class="cline-any cline-yes">243x</span>
542
+ <span class="cline-any cline-yes">10x</span>
543
+ <span class="cline-any cline-yes">10x</span>
544
+ <span class="cline-any cline-yes">10x</span>
545
+ <span class="cline-any cline-yes">10x</span>
546
+ <span class="cline-any cline-yes">10x</span>
561
547
  <span class="cline-any cline-yes">1x</span>
562
- <span class="cline-any cline-yes">3x</span>
563
- <span class="cline-any cline-yes">4x</span>
564
548
  <span class="cline-any cline-yes">1x</span>
565
549
  <span class="cline-any cline-yes">1x</span>
550
+ <span class="cline-any cline-no">&nbsp;</span>
566
551
  <span class="cline-any cline-yes">1x</span>
567
552
  <span class="cline-any cline-yes">1x</span>
568
553
  <span class="cline-any cline-yes">1x</span>
569
554
  <span class="cline-any cline-yes">1x</span>
555
+ <span class="cline-any cline-yes">10x</span>
556
+ <span class="cline-any cline-yes">10x</span>
557
+ <span class="cline-any cline-yes">10x</span>
558
+ <span class="cline-any cline-yes">4x</span>
559
+ <span class="cline-any cline-yes">10x</span>
560
+ <span class="cline-any cline-yes">10x</span>
561
+ <span class="cline-any cline-yes">10x</span>
570
562
  <span class="cline-any cline-yes">1x</span>
571
563
  <span class="cline-any cline-yes">1x</span>
572
- <span class="cline-any cline-no">&nbsp;</span>
573
- <span class="cline-any cline-no">&nbsp;</span>
574
- <span class="cline-any cline-no">&nbsp;</span>
575
564
  <span class="cline-any cline-yes">1x</span>
565
+ <span class="cline-any cline-yes">9x</span>
566
+ <span class="cline-any cline-yes">10x</span>
567
+ <span class="cline-any cline-yes">5x</span>
568
+ <span class="cline-any cline-yes">5x</span>
569
+ <span class="cline-any cline-yes">5x</span>
570
+ <span class="cline-any cline-yes">5x</span>
571
+ <span class="cline-any cline-yes">5x</span>
572
+ <span class="cline-any cline-yes">3x</span>
573
+ <span class="cline-any cline-yes">3x</span>
574
+ <span class="cline-any cline-yes">3x</span>
576
575
  <span class="cline-any cline-no">&nbsp;</span>
577
576
  <span class="cline-any cline-no">&nbsp;</span>
578
577
  <span class="cline-any cline-no">&nbsp;</span>
579
- <span class="cline-any cline-no">&nbsp;</span>
580
- <span class="cline-any cline-no">&nbsp;</span>
581
- <span class="cline-any cline-no">&nbsp;</span>
582
- <span class="cline-any cline-no">&nbsp;</span>
583
- <span class="cline-any cline-no">&nbsp;</span>
584
- <span class="cline-any cline-no">&nbsp;</span>
585
- <span class="cline-any cline-no">&nbsp;</span>
586
- <span class="cline-any cline-no">&nbsp;</span>
587
- <span class="cline-any cline-no">&nbsp;</span>
588
- <span class="cline-any cline-no">&nbsp;</span>
589
- <span class="cline-any cline-no">&nbsp;</span>
590
- <span class="cline-any cline-no">&nbsp;</span>
591
- <span class="cline-any cline-no">&nbsp;</span>
592
- <span class="cline-any cline-no">&nbsp;</span>
593
- <span class="cline-any cline-no">&nbsp;</span>
594
- <span class="cline-any cline-no">&nbsp;</span>
595
- <span class="cline-any cline-yes">1x</span>
596
- <span class="cline-any cline-yes">1x</span>
597
- <span class="cline-any cline-yes">1x</span>
598
- <span class="cline-any cline-yes">4x</span>
578
+ <span class="cline-any cline-yes">5x</span>
579
+ <span class="cline-any cline-yes">2x</span>
580
+ <span class="cline-any cline-yes">2x</span>
599
581
  <span class="cline-any cline-yes">2x</span>
600
582
  <span class="cline-any cline-yes">2x</span>
601
583
  <span class="cline-any cline-yes">2x</span>
@@ -608,40 +590,60 @@
608
590
  <span class="cline-any cline-no">&nbsp;</span>
609
591
  <span class="cline-any cline-no">&nbsp;</span>
610
592
  <span class="cline-any cline-no">&nbsp;</span>
593
+ <span class="cline-any cline-no">&nbsp;</span>
594
+ <span class="cline-any cline-no">&nbsp;</span>
595
+ <span class="cline-any cline-no">&nbsp;</span>
596
+ <span class="cline-any cline-no">&nbsp;</span>
611
597
  <span class="cline-any cline-yes">2x</span>
612
- <span class="cline-any cline-yes">2x</span>
613
- <span class="cline-any cline-yes">1x</span>
614
- <span class="cline-any cline-yes">1x</span>
615
- <span class="cline-any cline-yes">2x</span>
616
- <span class="cline-any cline-yes">2x</span>
617
- <span class="cline-any cline-yes">2x</span>
618
- <span class="cline-any cline-yes">2x</span>
619
- <span class="cline-any cline-yes">106x</span>
620
- <span class="cline-any cline-yes">102x</span>
621
- <span class="cline-any cline-yes">102x</span>
622
- <span class="cline-any cline-yes">103x</span>
623
- <span class="cline-any cline-yes">103x</span>
624
- <span class="cline-any cline-yes">103x</span>
625
- <span class="cline-any cline-yes">106x</span>
626
- <span class="cline-any cline-yes">1x</span>
627
- <span class="cline-any cline-yes">1x</span>
628
- <span class="cline-any cline-yes">1x</span>
629
- <span class="cline-any cline-yes">5x</span>
630
- <span class="cline-any cline-yes">5x</span>
631
- <span class="cline-any cline-yes">5x</span>
632
- <span class="cline-any cline-yes">5x</span>
633
- <span class="cline-any cline-yes">5x</span>
634
- <span class="cline-any cline-yes">5x</span>
635
598
  <span class="cline-any cline-yes">5x</span>
636
599
  <span class="cline-any cline-yes">5x</span>
637
600
  <span class="cline-any cline-yes">5x</span>
601
+ <span class="cline-any cline-yes">10x</span>
602
+ <span class="cline-any cline-yes">4x</span>
603
+ <span class="cline-any cline-yes">4x</span>
604
+ <span class="cline-any cline-yes">4x</span>
605
+ <span class="cline-any cline-yes">4x</span>
606
+ <span class="cline-any cline-yes">4x</span>
607
+ <span class="cline-any cline-yes">4x</span>
608
+ <span class="cline-any cline-yes">4x</span>
609
+ <span class="cline-any cline-yes">4x</span>
610
+ <span class="cline-any cline-yes">4x</span>
638
611
  <span class="cline-any cline-no">&nbsp;</span>
639
612
  <span class="cline-any cline-no">&nbsp;</span>
640
- <span class="cline-any cline-yes">5x</span>
641
- <span class="cline-any cline-yes">5x</span>
642
- <span class="cline-any cline-yes">5x</span>
643
- <span class="cline-any cline-yes">5x</span>
613
+ <span class="cline-any cline-no">&nbsp;</span>
614
+ <span class="cline-any cline-yes">4x</span>
615
+ <span class="cline-any cline-yes">4x</span>
616
+ <span class="cline-any cline-yes">1x</span>
644
617
  <span class="cline-any cline-yes">1x</span>
618
+ <span class="cline-any cline-yes">4x</span>
619
+ <span class="cline-any cline-yes">4x</span>
620
+ <span class="cline-any cline-yes">4x</span>
621
+ <span class="cline-any cline-yes">4x</span>
622
+ <span class="cline-any cline-yes">243x</span>
623
+ <span class="cline-any cline-yes">233x</span>
624
+ <span class="cline-any cline-yes">233x</span>
625
+ <span class="cline-any cline-yes">238x</span>
626
+ <span class="cline-any cline-yes">238x</span>
627
+ <span class="cline-any cline-yes">238x</span>
628
+ <span class="cline-any cline-yes">243x</span>
629
+ <span class="cline-any cline-yes">2x</span>
630
+ <span class="cline-any cline-yes">2x</span>
631
+ <span class="cline-any cline-yes">6x</span>
632
+ <span class="cline-any cline-yes">19x</span>
633
+ <span class="cline-any cline-yes">19x</span>
634
+ <span class="cline-any cline-yes">19x</span>
635
+ <span class="cline-any cline-yes">19x</span>
636
+ <span class="cline-any cline-yes">19x</span>
637
+ <span class="cline-any cline-yes">19x</span>
638
+ <span class="cline-any cline-yes">19x</span>
639
+ <span class="cline-any cline-yes">19x</span>
640
+ <span class="cline-any cline-yes">19x</span>
641
+ <span class="cline-any cline-yes">12x</span>
642
+ <span class="cline-any cline-yes">12x</span>
643
+ <span class="cline-any cline-yes">19x</span>
644
+ <span class="cline-any cline-yes">19x</span>
645
+ <span class="cline-any cline-yes">19x</span>
646
+ <span class="cline-any cline-yes">6x</span>
645
647
  <span class="cline-any cline-neutral">&nbsp;</span>
646
648
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import _ from 'lodash'
647
649
  import makeDebug from 'debug'
@@ -830,14 +832,16 @@ export async function authorise (hook) {
830
832
  if (checkAuthorisation) {
831
833
  // Build ability for user
832
834
  const authorisationService = hook.app.getService('authorisations')
833
- // If no user we allow for a stateless token with permissions inside
834
835
  let subject = hook.params.user
835
- if (!subject) {
836
- const payload = _.get(hook.params, 'authentication.payload')
837
- // Token targeting API gateway (sub = keyId) or app used through iframe (appId = keyId)
838
- if (payload <span class="branch-0 cbranch-no" title="branch not covered" >&amp;&amp; (payload.sub || payload.appId))</span> <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
836
+ const payload = _.get(hook.params, 'authentication.payload')
837
+ if (payload) {
838
+ // If no user we allow for a stateless token with permissions inside, e.g.
839
+ // token targeting API gateway (sub = keyId) or app used through iframe (appId = keyId)
840
+ if (!subject <span class="branch-0 cbranch-no" title="branch not covered" >&amp;&amp; (payload.sub || payload.appId))</span> <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
839
841
  <span class="cstat-no" title="statement not covered" > subject = Object.assign({ _id: (payload.sub || payload.appId) }, payload)</span>
840
- <span class="cstat-no" title="statement not covered" > }</span>
842
+ } else if (subject) { // Otherwise we allow to "extend" user abilities by providing additional information in the token
843
+ subject = Object.assign(subject, _.omit(payload, ['aud', 'iss', 'exp', 'sub', 'iat', 'jti', 'nbf']))
844
+ }
841
845
  }
842
846
  const abilities = await authorisationService.getAbilities(subject)
843
847
  hook.params.abilities = abilities
@@ -855,25 +859,25 @@ export async function authorise (hook) {
855
859
  // simply check against the object we'd like to create
856
860
  // Support custom methods as create operation as they have similar signature
857
861
  const DEFAULT_METHODS = ['find', 'get', 'create', 'update', 'patch', 'remove']
858
- if ((operation === 'create') <span class="branch-0 cbranch-no" title="branch not covered" >|| !DEFAULT_METHODS.includes(operation))</span> {
862
+ if ((operation === 'create') || !DEFAULT_METHODS.includes(operation)) {
859
863
  const resource = hook.data
860
864
  debug('Target resource is ', resource)
861
865
  if (!hasResourceAbilities(abilities, operation, resourceType, context, resource)) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
862
866
  <span class="cstat-no" title="statement not covered" > debug('Resource access not granted')</span>
863
867
  <span class="cstat-no" title="statement not covered" > throw new Forbidden(`You are not allowed to perform ${operation} operation on ${resourceType}`)</span>
864
868
  <span class="cstat-no" title="statement not covered" > }</span>
865
- }<span class="branch-0 cbranch-no" title="branch not covered" > else {</span>
866
- <span class="cstat-no" title="statement not covered" > // When we find/update/patch/remove multiple items this ensures that</span>
867
- <span class="cstat-no" title="statement not covered" > // only the ones authorised by constraints on the resources will be fetched</span>
868
- <span class="cstat-no" title="statement not covered" > // This avoid fetching all first then check it one by one</span>
869
- <span class="cstat-no" title="statement not covered" > const dbQuery = objectifyIDs(getQueryForAbilities(abilities, operation, resourceType))</span>
870
- <span class="cstat-no" title="statement not covered" > if (dbQuery) {</span>
871
- <span class="cstat-no" title="statement not covered" > hook.params.query = _.transform(hook.params.query, (result, value, key) =&gt; {</span>
872
- <span class="cstat-no" title="statement not covered" > if (key === '$or') result.$and = [{ $or: value }]</span>
873
- <span class="cstat-no" title="statement not covered" > else result[key] = value</span>
874
- <span class="cstat-no" title="statement not covered" > }, {})</span>
875
- <span class="cstat-no" title="statement not covered" > _.merge(hook.params.query, dbQuery)</span>
876
- <span class="cstat-no" title="statement not covered" > } else {</span>
869
+ } else {
870
+ // When we find/update/patch/remove multiple items this ensures that
871
+ // only the ones authorised by constraints on the resources will be fetched
872
+ // This avoid fetching all first then check it one by one
873
+ const dbQuery = objectifyIDs(getQueryForAbilities(abilities, operation, resourceType))
874
+ if (dbQuery) {
875
+ hook.params.query = _.transform(hook.params.query, (result, value, key) =&gt; {
876
+ if (key === '$or') <span class="branch-0 cbranch-no" title="branch not covered" >result.$and = [{ $or: value }]</span>
877
+ else result[key] = value
878
+ }, {})
879
+ _.merge(hook.params.query, dbQuery)
880
+ }<span class="branch-0 cbranch-no" title="branch not covered" > else {</span>
877
881
  <span class="cstat-no" title="statement not covered" > if (operation === 'find') { // You don't have right to read any items but you have access to the service so the result is empty</span>
878
882
  <span class="cstat-no" title="statement not covered" > hook.result = (!_.get(hook, 'params.paginate', true) ? [] : { total: 0, skip: 0, data: [] })</span>
879
883
  <span class="cstat-no" title="statement not covered" > } else { // You don't have the right to update/patch/remove any items so any tentative should throw</span>
@@ -881,7 +885,7 @@ export async function authorise (hook) {
881
885
  <span class="cstat-no" title="statement not covered" > throw new Forbidden(`You are not allowed to perform ${operation} operation on ${resourceType}`)</span>
882
886
  <span class="cstat-no" title="statement not covered" > }</span>
883
887
  <span class="cstat-no" title="statement not covered" > }</span>
884
- <span class="cstat-no" title="statement not covered" > }</span>
888
+ }
885
889
  debug('Resource access granted')
886
890
  // Some specific services might not expose a get function, in this case we cannot check for authorisation
887
891
  // this has to be implemented by the service itself
@@ -919,16 +923,15 @@ export function updateAbilities (options = {}) {
919
923
  const app = hook.app
920
924
  const params = hook.params
921
925
  const authorisationService = app.getService('authorisations')
922
- let subject = (options.subjectAsItem <span class="branch-0 cbranch-no" title="branch not covered" >? getItems(hook) </span>: params.user)
926
+ let subject = (options.subjectAsItem ? getItems(hook) <span class="branch-0 cbranch-no" title="branch not covered" >: params.user)</span>
923
927
  // Specific case of authentication result
924
- if (subject <span class="branch-0 cbranch-no" title="branch not covered" >&amp;&amp; subject.user)</span> <span class="branch-0 cbranch-no" title="branch not covered" >subject = subject.user</span>
928
+ if (subject &amp;&amp; subject.user) <span class="branch-0 cbranch-no" title="branch not covered" >subject = subject.user</span>
925
929
  // We might not have all information required eg on patch to compute new abilities,
926
930
  // in this case we have to fetch the whole subject
927
- if (options.fetchSubject) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
928
- <span class="cstat-no" title="statement not covered" > subject = await app.getService('users').get(subject._id.toString())</span>
929
- <span class="cstat-no" title="statement not covered" > }</span>
930
- const abilities = await authorisationService.updateAbilities(subject)
931
- debug('Abilities updated on subject', subject, abilities.rules)
931
+ if (options.fetchSubject) {
932
+ subject = await app.getService('users').get(subject._id.toString())
933
+ }
934
+ await authorisationService.updateAbilities(subject)
932
935
  return hook
933
936
  }
934
937
  }
@@ -940,7 +943,7 @@ export function updateAbilities (options = {}) {
940
943
  <div class='footer quiet pad2 space-top1 center small'>
941
944
  Code coverage generated by
942
945
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
943
- at 2025-02-18T09:52:45.637Z
946
+ at 2025-07-24T10:00:20.508Z
944
947
  </div>
945
948
  <script src="../../../prettify.js"></script>
946
949
  <script>
@@ -214,7 +214,7 @@ export function removeGroupAuthorisations (hook) {
214
214
  <div class='footer quiet pad2 space-top1 center small'>
215
215
  Code coverage generated by
216
216
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
217
- at 2025-01-28T16:38:17.949Z
217
+ at 2025-02-05T08:47:28.458Z
218
218
  </div>
219
219
  <script src="../../../prettify.js"></script>
220
220
  <script>
@@ -89,24 +89,24 @@
89
89
  <a name='L24'></a><a href='#L24'>24</a>
90
90
  <a name='L25'></a><a href='#L25'>25</a>
91
91
  <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
93
- <span class="cline-any cline-yes">1x</span>
94
- <span class="cline-any cline-yes">14x</span>
95
- <span class="cline-any cline-yes">14x</span>
96
- <span class="cline-any cline-yes">14x</span>
97
- <span class="cline-any cline-yes">14x</span>
98
- <span class="cline-any cline-yes">14x</span>
99
- <span class="cline-any cline-yes">14x</span>
100
- <span class="cline-any cline-yes">14x</span>
101
- <span class="cline-any cline-yes">14x</span>
102
- <span class="cline-any cline-yes">14x</span>
92
+ <a name='L27'></a><a href='#L27'>27</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
93
+ <span class="cline-any cline-yes">2x</span>
94
+ <span class="cline-any cline-yes">15x</span>
95
+ <span class="cline-any cline-yes">15x</span>
96
+ <span class="cline-any cline-yes">15x</span>
97
+ <span class="cline-any cline-yes">15x</span>
98
+ <span class="cline-any cline-yes">15x</span>
99
+ <span class="cline-any cline-yes">15x</span>
100
+ <span class="cline-any cline-yes">15x</span>
101
+ <span class="cline-any cline-yes">15x</span>
102
+ <span class="cline-any cline-yes">15x</span>
103
103
  <span class="cline-any cline-no">&nbsp;</span>
104
104
  <span class="cline-any cline-no">&nbsp;</span>
105
- <span class="cline-any cline-yes">14x</span>
106
- <span class="cline-any cline-yes">14x</span>
107
- <span class="cline-any cline-yes">14x</span>
108
- <span class="cline-any cline-yes">14x</span>
109
- <span class="cline-any cline-yes">14x</span>
105
+ <span class="cline-any cline-yes">15x</span>
106
+ <span class="cline-any cline-yes">15x</span>
107
+ <span class="cline-any cline-yes">15x</span>
108
+ <span class="cline-any cline-yes">15x</span>
109
+ <span class="cline-any cline-yes">15x</span>
110
110
  <span class="cline-any cline-no">&nbsp;</span>
111
111
  <span class="cline-any cline-no">&nbsp;</span>
112
112
  <span class="cline-any cline-no">&nbsp;</span>
@@ -114,7 +114,7 @@
114
114
  <span class="cline-any cline-no">&nbsp;</span>
115
115
  <span class="cline-any cline-no">&nbsp;</span>
116
116
  <span class="cline-any cline-no">&nbsp;</span>
117
- <span class="cline-any cline-yes">14x</span>
117
+ <span class="cline-any cline-yes">15x</span>
118
118
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">// A hook that logs service method before, after and error
119
119
  export function log (hook) {
120
120
  let message = `${hook.type}: ${hook.path} - Method: ${hook.method}`
@@ -148,7 +148,7 @@ export function log (hook) {
148
148
  <div class='footer quiet pad2 space-top1 center small'>
149
149
  Code coverage generated by
150
150
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
151
- at 2025-02-18T09:52:45.637Z
151
+ at 2025-07-24T10:00:20.508Z
152
152
  </div>
153
153
  <script src="../../../prettify.js"></script>
154
154
  <script>