@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.
- package/core/client/components/input/KShapePicker.vue +4 -4
- package/coverage/core/api/application.js.html +344 -344
- package/coverage/core/api/authentication.js.html +79 -79
- package/coverage/core/api/db.js.html +167 -167
- package/coverage/core/api/hooks/hooks.authentication.js.html +12 -12
- package/coverage/core/api/hooks/hooks.authorisations.js.html +166 -163
- package/coverage/core/api/hooks/hooks.groups.js.html +1 -1
- package/coverage/core/api/hooks/hooks.logger.js.html +18 -18
- package/coverage/core/api/hooks/hooks.model.js.html +280 -268
- package/coverage/core/api/hooks/hooks.organisations.js.html +1 -1
- package/coverage/core/api/hooks/hooks.push.js.html +12 -12
- package/coverage/core/api/hooks/hooks.query.js.html +92 -92
- package/coverage/core/api/hooks/hooks.schemas.js.html +13 -13
- package/coverage/core/api/hooks/hooks.service.js.html +28 -28
- package/coverage/core/api/hooks/hooks.storage.js.html +7 -7
- package/coverage/core/api/hooks/hooks.users.js.html +48 -48
- package/coverage/core/api/hooks/index.html +49 -49
- package/coverage/core/api/hooks/index.js.html +11 -11
- package/coverage/core/api/index.html +42 -42
- package/coverage/core/api/index.js.html +22 -22
- package/coverage/core/api/marshall.js.html +127 -127
- package/coverage/core/api/models/groups.model.mongodb.js.html +1 -1
- package/coverage/core/api/models/index.html +1 -1
- package/coverage/core/api/models/messages.model.mongodb.js.html +1 -1
- package/coverage/core/api/models/organisations.model.mongodb.js.html +1 -1
- package/coverage/core/api/models/tags.model.mongodb.js.html +1 -1
- package/coverage/core/api/models/users.model.mongodb.js.html +11 -11
- package/coverage/core/api/services/account/account.hooks.js.html +42 -42
- package/coverage/core/api/services/account/account.service.js.html +34 -34
- package/coverage/core/api/services/account/index.html +1 -1
- package/coverage/core/api/services/authorisations/authorisations.hooks.js.html +34 -34
- package/coverage/core/api/services/authorisations/authorisations.service.js.html +108 -120
- package/coverage/core/api/services/authorisations/index.html +19 -19
- package/coverage/core/api/services/databases/databases.hooks.js.html +1 -1
- package/coverage/core/api/services/databases/databases.service.js.html +1 -1
- package/coverage/core/api/services/databases/index.html +1 -1
- package/coverage/core/api/services/groups/groups.hooks.js.html +1 -1
- package/coverage/core/api/services/groups/index.html +1 -1
- package/coverage/core/api/services/import-export/import-export.hooks.js.html +1 -1
- package/coverage/core/api/services/import-export/import-export.service.js.html +1 -1
- package/coverage/core/api/services/import-export/index.html +1 -1
- package/coverage/core/api/services/index.html +15 -15
- package/coverage/core/api/services/index.js.html +97 -85
- package/coverage/core/api/services/mailer/index.html +1 -1
- package/coverage/core/api/services/mailer/mailer.hooks.js.html +1 -1
- package/coverage/core/api/services/mailer/mailer.service.js.html +1 -1
- package/coverage/core/api/services/messages/index.html +5 -5
- package/coverage/core/api/services/messages/messages.hooks.js.html +11 -8
- package/coverage/core/api/services/organisations/index.html +1 -1
- package/coverage/core/api/services/organisations/organisations.hooks.js.html +1 -1
- package/coverage/core/api/services/organisations/organisations.service.js.html +1 -1
- package/coverage/core/api/services/push/index.html +1 -1
- package/coverage/core/api/services/push/push.hooks.js.html +1 -1
- package/coverage/core/api/services/push/push.service.js.html +1 -1
- package/coverage/core/api/services/storage/index.html +1 -1
- package/coverage/core/api/services/storage/storage.hooks.js.html +36 -36
- package/coverage/core/api/services/storage/storage.service.js.html +30 -30
- package/coverage/core/api/services/tags/index.html +1 -1
- package/coverage/core/api/services/tags/tags.hooks.js.html +1 -1
- package/coverage/core/api/services/users/index.html +7 -7
- package/coverage/core/api/services/users/users.hooks.js.html +83 -80
- package/coverage/core/api/services/users/users.service.js.html +4 -4
- package/coverage/core/api/utils.js.html +1 -1
- package/coverage/core/common/errors.js.html +2 -2
- package/coverage/core/common/index.html +30 -30
- package/coverage/core/common/index.js.html +11 -11
- package/coverage/core/common/permissions.js.html +187 -187
- package/coverage/core/common/schema.js.html +26 -26
- package/coverage/core/common/utils.js.html +61 -61
- package/coverage/core/common/utils.offline.js.html +6 -6
- package/coverage/index.html +179 -164
- package/coverage/lcov-report/core/api/application.js.html +344 -344
- package/coverage/lcov-report/core/api/authentication.js.html +79 -79
- package/coverage/lcov-report/core/api/db.js.html +167 -167
- package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +12 -12
- package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +166 -163
- package/coverage/lcov-report/core/api/hooks/hooks.groups.js.html +1 -1
- package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +18 -18
- package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +280 -268
- package/coverage/lcov-report/core/api/hooks/hooks.organisations.js.html +1 -1
- package/coverage/lcov-report/core/api/hooks/hooks.push.js.html +12 -12
- package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +92 -92
- package/coverage/lcov-report/core/api/hooks/hooks.schemas.js.html +13 -13
- package/coverage/lcov-report/core/api/hooks/hooks.service.js.html +28 -28
- package/coverage/lcov-report/core/api/hooks/hooks.storage.js.html +7 -7
- package/coverage/lcov-report/core/api/hooks/hooks.users.js.html +48 -48
- package/coverage/lcov-report/core/api/hooks/index.html +49 -49
- package/coverage/lcov-report/core/api/hooks/index.js.html +11 -11
- package/coverage/lcov-report/core/api/index.html +42 -42
- package/coverage/lcov-report/core/api/index.js.html +22 -22
- package/coverage/lcov-report/core/api/marshall.js.html +127 -127
- package/coverage/lcov-report/core/api/models/groups.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/core/api/models/index.html +1 -1
- package/coverage/lcov-report/core/api/models/messages.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/core/api/models/organisations.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/core/api/models/tags.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/core/api/models/users.model.mongodb.js.html +11 -11
- package/coverage/lcov-report/core/api/services/account/account.hooks.js.html +42 -42
- package/coverage/lcov-report/core/api/services/account/account.service.js.html +34 -34
- package/coverage/lcov-report/core/api/services/account/index.html +1 -1
- package/coverage/lcov-report/core/api/services/authorisations/authorisations.hooks.js.html +34 -34
- package/coverage/lcov-report/core/api/services/authorisations/authorisations.service.js.html +108 -120
- package/coverage/lcov-report/core/api/services/authorisations/index.html +19 -19
- package/coverage/lcov-report/core/api/services/databases/databases.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/databases/databases.service.js.html +1 -1
- package/coverage/lcov-report/core/api/services/databases/index.html +1 -1
- package/coverage/lcov-report/core/api/services/groups/groups.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/groups/index.html +1 -1
- package/coverage/lcov-report/core/api/services/import-export/import-export.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/import-export/import-export.service.js.html +1 -1
- package/coverage/lcov-report/core/api/services/import-export/index.html +1 -1
- package/coverage/lcov-report/core/api/services/index.html +15 -15
- package/coverage/lcov-report/core/api/services/index.js.html +97 -85
- package/coverage/lcov-report/core/api/services/mailer/index.html +1 -1
- package/coverage/lcov-report/core/api/services/mailer/mailer.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/mailer/mailer.service.js.html +1 -1
- package/coverage/lcov-report/core/api/services/messages/index.html +5 -5
- package/coverage/lcov-report/core/api/services/messages/messages.hooks.js.html +11 -8
- package/coverage/lcov-report/core/api/services/organisations/index.html +1 -1
- package/coverage/lcov-report/core/api/services/organisations/organisations.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/organisations/organisations.service.js.html +1 -1
- package/coverage/lcov-report/core/api/services/push/index.html +1 -1
- package/coverage/lcov-report/core/api/services/push/push.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/push/push.service.js.html +1 -1
- package/coverage/lcov-report/core/api/services/storage/index.html +1 -1
- package/coverage/lcov-report/core/api/services/storage/storage.hooks.js.html +36 -36
- package/coverage/lcov-report/core/api/services/storage/storage.service.js.html +30 -30
- package/coverage/lcov-report/core/api/services/tags/index.html +1 -1
- package/coverage/lcov-report/core/api/services/tags/tags.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/users/index.html +7 -7
- package/coverage/lcov-report/core/api/services/users/users.hooks.js.html +83 -80
- package/coverage/lcov-report/core/api/services/users/users.service.js.html +4 -4
- package/coverage/lcov-report/core/api/utils.js.html +1 -1
- package/coverage/lcov-report/core/common/errors.js.html +2 -2
- package/coverage/lcov-report/core/common/index.html +30 -30
- package/coverage/lcov-report/core/common/index.js.html +11 -11
- package/coverage/lcov-report/core/common/permissions.js.html +187 -187
- package/coverage/lcov-report/core/common/schema.js.html +26 -26
- package/coverage/lcov-report/core/common/utils.js.html +61 -61
- package/coverage/lcov-report/core/common/utils.offline.js.html +6 -6
- package/coverage/lcov-report/index.html +179 -164
- package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +348 -258
- package/coverage/lcov-report/map/api/hooks/hooks.features.js.html +218 -218
- package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +795 -810
- package/coverage/lcov-report/map/api/hooks/index.html +54 -54
- package/coverage/lcov-report/map/api/hooks/index.js.html +16 -16
- package/coverage/lcov-report/map/api/index.html +32 -32
- package/coverage/lcov-report/map/api/index.js.html +46 -46
- package/coverage/lcov-report/map/api/marshall.js.html +72 -72
- package/coverage/lcov-report/map/api/models/alerts.model.mongodb.js.html +24 -24
- package/coverage/lcov-report/map/api/models/catalog.model.mongodb.js.html +69 -27
- package/coverage/lcov-report/map/api/models/features.model.mongodb.js.html +80 -80
- package/coverage/lcov-report/map/api/models/index.html +69 -54
- package/coverage/lcov-report/map/api/models/projects.model.mongodb.js.html +26 -26
- package/coverage/lcov-report/map/api/models/styles.model.mongodb.js.html +112 -0
- package/coverage/lcov-report/map/api/services/alerts/alerts.hooks.js.html +136 -136
- package/coverage/lcov-report/map/api/services/alerts/alerts.service.js.html +343 -343
- package/coverage/lcov-report/map/api/services/alerts/index.html +32 -32
- package/coverage/lcov-report/map/api/services/catalog/catalog.hooks.js.html +177 -162
- package/coverage/lcov-report/map/api/services/catalog/index.html +21 -21
- package/coverage/lcov-report/map/api/services/daptiles/daptiles.service.js.html +1 -1
- package/coverage/lcov-report/map/api/services/daptiles/index.html +1 -1
- package/coverage/lcov-report/map/api/services/features/features.hooks.js.html +160 -160
- package/coverage/lcov-report/map/api/services/features/features.service.js.html +117 -117
- package/coverage/lcov-report/map/api/services/features/index.html +31 -31
- package/coverage/lcov-report/map/api/services/index.html +21 -21
- package/coverage/lcov-report/map/api/services/index.js.html +404 -296
- package/coverage/lcov-report/map/api/services/projects/index.html +21 -21
- package/coverage/lcov-report/map/api/services/projects/projects.hooks.js.html +237 -237
- package/coverage/lcov-report/map/api/services/styles/index.html +116 -0
- package/coverage/lcov-report/map/api/services/styles/styles.hooks.js.html +196 -0
- package/coverage/lcov-report/map/common/dynamic-grid-source.js.html +68 -68
- package/coverage/lcov-report/map/common/errors.js.html +16 -16
- package/coverage/lcov-report/map/common/geotiff-grid-source.js.html +267 -267
- package/coverage/lcov-report/map/common/grid.js.html +554 -554
- package/coverage/lcov-report/map/common/index.html +158 -158
- package/coverage/lcov-report/map/common/index.js.html +68 -68
- package/coverage/lcov-report/map/common/meteo-model-grid-source.js.html +73 -73
- package/coverage/lcov-report/map/common/moment-utils.js.html +18 -18
- package/coverage/lcov-report/map/common/opendap-grid-source.js.html +484 -484
- package/coverage/lcov-report/map/common/opendap-utils.js.html +353 -353
- package/coverage/lcov-report/map/common/permissions.js.html +42 -36
- package/coverage/lcov-report/map/common/time-based-grid-source.js.html +59 -59
- package/coverage/lcov-report/map/common/tms-utils.js.html +6 -6
- package/coverage/lcov-report/map/common/wcs-grid-source.js.html +190 -190
- package/coverage/lcov-report/map/common/wcs-utils.js.html +339 -339
- package/coverage/lcov-report/map/common/weacast-grid-source.js.html +345 -345
- package/coverage/lcov-report/map/common/wfs-utils.js.html +11 -11
- package/coverage/lcov-report/map/common/wms-utils.js.html +8 -8
- package/coverage/lcov-report/map/common/wmts-utils.js.html +7 -7
- package/coverage/lcov.info +7022 -5894
- package/coverage/map/api/hooks/hooks.catalog.js.html +348 -258
- package/coverage/map/api/hooks/hooks.features.js.html +218 -218
- package/coverage/map/api/hooks/hooks.query.js.html +795 -810
- package/coverage/map/api/hooks/index.html +54 -54
- package/coverage/map/api/hooks/index.js.html +16 -16
- package/coverage/map/api/index.html +32 -32
- package/coverage/map/api/index.js.html +46 -46
- package/coverage/map/api/marshall.js.html +72 -72
- package/coverage/map/api/models/alerts.model.mongodb.js.html +24 -24
- package/coverage/map/api/models/catalog.model.mongodb.js.html +69 -27
- package/coverage/map/api/models/features.model.mongodb.js.html +80 -80
- package/coverage/map/api/models/index.html +69 -54
- package/coverage/map/api/models/projects.model.mongodb.js.html +26 -26
- package/coverage/map/api/models/styles.model.mongodb.js.html +112 -0
- package/coverage/map/api/services/alerts/alerts.hooks.js.html +136 -136
- package/coverage/map/api/services/alerts/alerts.service.js.html +343 -343
- package/coverage/map/api/services/alerts/index.html +32 -32
- package/coverage/map/api/services/catalog/catalog.hooks.js.html +177 -162
- package/coverage/map/api/services/catalog/index.html +21 -21
- package/coverage/map/api/services/daptiles/daptiles.service.js.html +1 -1
- package/coverage/map/api/services/daptiles/index.html +1 -1
- package/coverage/map/api/services/features/features.hooks.js.html +160 -160
- package/coverage/map/api/services/features/features.service.js.html +117 -117
- package/coverage/map/api/services/features/index.html +31 -31
- package/coverage/map/api/services/index.html +21 -21
- package/coverage/map/api/services/index.js.html +404 -296
- package/coverage/map/api/services/projects/index.html +21 -21
- package/coverage/map/api/services/projects/projects.hooks.js.html +237 -237
- package/coverage/map/api/services/styles/index.html +116 -0
- package/coverage/map/api/services/styles/styles.hooks.js.html +196 -0
- package/coverage/map/common/dynamic-grid-source.js.html +68 -68
- package/coverage/map/common/errors.js.html +16 -16
- package/coverage/map/common/geotiff-grid-source.js.html +267 -267
- package/coverage/map/common/grid.js.html +554 -554
- package/coverage/map/common/index.html +158 -158
- package/coverage/map/common/index.js.html +68 -68
- package/coverage/map/common/meteo-model-grid-source.js.html +73 -73
- package/coverage/map/common/moment-utils.js.html +18 -18
- package/coverage/map/common/opendap-grid-source.js.html +484 -484
- package/coverage/map/common/opendap-utils.js.html +353 -353
- package/coverage/map/common/permissions.js.html +42 -36
- package/coverage/map/common/time-based-grid-source.js.html +59 -59
- package/coverage/map/common/tms-utils.js.html +6 -6
- package/coverage/map/common/wcs-grid-source.js.html +190 -190
- package/coverage/map/common/wcs-utils.js.html +339 -339
- package/coverage/map/common/weacast-grid-source.js.html +345 -345
- package/coverage/map/common/wfs-utils.js.html +11 -11
- package/coverage/map/common/wms-utils.js.html +8 -8
- package/coverage/map/common/wmts-utils.js.html +7 -7
- package/coverage/tmp/coverage-151198-1753351220086-0.json +1 -0
- package/coverage/tmp/coverage-151210-1753351220070-0.json +1 -0
- package/coverage/tmp/coverage-151221-1753351129816-0.json +1 -0
- package/coverage/tmp/coverage-151233-1753351129803-0.json +1 -0
- package/coverage/tmp/coverage-151240-1753351129770-0.json +1 -0
- package/coverage/tmp/coverage-151307-1753351220058-0.json +1 -0
- package/coverage/tmp/coverage-151319-1753351220044-0.json +1 -0
- package/coverage/tmp/coverage-151326-1753351220010-0.json +1 -0
- package/map/api/services/styles/styles.hooks.js +1 -1
- package/map/client/components/KLayerEditor.vue +4 -0
- package/map/client/components/catalog/KLayerCategories.vue +2 -0
- package/map/client/components/stickies/KLevelSlider.vue +10 -8
- package/map/client/components/styles/KStyleEditor.vue +1 -1
- package/map/client/components/styles/KStyleManager.vue +7 -1
- package/map/client/composables/highlight.js +5 -1
- package/map/client/i18n/map_en.json +4 -1
- package/map/client/i18n/map_fr.json +4 -1
- package/map/client/mixins/globe/mixin.geojson-layers.js +11 -5
- package/map/client/mixins/mixin.activity.js +9 -0
- package/map/client/utils/utils.layers.js +0 -2
- package/package.json +1 -1
- package/test/api/core/push.test.js +1 -1
- package/test/api/core/test-log-2025-02-05.log +23 -0
- package/test/api/core/test-log-2025-05-21.log +15 -0
- package/test/api/core/test-log-2025-06-25.log +9 -0
- package/test/api/core/test-log-2025-07-24.log +44 -0
- package/test/api/map/test-log-2025-05-27.log +13 -0
- package/test/api/map/test-log-2025-06-23.log +7 -0
- package/test/api/map/{test-log-2025-05-26.log → test-log-2025-07-24.log} +3 -4
- package/coverage/tmp/coverage-122123-1739872365211-0.json +0 -1
- package/coverage/tmp/coverage-122135-1739872365196-0.json +0 -1
- package/coverage/tmp/coverage-122146-1739872365184-0.json +0 -1
- package/coverage/tmp/coverage-122158-1739872365169-0.json +0 -1
- package/coverage/tmp/coverage-122165-1739872365141-0.json +0 -1
- 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">
|
|
26
|
+
<span class="strong">85.51% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
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">
|
|
33
|
+
<span class="strong">70.73% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
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">
|
|
47
|
+
<span class="strong">85.51% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
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
|
|
357
|
-
<span class="cline-any cline-yes">
|
|
358
|
-
<span class="cline-any cline-yes">
|
|
359
|
-
<span class="cline-any cline-yes">
|
|
360
|
-
<span class="cline-any cline-yes">
|
|
361
|
-
<span class="cline-any cline-yes">
|
|
362
|
-
<span class="cline-any cline-yes">
|
|
363
|
-
<span class="cline-any cline-yes">
|
|
364
|
-
<span class="cline-any cline-yes">
|
|
365
|
-
<span class="cline-any cline-yes">
|
|
366
|
-
<span class="cline-any cline-yes">
|
|
367
|
-
<span class="cline-any cline-yes">
|
|
368
|
-
<span class="cline-any cline-yes">
|
|
369
|
-
<span class="cline-any cline-yes">
|
|
370
|
-
<span class="cline-any cline-yes">
|
|
371
|
-
<span class="cline-any cline-yes">
|
|
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"> </span>
|
|
396
397
|
<span class="cline-any cline-no"> </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">
|
|
401
|
-
<span class="cline-any cline-yes">
|
|
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"> </span>
|
|
403
404
|
<span class="cline-any cline-no"> </span>
|
|
404
405
|
<span class="cline-any cline-no"> </span>
|
|
405
406
|
<span class="cline-any cline-no"> </span>
|
|
406
407
|
<span class="cline-any cline-no"> </span>
|
|
407
408
|
<span class="cline-any cline-no"> </span>
|
|
408
|
-
<span class="cline-any cline-yes">
|
|
409
|
-
<span class="cline-any cline-yes">
|
|
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"> </span>
|
|
412
413
|
<span class="cline-any cline-no"> </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">
|
|
417
|
-
<span class="cline-any cline-yes">
|
|
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"> </span>
|
|
419
420
|
<span class="cline-any cline-no"> </span>
|
|
420
421
|
<span class="cline-any cline-no"> </span>
|
|
421
422
|
<span class="cline-any cline-no"> </span>
|
|
422
423
|
<span class="cline-any cline-no"> </span>
|
|
423
424
|
<span class="cline-any cline-no"> </span>
|
|
424
|
-
<span class="cline-any cline-yes">
|
|
425
|
-
<span class="cline-any cline-yes">
|
|
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"> </span>
|
|
428
429
|
<span class="cline-any cline-no"> </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">
|
|
502
|
-
<span class="cline-any cline-yes">
|
|
503
|
-
<span class="cline-any cline-yes">
|
|
504
|
-
<span class="cline-any cline-no"> </span>
|
|
505
|
-
<span class="cline-any cline-no"> </span>
|
|
506
|
-
<span class="cline-any cline-yes">
|
|
507
|
-
<span class="cline-any cline-yes">
|
|
508
|
-
<span class="cline-any cline-yes">
|
|
509
|
-
<span class="cline-any cline-yes">
|
|
510
|
-
<span class="cline-any cline-yes">
|
|
511
|
-
<span class="cline-any cline-yes">
|
|
512
|
-
<span class="cline-any cline-yes">
|
|
513
|
-
<span class="cline-any cline-yes">
|
|
514
|
-
<span class="cline-any cline-yes">
|
|
515
|
-
<span class="cline-any cline-yes">
|
|
516
|
-
<span class="cline-any cline-yes">
|
|
517
|
-
<span class="cline-any cline-yes">
|
|
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"> </span>
|
|
506
|
+
<span class="cline-any cline-no"> </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">
|
|
522
|
-
<span class="cline-any cline-yes">
|
|
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">
|
|
527
|
-
<span class="cline-any cline-yes">
|
|
528
|
-
<span class="cline-any cline-no"> </span>
|
|
529
|
-
<span class="cline-any cline-no"> </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"> </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"> </span>
|
|
550
531
|
<span class="cline-any cline-no"> </span>
|
|
551
|
-
<span class="cline-any cline-yes">
|
|
552
|
-
<span class="cline-any cline-yes">
|
|
553
|
-
<span class="cline-any cline-yes">
|
|
554
|
-
<span class="cline-any cline-yes">
|
|
555
|
-
<span class="cline-any cline-yes">
|
|
556
|
-
<span class="cline-any cline-yes">
|
|
557
|
-
<span class="cline-any cline-yes">
|
|
558
|
-
<span class="cline-any cline-yes">
|
|
559
|
-
<span class="cline-any cline-yes">
|
|
560
|
-
<span class="cline-any cline-yes">
|
|
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"> </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"> </span>
|
|
573
|
-
<span class="cline-any cline-no"> </span>
|
|
574
|
-
<span class="cline-any cline-no"> </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"> </span>
|
|
577
576
|
<span class="cline-any cline-no"> </span>
|
|
578
577
|
<span class="cline-any cline-no"> </span>
|
|
579
|
-
<span class="cline-any cline-
|
|
580
|
-
<span class="cline-any cline-
|
|
581
|
-
<span class="cline-any cline-
|
|
582
|
-
<span class="cline-any cline-no"> </span>
|
|
583
|
-
<span class="cline-any cline-no"> </span>
|
|
584
|
-
<span class="cline-any cline-no"> </span>
|
|
585
|
-
<span class="cline-any cline-no"> </span>
|
|
586
|
-
<span class="cline-any cline-no"> </span>
|
|
587
|
-
<span class="cline-any cline-no"> </span>
|
|
588
|
-
<span class="cline-any cline-no"> </span>
|
|
589
|
-
<span class="cline-any cline-no"> </span>
|
|
590
|
-
<span class="cline-any cline-no"> </span>
|
|
591
|
-
<span class="cline-any cline-no"> </span>
|
|
592
|
-
<span class="cline-any cline-no"> </span>
|
|
593
|
-
<span class="cline-any cline-no"> </span>
|
|
594
|
-
<span class="cline-any cline-no"> </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"> </span>
|
|
609
591
|
<span class="cline-any cline-no"> </span>
|
|
610
592
|
<span class="cline-any cline-no"> </span>
|
|
593
|
+
<span class="cline-any cline-no"> </span>
|
|
594
|
+
<span class="cline-any cline-no"> </span>
|
|
595
|
+
<span class="cline-any cline-no"> </span>
|
|
596
|
+
<span class="cline-any cline-no"> </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"> </span>
|
|
639
612
|
<span class="cline-any cline-no"> </span>
|
|
640
|
-
<span class="cline-any cline-
|
|
641
|
-
<span class="cline-any cline-yes">
|
|
642
|
-
<span class="cline-any cline-yes">
|
|
643
|
-
<span class="cline-any cline-yes">
|
|
613
|
+
<span class="cline-any cline-no"> </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"> </span>
|
|
646
648
|
<span class="cline-any cline-neutral"> </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
|
-
|
|
836
|
-
|
|
837
|
-
//
|
|
838
|
-
|
|
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" >&& (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
|
-
|
|
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')
|
|
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
|
-
}
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
<span class="
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
<span class="
|
|
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) => {
|
|
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
|
-
|
|
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"
|
|
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
|
|
928
|
+
if (subject && 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)
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
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-
|
|
946
|
+
at 2025-07-24T10:00:20.476Z
|
|
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-
|
|
217
|
+
at 2025-02-05T08:47:28.411Z
|
|
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">
|
|
93
|
-
<span class="cline-any cline-yes">
|
|
94
|
-
<span class="cline-any cline-yes">
|
|
95
|
-
<span class="cline-any cline-yes">
|
|
96
|
-
<span class="cline-any cline-yes">
|
|
97
|
-
<span class="cline-any cline-yes">
|
|
98
|
-
<span class="cline-any cline-yes">
|
|
99
|
-
<span class="cline-any cline-yes">
|
|
100
|
-
<span class="cline-any cline-yes">
|
|
101
|
-
<span class="cline-any cline-yes">
|
|
102
|
-
<span class="cline-any cline-yes">
|
|
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"> </span>
|
|
104
104
|
<span class="cline-any cline-no"> </span>
|
|
105
|
-
<span class="cline-any cline-yes">
|
|
106
|
-
<span class="cline-any cline-yes">
|
|
107
|
-
<span class="cline-any cline-yes">
|
|
108
|
-
<span class="cline-any cline-yes">
|
|
109
|
-
<span class="cline-any cline-yes">
|
|
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"> </span>
|
|
111
111
|
<span class="cline-any cline-no"> </span>
|
|
112
112
|
<span class="cline-any cline-no"> </span>
|
|
@@ -114,7 +114,7 @@
|
|
|
114
114
|
<span class="cline-any cline-no"> </span>
|
|
115
115
|
<span class="cline-any cline-no"> </span>
|
|
116
116
|
<span class="cline-any cline-no"> </span>
|
|
117
|
-
<span class="cline-any cline-yes">
|
|
117
|
+
<span class="cline-any cline-yes">15x</span>
|
|
118
118
|
<span class="cline-any cline-neutral"> </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-
|
|
151
|
+
at 2025-07-24T10:00:20.476Z
|
|
152
152
|
</div>
|
|
153
153
|
<script src="../../../prettify.js"></script>
|
|
154
154
|
<script>
|