@webda/core 4.0.0-beta.1 → 4.0.0-beta.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/README.md +252 -0
- package/lib/application/application.d.ts +437 -0
- package/lib/application/application.d.ts.map +1 -0
- package/lib/application/application.js +792 -0
- package/lib/application/application.js.map +1 -0
- package/lib/application/hooks.d.ts +34 -0
- package/lib/application/hooks.d.ts.map +1 -0
- package/lib/application/hooks.js +57 -0
- package/lib/application/hooks.js.map +1 -0
- package/lib/application/iapplication.d.ts +43 -0
- package/lib/application/iapplication.d.ts.map +1 -0
- package/lib/application/iapplication.js +2 -0
- package/lib/application/iapplication.js.map +1 -0
- package/lib/application/iconfiguration.d.ts +176 -0
- package/lib/application/iconfiguration.d.ts.map +1 -0
- package/lib/application/iconfiguration.js +8 -0
- package/lib/application/iconfiguration.js.map +1 -0
- package/lib/application/runner.d.ts +8 -0
- package/lib/application/runner.d.ts.map +1 -0
- package/lib/application/runner.js +26 -0
- package/lib/application/runner.js.map +1 -0
- package/lib/application/unpackedapplication.d.ts +104 -0
- package/lib/application/unpackedapplication.d.ts.map +1 -0
- package/lib/application/unpackedapplication.js +492 -0
- package/lib/application/unpackedapplication.js.map +1 -0
- package/lib/bin/cli-phase.d.ts +28 -0
- package/lib/bin/cli-phase.d.ts.map +1 -0
- package/lib/bin/cli-phase.js +44 -0
- package/lib/bin/cli-phase.js.map +1 -0
- package/lib/bin/cli.d.ts +161 -0
- package/lib/bin/cli.d.ts.map +1 -0
- package/lib/bin/cli.js +828 -0
- package/lib/bin/cli.js.map +1 -0
- package/lib/bin/launcher.d.ts +3 -0
- package/lib/bin/launcher.d.ts.map +1 -0
- package/lib/bin/launcher.js +50 -0
- package/lib/bin/launcher.js.map +1 -0
- package/lib/cache/cache.d.ts +33 -0
- package/lib/cache/cache.d.ts.map +1 -0
- package/lib/cache/cache.js +8 -0
- package/lib/cache/cache.js.map +1 -0
- package/lib/{services/configuration.d.ts → configurations/configuration.service.d.ts} +58 -49
- package/lib/configurations/configuration.service.d.ts.map +1 -0
- package/lib/configurations/configuration.service.js +248 -0
- package/lib/configurations/configuration.service.js.map +1 -0
- package/lib/configurations/fileconfiguration.service.d.ts +30 -0
- package/lib/configurations/fileconfiguration.service.d.ts.map +1 -0
- package/lib/configurations/fileconfiguration.service.js +65 -0
- package/lib/configurations/fileconfiguration.service.js.map +1 -0
- package/lib/configurations/kubernetesconfiguration.service.d.ts +43 -0
- package/lib/configurations/kubernetesconfiguration.service.d.ts.map +1 -0
- package/lib/configurations/kubernetesconfiguration.service.js +83 -0
- package/lib/configurations/kubernetesconfiguration.service.js.map +1 -0
- package/lib/contexts/execution.d.ts +33 -0
- package/lib/contexts/execution.d.ts.map +1 -0
- package/lib/contexts/execution.js +73 -0
- package/lib/contexts/execution.js.map +1 -0
- package/lib/contexts/globalcontext.d.ts +29 -0
- package/lib/contexts/globalcontext.d.ts.map +1 -0
- package/lib/contexts/globalcontext.js +38 -0
- package/lib/contexts/globalcontext.js.map +1 -0
- package/lib/{utils → contexts}/httpcontext.d.ts +45 -19
- package/lib/contexts/httpcontext.d.ts.map +1 -0
- package/lib/{utils → contexts}/httpcontext.js +102 -34
- package/lib/contexts/httpcontext.js.map +1 -0
- package/lib/contexts/icontext.d.ts +236 -0
- package/lib/contexts/icontext.d.ts.map +1 -0
- package/lib/contexts/icontext.js +230 -0
- package/lib/contexts/icontext.js.map +1 -0
- package/lib/contexts/operationcontext.d.ts +179 -0
- package/lib/contexts/operationcontext.d.ts.map +1 -0
- package/lib/contexts/operationcontext.js +358 -0
- package/lib/contexts/operationcontext.js.map +1 -0
- package/lib/contexts/simplecontext.d.ts +31 -0
- package/lib/contexts/simplecontext.d.ts.map +1 -0
- package/lib/contexts/simplecontext.js +45 -0
- package/lib/contexts/simplecontext.js.map +1 -0
- package/lib/contexts/webcontext.d.ts +218 -0
- package/lib/contexts/webcontext.d.ts.map +1 -0
- package/lib/contexts/webcontext.js +389 -0
- package/lib/contexts/webcontext.js.map +1 -0
- package/lib/core/authorizer.d.ts +23 -0
- package/lib/core/authorizer.d.ts.map +1 -0
- package/lib/core/authorizer.js +17 -0
- package/lib/core/authorizer.js.map +1 -0
- package/lib/core/core.d.ts +225 -0
- package/lib/core/core.d.ts.map +1 -0
- package/lib/core/core.js +576 -0
- package/lib/core/core.js.map +1 -0
- package/lib/core/hooks.d.ts +72 -0
- package/lib/core/hooks.d.ts.map +1 -0
- package/lib/core/hooks.js +73 -0
- package/lib/core/hooks.js.map +1 -0
- package/lib/core/icore.d.ts +249 -0
- package/lib/core/icore.d.ts.map +1 -0
- package/lib/core/icore.js +15 -0
- package/lib/core/icore.js.map +1 -0
- package/lib/core/instancestorage.d.ts +61 -0
- package/lib/core/instancestorage.d.ts.map +1 -0
- package/lib/core/instancestorage.js +75 -0
- package/lib/core/instancestorage.js.map +1 -0
- package/lib/core/operations.d.ts +181 -0
- package/lib/core/operations.d.ts.map +1 -0
- package/lib/core/operations.js +559 -0
- package/lib/core/operations.js.map +1 -0
- package/lib/errors/errors.d.ts +126 -0
- package/lib/errors/errors.d.ts.map +1 -0
- package/lib/errors/errors.js +165 -0
- package/lib/errors/errors.js.map +1 -0
- package/lib/events/asynceventemitter.d.ts +159 -0
- package/lib/events/asynceventemitter.d.ts.map +1 -0
- package/lib/events/asynceventemitter.js +152 -0
- package/lib/events/asynceventemitter.js.map +1 -0
- package/lib/events/events.d.ts +112 -0
- package/lib/events/events.d.ts.map +1 -0
- package/lib/events/events.js +45 -0
- package/lib/events/events.js.map +1 -0
- package/lib/index.d.ts +84 -51
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +82 -59
- package/lib/index.js.map +1 -1
- package/lib/loggers/console.service.d.ts +24 -0
- package/lib/loggers/console.service.d.ts.map +1 -0
- package/lib/loggers/console.service.js +30 -0
- package/lib/loggers/console.service.js.map +1 -0
- package/lib/loggers/file.service.d.ts +25 -0
- package/lib/loggers/file.service.d.ts.map +1 -0
- package/lib/loggers/file.service.js +33 -0
- package/lib/loggers/file.service.js.map +1 -0
- package/lib/loggers/hooks.d.ts +20 -0
- package/lib/loggers/hooks.d.ts.map +1 -0
- package/lib/loggers/hooks.js +40 -0
- package/lib/loggers/hooks.js.map +1 -0
- package/lib/loggers/ilogger.d.ts +76 -0
- package/lib/loggers/ilogger.d.ts.map +1 -0
- package/lib/loggers/ilogger.js +108 -0
- package/lib/loggers/ilogger.js.map +1 -0
- package/lib/loggers/logger.d.ts +13 -0
- package/lib/loggers/logger.d.ts.map +1 -0
- package/lib/loggers/logger.js +18 -0
- package/lib/loggers/logger.js.map +1 -0
- package/lib/loggers/memory.service.d.ts +18 -0
- package/lib/loggers/memory.service.d.ts.map +1 -0
- package/lib/loggers/memory.service.js +21 -0
- package/lib/loggers/memory.service.js.map +1 -0
- package/lib/loggers/params.d.ts +47 -0
- package/lib/loggers/params.d.ts.map +1 -0
- package/lib/loggers/params.js +56 -0
- package/lib/loggers/params.js.map +1 -0
- package/lib/metrics/metrics.d.ts +25 -0
- package/lib/metrics/metrics.d.ts.map +1 -0
- package/lib/metrics/metrics.js +51 -0
- package/lib/metrics/metrics.js.map +1 -0
- package/lib/models/aclmodel.d.ts +21 -77
- package/lib/models/aclmodel.d.ts.map +1 -0
- package/lib/models/aclmodel.js +27 -204
- package/lib/models/aclmodel.js.map +1 -1
- package/lib/models/coremodel.model.d.ts +5 -0
- package/lib/models/coremodel.model.d.ts.map +1 -0
- package/lib/models/coremodel.model.js +5 -0
- package/lib/models/coremodel.model.js.map +1 -0
- package/lib/models/decorator.d.ts +63 -0
- package/lib/models/decorator.d.ts.map +1 -0
- package/lib/models/decorator.js +63 -0
- package/lib/models/decorator.js.map +1 -0
- package/lib/models/deployment.d.ts +2 -1
- package/lib/models/deployment.d.ts.map +1 -0
- package/lib/models/ident.model.d.ts +89 -0
- package/lib/models/ident.model.d.ts.map +1 -0
- package/lib/models/ident.model.js +115 -0
- package/lib/models/ident.model.js.map +1 -0
- package/lib/models/ownermodel.model.d.ts +68 -0
- package/lib/models/ownermodel.model.d.ts.map +1 -0
- package/lib/models/ownermodel.model.js +112 -0
- package/lib/models/ownermodel.model.js.map +1 -0
- package/lib/models/registry.model.d.ts +76 -0
- package/lib/models/registry.model.d.ts.map +1 -0
- package/lib/models/registry.model.js +104 -0
- package/lib/models/registry.model.js.map +1 -0
- package/lib/models/rolemodel.model.d.ts +28 -0
- package/lib/models/rolemodel.model.d.ts.map +1 -0
- package/lib/models/rolemodel.model.js +53 -0
- package/lib/models/rolemodel.model.js.map +1 -0
- package/lib/models/simpleuser.model.d.ts +78 -0
- package/lib/models/simpleuser.model.d.ts.map +1 -0
- package/lib/models/simpleuser.model.js +123 -0
- package/lib/models/simpleuser.model.js.map +1 -0
- package/lib/models/types.d.ts +113 -0
- package/lib/models/types.d.ts.map +1 -0
- package/lib/models/types.js +2 -0
- package/lib/models/types.js.map +1 -0
- package/lib/models/user.model.d.ts +103 -0
- package/lib/models/user.model.d.ts.map +1 -0
- package/lib/models/user.model.js +125 -0
- package/lib/models/user.model.js.map +1 -0
- package/lib/queues/memoryqueue.service.d.ts +72 -0
- package/lib/queues/memoryqueue.service.d.ts.map +1 -0
- package/lib/queues/memoryqueue.service.js +136 -0
- package/lib/queues/memoryqueue.service.js.map +1 -0
- package/lib/queues/pubsubservice.d.ts +9 -6
- package/lib/queues/pubsubservice.d.ts.map +1 -0
- package/lib/queues/pubsubservice.js +5 -4
- package/lib/queues/pubsubservice.js.map +1 -1
- package/lib/queues/queueservice.d.ts +10 -11
- package/lib/queues/queueservice.d.ts.map +1 -0
- package/lib/queues/queueservice.js +48 -20
- package/lib/queues/queueservice.js.map +1 -1
- package/lib/rest/hooks.d.ts +8 -0
- package/lib/rest/hooks.d.ts.map +1 -0
- package/lib/rest/hooks.js +10 -0
- package/lib/rest/hooks.js.map +1 -0
- package/lib/rest/irest.d.ts +212 -0
- package/lib/rest/irest.d.ts.map +1 -0
- package/lib/rest/irest.js +39 -0
- package/lib/rest/irest.js.map +1 -0
- package/lib/rest/originfilter.d.ts +38 -0
- package/lib/rest/originfilter.d.ts.map +1 -0
- package/lib/rest/originfilter.js +61 -0
- package/lib/rest/originfilter.js.map +1 -0
- package/lib/rest/restoperationstransport.service.d.ts +193 -0
- package/lib/rest/restoperationstransport.service.d.ts.map +1 -0
- package/lib/rest/restoperationstransport.service.js +780 -0
- package/lib/rest/restoperationstransport.service.js.map +1 -0
- package/lib/rest/router.service.d.ts +244 -0
- package/lib/rest/router.service.d.ts.map +1 -0
- package/lib/rest/router.service.js +843 -0
- package/lib/rest/router.service.js.map +1 -0
- package/lib/schemas/hooks.d.ts +48 -0
- package/lib/schemas/hooks.d.ts.map +1 -0
- package/lib/schemas/hooks.js +152 -0
- package/lib/schemas/hooks.js.map +1 -0
- package/lib/services/audit.model.d.ts +208 -0
- package/lib/services/audit.model.d.ts.map +1 -0
- package/lib/services/audit.model.js +431 -0
- package/lib/services/audit.model.js.map +1 -0
- package/lib/services/{authentication.d.ts → authentication.service.d.ts} +140 -58
- package/lib/services/authentication.service.d.ts.map +1 -0
- package/lib/services/authentication.service.js +932 -0
- package/lib/services/authentication.service.js.map +1 -0
- package/lib/services/binary.service.d.ts +808 -0
- package/lib/services/binary.service.d.ts.map +1 -0
- package/lib/services/binary.service.js +1365 -0
- package/lib/services/binary.service.js.map +1 -0
- package/lib/services/cloudbinary.d.ts +19 -13
- package/lib/services/cloudbinary.d.ts.map +1 -0
- package/lib/services/cloudbinary.js +24 -18
- package/lib/services/cloudbinary.js.map +1 -1
- package/lib/services/command.d.ts +118 -0
- package/lib/services/command.d.ts.map +1 -0
- package/lib/services/command.js +97 -0
- package/lib/services/command.js.map +1 -0
- package/lib/services/cron.service.d.ts +142 -0
- package/lib/services/cron.service.d.ts.map +1 -0
- package/lib/services/cron.service.js +291 -0
- package/lib/services/cron.service.js.map +1 -0
- package/lib/services/{cryptoservice.d.ts → cryptoservice.service.d.ts} +77 -142
- package/lib/services/cryptoservice.service.d.ts.map +1 -0
- package/lib/services/cryptoservice.service.js +527 -0
- package/lib/services/cryptoservice.service.js.map +1 -0
- package/lib/services/debugmailer.service.d.ts +49 -0
- package/lib/services/debugmailer.service.d.ts.map +1 -0
- package/lib/services/debugmailer.service.js +66 -0
- package/lib/services/debugmailer.service.js.map +1 -0
- package/lib/services/domainservice.service.d.ts +203 -0
- package/lib/services/domainservice.service.d.ts.map +1 -0
- package/lib/services/domainservice.service.js +600 -0
- package/lib/services/domainservice.service.js.map +1 -0
- package/lib/services/httpserver.service.d.ts +248 -0
- package/lib/services/httpserver.service.d.ts.map +1 -0
- package/lib/services/httpserver.service.js +673 -0
- package/lib/services/httpserver.service.js.map +1 -0
- package/lib/services/iauthentication.d.ts +9 -0
- package/lib/services/iauthentication.d.ts.map +1 -0
- package/lib/services/iauthentication.js +2 -0
- package/lib/services/iauthentication.js.map +1 -0
- package/lib/services/icryptoservice.d.ts +127 -0
- package/lib/services/icryptoservice.d.ts.map +1 -0
- package/lib/services/icryptoservice.js +68 -0
- package/lib/services/icryptoservice.js.map +1 -0
- package/lib/services/imailer.d.ts +17 -0
- package/lib/services/imailer.d.ts.map +1 -0
- package/lib/services/imailer.js +2 -0
- package/lib/services/imailer.js.map +1 -0
- package/lib/services/iservice.d.ts +104 -0
- package/lib/services/iservice.d.ts.map +1 -0
- package/lib/services/iservice.js +63 -0
- package/lib/services/iservice.js.map +1 -0
- package/lib/services/mailer.service.d.ts +220 -0
- package/lib/services/mailer.service.d.ts.map +1 -0
- package/lib/services/mailer.service.js +251 -0
- package/lib/services/mailer.service.js.map +1 -0
- package/lib/services/{notificationservice.d.ts → notificationservice.service.d.ts} +10 -10
- package/lib/services/notificationservice.service.d.ts.map +1 -0
- package/lib/services/{notificationservice.js → notificationservice.service.js} +24 -12
- package/lib/services/notificationservice.service.js.map +1 -0
- package/lib/services/oauth.d.ts +58 -31
- package/lib/services/oauth.d.ts.map +1 -0
- package/lib/services/oauth.js +365 -251
- package/lib/services/oauth.js.map +1 -1
- package/lib/services/operationstransport.d.ts +65 -0
- package/lib/services/operationstransport.d.ts.map +1 -0
- package/lib/services/operationstransport.js +103 -0
- package/lib/services/operationstransport.js.map +1 -0
- package/lib/services/{prometheus.d.ts → prometheus.service.d.ts} +13 -11
- package/lib/services/prometheus.service.d.ts.map +1 -0
- package/lib/services/prometheus.service.js +203 -0
- package/lib/services/prometheus.service.js.map +1 -0
- package/lib/services/resource.service.d.ts +121 -0
- package/lib/services/resource.service.d.ts.map +1 -0
- package/lib/services/resource.service.js +301 -0
- package/lib/services/resource.service.js.map +1 -0
- package/lib/services/service.d.ts +88 -189
- package/lib/services/service.d.ts.map +1 -0
- package/lib/services/service.js +407 -432
- package/lib/services/service.js.map +1 -1
- package/lib/services/servicecommands.d.ts +99 -0
- package/lib/services/servicecommands.d.ts.map +1 -0
- package/lib/services/servicecommands.js +165 -0
- package/lib/services/servicecommands.js.map +1 -0
- package/lib/services/serviceparameters.d.ts +33 -0
- package/lib/services/serviceparameters.d.ts.map +1 -0
- package/lib/services/serviceparameters.js +79 -0
- package/lib/services/serviceparameters.js.map +1 -0
- package/lib/{utils → session}/cookie.d.ts +32 -18
- package/lib/session/cookie.d.ts.map +1 -0
- package/lib/{utils → session}/cookie.js +76 -23
- package/lib/session/cookie.js.map +1 -0
- package/lib/session/manager.model.d.ts +71 -0
- package/lib/session/manager.model.d.ts.map +1 -0
- package/lib/session/manager.model.js +155 -0
- package/lib/session/manager.model.js.map +1 -0
- package/lib/session/session.d.ts +57 -0
- package/lib/session/session.d.ts.map +1 -0
- package/lib/session/session.js +126 -0
- package/lib/session/session.js.map +1 -0
- package/lib/stores/istore.d.ts +99 -0
- package/lib/stores/istore.d.ts.map +1 -0
- package/lib/stores/istore.js +26 -0
- package/lib/stores/istore.js.map +1 -0
- package/lib/stores/memory.service.d.ts +114 -0
- package/lib/stores/memory.service.d.ts.map +1 -0
- package/lib/stores/memory.service.js +343 -0
- package/lib/stores/memory.service.js.map +1 -0
- package/lib/stores/store.d.ts +127 -768
- package/lib/stores/store.d.ts.map +1 -0
- package/lib/stores/store.js +258 -1718
- package/lib/stores/store.js.map +1 -1
- package/lib/templates/templates.d.ts +39 -0
- package/lib/templates/templates.d.ts.map +1 -0
- package/lib/templates/templates.js +92 -0
- package/lib/templates/templates.js.map +1 -0
- package/lib/test/application.d.ts +174 -0
- package/lib/test/application.d.ts.map +1 -0
- package/lib/test/application.js +288 -0
- package/lib/test/application.js.map +1 -0
- package/lib/test/asyncstorage.d.ts +16 -0
- package/lib/test/asyncstorage.d.ts.map +1 -0
- package/lib/test/asyncstorage.js +32 -0
- package/lib/test/asyncstorage.js.map +1 -0
- package/lib/test/core.d.ts +63 -0
- package/lib/test/core.d.ts.map +1 -0
- package/lib/test/core.js +190 -0
- package/lib/test/core.js.map +1 -0
- package/lib/test/index.d.ts +7 -0
- package/lib/test/index.d.ts.map +1 -0
- package/lib/test/index.js +8 -0
- package/lib/test/index.js.map +1 -0
- package/lib/test/internal.d.ts +34 -0
- package/lib/test/internal.d.ts.map +1 -0
- package/lib/test/internal.js +156 -0
- package/lib/test/internal.js.map +1 -0
- package/lib/test/objects.d.ts +318 -0
- package/lib/test/objects.d.ts.map +1 -0
- package/lib/test/objects.js +443 -0
- package/lib/test/objects.js.map +1 -0
- package/lib/utils/abstractdeployer.d.ts +5 -2
- package/lib/utils/abstractdeployer.d.ts.map +1 -0
- package/lib/utils/abstractdeployer.js +3 -0
- package/lib/utils/abstractdeployer.js.map +1 -1
- package/package.json +85 -56
- package/test/cachedapp/webda.config.json +1 -5
- package/test/config-cached.json +1 -5
- package/test/config.json +6 -99
- package/test/data/.env +1 -0
- package/test/my-cnf.json +9 -0
- package/webda.module.json +3462 -2231
- package/lib/application.d.ts +0 -876
- package/lib/application.js +0 -741
- package/lib/application.js.map +0 -1
- package/lib/application.spec.d.ts +0 -1
- package/lib/application.spec.js +0 -234
- package/lib/application.spec.js.map +0 -1
- package/lib/core.d.ts +0 -740
- package/lib/core.js +0 -1310
- package/lib/core.js.map +0 -1
- package/lib/core.spec.d.ts +0 -1
- package/lib/core.spec.js +0 -761
- package/lib/core.spec.js.map +0 -1
- package/lib/errors.d.ts +0 -65
- package/lib/errors.js +0 -113
- package/lib/errors.js.map +0 -1
- package/lib/errors.spec.d.ts +0 -1
- package/lib/errors.spec.js +0 -33
- package/lib/errors.spec.js.map +0 -1
- package/lib/models/aclmodel.spec.d.ts +0 -1
- package/lib/models/aclmodel.spec.js +0 -187
- package/lib/models/aclmodel.spec.js.map +0 -1
- package/lib/models/coremodel.d.ts +0 -887
- package/lib/models/coremodel.js +0 -1208
- package/lib/models/coremodel.js.map +0 -1
- package/lib/models/coremodel.spec.d.ts +0 -1
- package/lib/models/coremodel.spec.js +0 -462
- package/lib/models/coremodel.spec.js.map +0 -1
- package/lib/models/ident.d.ts +0 -53
- package/lib/models/ident.js +0 -40
- package/lib/models/ident.js.map +0 -1
- package/lib/models/ident.spec.d.ts +0 -1
- package/lib/models/ident.spec.js +0 -43
- package/lib/models/ident.spec.js.map +0 -1
- package/lib/models/ownermodel.d.ts +0 -50
- package/lib/models/ownermodel.js +0 -65
- package/lib/models/ownermodel.js.map +0 -1
- package/lib/models/ownermodel.spec.d.ts +0 -1
- package/lib/models/ownermodel.spec.js +0 -191
- package/lib/models/ownermodel.spec.js.map +0 -1
- package/lib/models/relations.d.ts +0 -181
- package/lib/models/relations.js +0 -157
- package/lib/models/relations.js.map +0 -1
- package/lib/models/relations.spec.d.ts +0 -12
- package/lib/models/relations.spec.js +0 -224
- package/lib/models/relations.spec.js.map +0 -1
- package/lib/models/rolemodel.d.ts +0 -10
- package/lib/models/rolemodel.js +0 -35
- package/lib/models/rolemodel.js.map +0 -1
- package/lib/models/rolemodel.spec.d.ts +0 -1
- package/lib/models/rolemodel.spec.js +0 -86
- package/lib/models/rolemodel.spec.js.map +0 -1
- package/lib/models/user.d.ts +0 -100
- package/lib/models/user.js +0 -157
- package/lib/models/user.js.map +0 -1
- package/lib/models/user.spec.d.ts +0 -1
- package/lib/models/user.spec.js +0 -88
- package/lib/models/user.spec.js.map +0 -1
- package/lib/queues/filequeue.d.ts +0 -58
- package/lib/queues/filequeue.js +0 -131
- package/lib/queues/filequeue.js.map +0 -1
- package/lib/queues/filequeue.spec.d.ts +0 -1
- package/lib/queues/filequeue.spec.js +0 -78
- package/lib/queues/filequeue.spec.js.map +0 -1
- package/lib/queues/memoryqueue.d.ts +0 -45
- package/lib/queues/memoryqueue.js +0 -81
- package/lib/queues/memoryqueue.js.map +0 -1
- package/lib/queues/memoryqueue.spec.d.ts +0 -1
- package/lib/queues/memoryqueue.spec.js +0 -192
- package/lib/queues/memoryqueue.spec.js.map +0 -1
- package/lib/queues/queue.spec.d.ts +0 -5
- package/lib/queues/queue.spec.js +0 -55
- package/lib/queues/queue.spec.js.map +0 -1
- package/lib/router.d.ts +0 -172
- package/lib/router.js +0 -419
- package/lib/router.js.map +0 -1
- package/lib/router.spec.d.ts +0 -1
- package/lib/router.spec.js +0 -229
- package/lib/router.spec.js.map +0 -1
- package/lib/services/asyncevents.d.ts +0 -151
- package/lib/services/asyncevents.js +0 -217
- package/lib/services/asyncevents.js.map +0 -1
- package/lib/services/asyncevents.spec.d.ts +0 -1
- package/lib/services/asyncevents.spec.js +0 -118
- package/lib/services/asyncevents.spec.js.map +0 -1
- package/lib/services/authentication.js +0 -772
- package/lib/services/authentication.js.map +0 -1
- package/lib/services/authentication.spec.d.ts +0 -1
- package/lib/services/authentication.spec.js +0 -458
- package/lib/services/authentication.spec.js.map +0 -1
- package/lib/services/binary.d.ts +0 -549
- package/lib/services/binary.js +0 -986
- package/lib/services/binary.js.map +0 -1
- package/lib/services/binary.spec.d.ts +0 -44
- package/lib/services/binary.spec.js +0 -438
- package/lib/services/binary.spec.js.map +0 -1
- package/lib/services/cloudbinary.spec.d.ts +0 -13
- package/lib/services/cloudbinary.spec.js +0 -192
- package/lib/services/cloudbinary.spec.js.map +0 -1
- package/lib/services/configuration.js +0 -178
- package/lib/services/configuration.js.map +0 -1
- package/lib/services/configuration.spec.d.ts +0 -1
- package/lib/services/configuration.spec.js +0 -87
- package/lib/services/configuration.spec.js.map +0 -1
- package/lib/services/cron.d.ts +0 -73
- package/lib/services/cron.js +0 -141
- package/lib/services/cron.js.map +0 -1
- package/lib/services/cron.spec.d.ts +0 -1
- package/lib/services/cron.spec.js +0 -76
- package/lib/services/cron.spec.js.map +0 -1
- package/lib/services/cryptoservice.js +0 -434
- package/lib/services/cryptoservice.js.map +0 -1
- package/lib/services/cryptoservice.spec.d.ts +0 -1
- package/lib/services/cryptoservice.spec.js +0 -177
- package/lib/services/cryptoservice.spec.js.map +0 -1
- package/lib/services/debugmailer.d.ts +0 -36
- package/lib/services/debugmailer.js +0 -52
- package/lib/services/debugmailer.js.map +0 -1
- package/lib/services/debugmailer.spec.d.ts +0 -1
- package/lib/services/debugmailer.spec.js +0 -29
- package/lib/services/debugmailer.spec.js.map +0 -1
- package/lib/services/domainservice.d.ts +0 -152
- package/lib/services/domainservice.js +0 -881
- package/lib/services/domainservice.js.map +0 -1
- package/lib/services/domainservice.spec.d.ts +0 -1
- package/lib/services/domainservice.spec.js +0 -401
- package/lib/services/domainservice.spec.js.map +0 -1
- package/lib/services/filebinary.d.ts +0 -133
- package/lib/services/filebinary.js +0 -371
- package/lib/services/filebinary.js.map +0 -1
- package/lib/services/filebinary.spec.d.ts +0 -21
- package/lib/services/filebinary.spec.js +0 -415
- package/lib/services/filebinary.spec.js.map +0 -1
- package/lib/services/fileconfiguration.d.ts +0 -22
- package/lib/services/fileconfiguration.js +0 -48
- package/lib/services/fileconfiguration.js.map +0 -1
- package/lib/services/fileconfiguration.spec.d.ts +0 -1
- package/lib/services/fileconfiguration.spec.js +0 -177
- package/lib/services/fileconfiguration.spec.js.map +0 -1
- package/lib/services/invitationservice.d.ts +0 -222
- package/lib/services/invitationservice.js +0 -526
- package/lib/services/invitationservice.js.map +0 -1
- package/lib/services/invitationservice.spec.d.ts +0 -1
- package/lib/services/invitationservice.spec.js +0 -516
- package/lib/services/invitationservice.spec.js.map +0 -1
- package/lib/services/kubernetesconfiguration.d.ts +0 -26
- package/lib/services/kubernetesconfiguration.js +0 -54
- package/lib/services/kubernetesconfiguration.js.map +0 -1
- package/lib/services/kubernetesconfiguration.spec.d.ts +0 -1
- package/lib/services/kubernetesconfiguration.spec.js +0 -147
- package/lib/services/kubernetesconfiguration.spec.js.map +0 -1
- package/lib/services/mailer.d.ts +0 -165
- package/lib/services/mailer.js +0 -176
- package/lib/services/mailer.js.map +0 -1
- package/lib/services/mailer.spec.d.ts +0 -1
- package/lib/services/mailer.spec.js +0 -144
- package/lib/services/mailer.spec.js.map +0 -1
- package/lib/services/notificationservice.js.map +0 -1
- package/lib/services/notificationservice.spec.d.ts +0 -1
- package/lib/services/notificationservice.spec.js +0 -78
- package/lib/services/notificationservice.spec.js.map +0 -1
- package/lib/services/oauth.spec.d.ts +0 -1
- package/lib/services/oauth.spec.js +0 -184
- package/lib/services/oauth.spec.js.map +0 -1
- package/lib/services/prometheus.js +0 -160
- package/lib/services/prometheus.js.map +0 -1
- package/lib/services/prometheus.spec.d.ts +0 -1
- package/lib/services/prometheus.spec.js +0 -57
- package/lib/services/prometheus.spec.js.map +0 -1
- package/lib/services/resource.d.ts +0 -87
- package/lib/services/resource.js +0 -156
- package/lib/services/resource.js.map +0 -1
- package/lib/services/resource.spec.d.ts +0 -1
- package/lib/services/resource.spec.js +0 -122
- package/lib/services/resource.spec.js.map +0 -1
- package/lib/services/service.spec.d.ts +0 -1
- package/lib/services/service.spec.js +0 -268
- package/lib/services/service.spec.js.map +0 -1
- package/lib/stores/aggregator.d.ts +0 -41
- package/lib/stores/aggregator.js +0 -80
- package/lib/stores/aggregator.js.map +0 -1
- package/lib/stores/aliasstore.d.ts +0 -108
- package/lib/stores/aliasstore.js +0 -168
- package/lib/stores/aliasstore.js.map +0 -1
- package/lib/stores/aliasstore.spec.d.ts +0 -11
- package/lib/stores/aliasstore.spec.js +0 -89
- package/lib/stores/aliasstore.spec.js.map +0 -1
- package/lib/stores/file.d.ts +0 -107
- package/lib/stores/file.js +0 -188
- package/lib/stores/file.js.map +0 -1
- package/lib/stores/file.spec.d.ts +0 -19
- package/lib/stores/file.spec.js +0 -232
- package/lib/stores/file.spec.js.map +0 -1
- package/lib/stores/mapper.d.ts +0 -149
- package/lib/stores/mapper.js +0 -293
- package/lib/stores/mapper.js.map +0 -1
- package/lib/stores/mapper.spec.d.ts +0 -1
- package/lib/stores/mapper.spec.js +0 -160
- package/lib/stores/mapper.spec.js.map +0 -1
- package/lib/stores/memory.d.ts +0 -151
- package/lib/stores/memory.js +0 -371
- package/lib/stores/memory.js.map +0 -1
- package/lib/stores/memory.spec.d.ts +0 -20
- package/lib/stores/memory.spec.js +0 -328
- package/lib/stores/memory.spec.js.map +0 -1
- package/lib/stores/modelmapper.d.ts +0 -61
- package/lib/stores/modelmapper.js +0 -199
- package/lib/stores/modelmapper.js.map +0 -1
- package/lib/stores/store.spec.d.ts +0 -65
- package/lib/stores/store.spec.js +0 -906
- package/lib/stores/store.spec.js.map +0 -1
- package/lib/test.d.ts +0 -162
- package/lib/test.js +0 -399
- package/lib/test.js.map +0 -1
- package/lib/unpackedapplication.d.ts +0 -76
- package/lib/unpackedapplication.js +0 -299
- package/lib/unpackedapplication.js.map +0 -1
- package/lib/utils/abstractdeployer.spec.d.ts +0 -1
- package/lib/utils/abstractdeployer.spec.js +0 -21
- package/lib/utils/abstractdeployer.spec.js.map +0 -1
- package/lib/utils/case.d.ts +0 -7
- package/lib/utils/case.js +0 -43
- package/lib/utils/case.js.map +0 -1
- package/lib/utils/case.spec.d.ts +0 -1
- package/lib/utils/case.spec.js +0 -50
- package/lib/utils/case.spec.js.map +0 -1
- package/lib/utils/context.d.ts +0 -462
- package/lib/utils/context.js +0 -732
- package/lib/utils/context.js.map +0 -1
- package/lib/utils/context.spec.d.ts +0 -9
- package/lib/utils/context.spec.js +0 -372
- package/lib/utils/context.spec.js.map +0 -1
- package/lib/utils/cookie.js.map +0 -1
- package/lib/utils/cookie.spec.d.ts +0 -1
- package/lib/utils/cookie.spec.js +0 -78
- package/lib/utils/cookie.spec.js.map +0 -1
- package/lib/utils/esm.d.ts +0 -13
- package/lib/utils/esm.js +0 -19
- package/lib/utils/esm.js.map +0 -1
- package/lib/utils/httpcontext.js.map +0 -1
- package/lib/utils/httpcontext.spec.d.ts +0 -4
- package/lib/utils/httpcontext.spec.js +0 -77
- package/lib/utils/httpcontext.spec.js.map +0 -1
- package/lib/utils/logger.d.ts +0 -91
- package/lib/utils/logger.js +0 -121
- package/lib/utils/logger.js.map +0 -1
- package/lib/utils/logger.spec.d.ts +0 -1
- package/lib/utils/logger.spec.js +0 -48
- package/lib/utils/logger.spec.js.map +0 -1
- package/lib/utils/serializers.d.ts +0 -161
- package/lib/utils/serializers.js +0 -420
- package/lib/utils/serializers.js.map +0 -1
- package/lib/utils/serializers.spec.d.ts +0 -1
- package/lib/utils/serializers.spec.js +0 -313
- package/lib/utils/serializers.spec.js.map +0 -1
- package/lib/utils/session.d.ts +0 -126
- package/lib/utils/session.js +0 -166
- package/lib/utils/session.js.map +0 -1
- package/lib/utils/session.spec.d.ts +0 -1
- package/lib/utils/session.spec.js +0 -71
- package/lib/utils/session.spec.js.map +0 -1
- package/lib/utils/throttler.d.ts +0 -102
- package/lib/utils/throttler.js +0 -168
- package/lib/utils/throttler.js.map +0 -1
- package/lib/utils/throttler.spec.d.ts +0 -1
- package/lib/utils/throttler.spec.js +0 -55
- package/lib/utils/throttler.spec.js.map +0 -1
- package/lib/utils/waiter.d.ts +0 -93
- package/lib/utils/waiter.js +0 -148
- package/lib/utils/waiter.js.map +0 -1
- package/lib/utils/waiter.spec.d.ts +0 -1
- package/lib/utils/waiter.spec.js +0 -98
- package/lib/utils/waiter.spec.js.map +0 -1
- package/test/config-file-missing-file-no-default.json +0 -44
- package/test/config-file-missing-file.json +0 -55
- package/test/config-file-no-reload.json +0 -69
- package/test/config-file-reload.json +0 -68
- package/test/config-invitation.json +0 -63
- package/test/config-kube-reload.json +0 -68
- package/test/config-reload.json +0 -66
- package/test/config.old.json +0 -152
- package/test/jsonutils/mdocs.yaml +0 -56
- package/test/jsonutils/test.json +0 -3
- package/test/jsonutils/test.yml +0 -5
- package/test/moddas/annotatedservice.js +0 -23
- package/test/moddas/debugmailer.js +0 -13
- package/test/moddas/fakeservice.js +0 -4
- package/test/moddas/voidstore.js +0 -66
- package/test/models/ident.js +0 -36
- package/test/models/task.js +0 -42
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { type ModelClass, ModelLink, type PrimaryKeyType, UuidModel } from "@webda/models";
|
|
2
|
+
import { User } from "./user.model.js";
|
|
3
|
+
import { IOperationContext } from "../contexts/icontext.js";
|
|
4
|
+
/**
|
|
5
|
+
* Abstract class to define an object with an owner
|
|
6
|
+
*
|
|
7
|
+
* The owner is the user that created the object
|
|
8
|
+
* The owner can be changed by the owner
|
|
9
|
+
*/
|
|
10
|
+
export declare abstract class AbstractOwnerModel<T extends User> extends UuidModel {
|
|
11
|
+
/**
|
|
12
|
+
* Default owner of the object
|
|
13
|
+
*/
|
|
14
|
+
get _user(): ModelLink<T>;
|
|
15
|
+
set _user(value: string | T | PrimaryKeyType<T> | ModelLink<T>);
|
|
16
|
+
/**
|
|
17
|
+
* Define if the object is publicly readable
|
|
18
|
+
* @default false
|
|
19
|
+
*/
|
|
20
|
+
public?: boolean;
|
|
21
|
+
/**
|
|
22
|
+
*
|
|
23
|
+
* @returns
|
|
24
|
+
*/
|
|
25
|
+
abstract getOwnerModel(): ModelClass<T>;
|
|
26
|
+
/**
|
|
27
|
+
* Set object owner
|
|
28
|
+
* @param uuid - the unique identifier
|
|
29
|
+
*/
|
|
30
|
+
setOwner(uuid: PrimaryKeyType<T>): void;
|
|
31
|
+
/**
|
|
32
|
+
* Return the owner of the object
|
|
33
|
+
*
|
|
34
|
+
* Only the owner can do update to the object
|
|
35
|
+
* @returns the result
|
|
36
|
+
*/
|
|
37
|
+
getOwner(): ModelLink<T>;
|
|
38
|
+
/**
|
|
39
|
+
* Check if the current user can perform the given action based on ownership
|
|
40
|
+
* @param context - the execution context
|
|
41
|
+
* @param action - the action to check
|
|
42
|
+
* @returns the result
|
|
43
|
+
*/
|
|
44
|
+
canAct(context: IOperationContext, action: string): Promise<string | boolean>;
|
|
45
|
+
/**
|
|
46
|
+
* Return a query to filter OwnerModel
|
|
47
|
+
*
|
|
48
|
+
* @param context - the execution context
|
|
49
|
+
* @returns the result
|
|
50
|
+
*/
|
|
51
|
+
static getPermissionQuery(context?: IOperationContext): null | {
|
|
52
|
+
partial: boolean;
|
|
53
|
+
query: string;
|
|
54
|
+
};
|
|
55
|
+
/** Generated by @webda/content-mapper: include values held in WEBDA_STORAGE. */
|
|
56
|
+
toJSON(): any;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* @WebdaModel
|
|
60
|
+
*/
|
|
61
|
+
export declare class OwnerModel extends AbstractOwnerModel<User> {
|
|
62
|
+
/**
|
|
63
|
+
* Get the User model class used for ownership
|
|
64
|
+
* @returns the result
|
|
65
|
+
*/
|
|
66
|
+
getOwnerModel(): ModelClass<User>;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=ownermodel.model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ownermodel.model.d.ts","sourceRoot":"","sources":["../../src/models/ownermodel.model.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC3F,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D;;;;;GAKG;AACH,8BAAsB,kBAAkB,CAAC,CAAC,SAAS,IAAI,CAAE,SAAQ,SAAS;IACxE;;OAEG;IACH,IAAI,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC,CAExB;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAU7D;IACD;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;OAGG;IACH,QAAQ,CAAC,aAAa,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAExC;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAGtC;IAED;;;;;OAKG;IACH,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,CAEvB;IAED;;;;;OAKG;IACG,MAAM,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,CAalF;IAED;;;;;OAKG;IACH,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAQjG;IAED,gFAAgF;IAChF,MAAM,IAAI,GAAG,CAOZ;CACF;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,kBAAkB,CAAC,IAAI,CAAC;IACtD;;;OAGG;IACH,aAAa,IAAI,UAAU,CAAC,IAAI,CAAC,CAEhC;CACF"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { WEBDA_STORAGE } from "@webda/models";
|
|
2
|
+
//import { UuidModel } from "./uuid.js";
|
|
3
|
+
import { ModelLink, UuidModel } from "@webda/models";
|
|
4
|
+
import { User } from "./user.model.js";
|
|
5
|
+
/**
|
|
6
|
+
* Abstract class to define an object with an owner
|
|
7
|
+
*
|
|
8
|
+
* The owner is the user that created the object
|
|
9
|
+
* The owner can be changed by the owner
|
|
10
|
+
*/
|
|
11
|
+
export class AbstractOwnerModel extends UuidModel {
|
|
12
|
+
/**
|
|
13
|
+
* Default owner of the object
|
|
14
|
+
*/
|
|
15
|
+
get _user() {
|
|
16
|
+
return this[WEBDA_STORAGE]["_user"];
|
|
17
|
+
}
|
|
18
|
+
set _user(value) {
|
|
19
|
+
if (value instanceof ModelLink) {
|
|
20
|
+
this[WEBDA_STORAGE]["_user"] = value;
|
|
21
|
+
}
|
|
22
|
+
else if (value != null) {
|
|
23
|
+
const inst = this[WEBDA_STORAGE]["_user"] || new ModelLink(User);
|
|
24
|
+
inst.set(value);
|
|
25
|
+
this[WEBDA_STORAGE]["_user"] = inst;
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
this[WEBDA_STORAGE]["_user"] = value;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Define if the object is publicly readable
|
|
33
|
+
* @default false
|
|
34
|
+
*/
|
|
35
|
+
public;
|
|
36
|
+
/**
|
|
37
|
+
* Set object owner
|
|
38
|
+
* @param uuid - the unique identifier
|
|
39
|
+
*/
|
|
40
|
+
setOwner(uuid) {
|
|
41
|
+
this._user ??= new ModelLink(this.getOwnerModel()).set(uuid);
|
|
42
|
+
this._user.set(uuid);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Return the owner of the object
|
|
46
|
+
*
|
|
47
|
+
* Only the owner can do update to the object
|
|
48
|
+
* @returns the result
|
|
49
|
+
*/
|
|
50
|
+
getOwner() {
|
|
51
|
+
return this._user;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Check if the current user can perform the given action based on ownership
|
|
55
|
+
* @param context - the execution context
|
|
56
|
+
* @param action - the action to check
|
|
57
|
+
* @returns the result
|
|
58
|
+
*/
|
|
59
|
+
async canAct(context, action) {
|
|
60
|
+
// Object is public
|
|
61
|
+
if (this.public && (action === "get" || action === "get_binary")) {
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
else if (!context.getCurrentUserId()) {
|
|
65
|
+
return "You need to be logged in to access this object";
|
|
66
|
+
}
|
|
67
|
+
else if (!this.getOwner() && action !== "create") {
|
|
68
|
+
return "Object does not have an owner";
|
|
69
|
+
}
|
|
70
|
+
if (action === "create") {
|
|
71
|
+
//this.setOwner(Uuid.parse(ctx.getCurrentUserId(), this.getOwnerModel()));
|
|
72
|
+
}
|
|
73
|
+
return context.getCurrentUserId() === this.getOwner()?.toString();
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Return a query to filter OwnerModel
|
|
77
|
+
*
|
|
78
|
+
* @param context - the execution context
|
|
79
|
+
* @returns the result
|
|
80
|
+
*/
|
|
81
|
+
static getPermissionQuery(context) {
|
|
82
|
+
if (!context) {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
query: `_user = '${context.getCurrentUserId()}' OR public = TRUE`,
|
|
87
|
+
partial: false
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
/** Generated by @webda/content-mapper: include values held in WEBDA_STORAGE. */
|
|
91
|
+
toJSON() {
|
|
92
|
+
const result = super.toJSON ? super.toJSON() : {};
|
|
93
|
+
for (const key of Object.keys(this)) {
|
|
94
|
+
result[key] = this[key];
|
|
95
|
+
}
|
|
96
|
+
Object.assign(result, this[WEBDA_STORAGE]);
|
|
97
|
+
return result;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* @WebdaModel
|
|
102
|
+
*/
|
|
103
|
+
export class OwnerModel extends AbstractOwnerModel {
|
|
104
|
+
/**
|
|
105
|
+
* Get the User model class used for ownership
|
|
106
|
+
* @returns the result
|
|
107
|
+
*/
|
|
108
|
+
getOwnerModel() {
|
|
109
|
+
return User;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=ownermodel.model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ownermodel.model.js","sourceRoot":"","sources":["../../src/models/ownermodel.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,wCAAwC;AACxC,OAAO,EAAmB,SAAS,EAAuB,SAAS,EAAE,MAAM,eAAe,CAAC;AAC3F,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAGvC;;;;;GAKG;AACH,MAAM,OAAgB,kBAAmC,SAAQ,SAAS;IACxE;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,KAAK,CAAC,KAAoD;QAC5D,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;QACvC,CAAC;aAAM,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YACzB,MAAM,IAAI,GAAiB,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/E,IAAI,CAAC,GAAG,CAAC,KAAY,CAAC,CAAC;YACvB,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;QACvC,CAAC;IACH,CAAC;IACD;;;OAGG;IACH,MAAM,CAAW;IAQjB;;;OAGG;IACH,QAAQ,CAAC,IAAuB;QAC9B,IAAI,CAAC,KAAK,KAAK,IAAI,SAAS,CAAI,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,OAA0B,EAAE,MAAc;QACrD,mBAAmB;QACnB,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,YAAY,CAAC,EAAE,CAAC;YACjE,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;YACvC,OAAO,gDAAgD,CAAC;QAC1D,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACnD,OAAO,+BAA+B,CAAC;QACzC,CAAC;QACD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,0EAA0E;QAC5E,CAAC;QACD,OAAO,OAAO,CAAC,gBAAgB,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC;IACpE,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,kBAAkB,CAAC,OAA2B;QACnD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO;YACL,KAAK,EAAE,YAAY,OAAO,CAAC,gBAAgB,EAAE,oBAAoB;YACjE,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;IAED,gFAAgF;IAChF,MAAM;QACJ,MAAM,MAAM,GAAS,KAAK,CAAC,MAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,GAAG,CAAC,GAAI,IAAY,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAG,IAAY,CAAC,aAAa,CAAC,CAAC,CAAC;QACpD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,kBAAwB;IACtD;;;OAGG;IACH,aAAa;QACX,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { type Settable, UuidModel } from "@webda/models";
|
|
2
|
+
/**
|
|
3
|
+
* Specific type for registry
|
|
4
|
+
*/
|
|
5
|
+
export declare class RegistryEntry extends UuidModel {
|
|
6
|
+
/** Create a new RegistryEntry
|
|
7
|
+
* @param data - initial data
|
|
8
|
+
*/
|
|
9
|
+
constructor(data?: Settable<RegistryEntry>);
|
|
10
|
+
/**
|
|
11
|
+
* Registry entries are not serializable to DTO
|
|
12
|
+
* @returns the result
|
|
13
|
+
*/
|
|
14
|
+
toDTO(): undefined;
|
|
15
|
+
/**
|
|
16
|
+
* No-op DTO deserialization for registry entries
|
|
17
|
+
* @returns this for chaining
|
|
18
|
+
*/
|
|
19
|
+
fromDTO(): this;
|
|
20
|
+
/**
|
|
21
|
+
* Remove an attribute from the registry
|
|
22
|
+
* @param uuid - the unique identifier
|
|
23
|
+
* @param attribute - the attribute name
|
|
24
|
+
* @returns the result
|
|
25
|
+
*/
|
|
26
|
+
static removeAttribute(uuid: string, attribute: string): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Set an attribute from the registry
|
|
29
|
+
* @param uuid - the unique identifier
|
|
30
|
+
* @param attribute - the attribute name
|
|
31
|
+
* @param value - the value to set
|
|
32
|
+
* @returns the result
|
|
33
|
+
*/
|
|
34
|
+
static setAttribute(uuid: string, attribute: string, value: any): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* Helper for upsert
|
|
37
|
+
* @param uuid - the unique identifier
|
|
38
|
+
* @param data - the data to process
|
|
39
|
+
* @returns the result
|
|
40
|
+
*/
|
|
41
|
+
static get<K = any>(uuid: string, data?: K): Promise<RegistryEntry & K>;
|
|
42
|
+
/**
|
|
43
|
+
* Helper for upsert
|
|
44
|
+
* @param uuid - the unique identifier
|
|
45
|
+
* @param data - the data to process
|
|
46
|
+
* @returns the result
|
|
47
|
+
*/
|
|
48
|
+
static put<K = any>(uuid: string, data: K): Promise<K & RegistryEntry>;
|
|
49
|
+
/**
|
|
50
|
+
* Delete a registry entry by UUID
|
|
51
|
+
* @param uuid - the unique identifier
|
|
52
|
+
* @returns the result
|
|
53
|
+
*/
|
|
54
|
+
static delete(uuid: string): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* Check if a registry entry exists
|
|
57
|
+
* @param uuid - the unique identifier
|
|
58
|
+
* @returns the result
|
|
59
|
+
*/
|
|
60
|
+
static exists(uuid: string): Promise<boolean>;
|
|
61
|
+
/**
|
|
62
|
+
* Perform a conditional patch
|
|
63
|
+
* @param uuid - the unique identifier
|
|
64
|
+
* @param patch - the patch to apply
|
|
65
|
+
* @param conditionField - the condition field name
|
|
66
|
+
* @param conditionValue - the condition value
|
|
67
|
+
* @returns the result
|
|
68
|
+
*/
|
|
69
|
+
static patch(uuid: string, patch: any, conditionField: string, conditionValue: any): Promise<void>;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Use the registry
|
|
73
|
+
* @returns the result
|
|
74
|
+
*/
|
|
75
|
+
export declare function useRegistry(): typeof RegistryEntry;
|
|
76
|
+
//# sourceMappingURL=registry.model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.model.d.ts","sourceRoot":"","sources":["../../src/models/registry.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqE,KAAK,QAAQ,EAAiB,SAAS,EAAE,MAAM,eAAe,CAAC;AAG3I;;GAEG;AACH,qBAAa,aAAc,SAAQ,SAAS;IAC1C;;OAEG;IACH,YAAY,IAAI,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,EAGzC;IAED;;;OAGG;IACH,KAAK,IAAI,SAAS,CAEjB;IAED;;;OAGG;IACH,OAAO,IAAI,IAAI,CAEd;IAED;;;;;OAKG;IACH,OAAa,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,iBAG3D;IAED;;;;;;OAMG;IACH,OAAa,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,iBAGpE;IAED;;;;;OAKG;IACH,OAAa,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC,CAI5E;IAED;;;;;OAKG;IACH,OAAa,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,aAAa,CAAC,CAE3E;IAED;;;;OAIG;IACH,OAAa,MAAM,CAAC,IAAI,EAAE,MAAM,iBAE/B;IAED;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,oBAEzB;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,iBAGjF;CACF;AAED;;;GAGG;AACH,wBAAgB,WAAW,yBAE1B"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { UuidModel } from "@webda/models";
|
|
2
|
+
/**
|
|
3
|
+
* Specific type for registry
|
|
4
|
+
*/
|
|
5
|
+
export class RegistryEntry extends UuidModel {
|
|
6
|
+
/** Create a new RegistryEntry
|
|
7
|
+
* @param data - initial data
|
|
8
|
+
*/
|
|
9
|
+
constructor(data) {
|
|
10
|
+
super(data);
|
|
11
|
+
Object.assign(this, data);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Registry entries are not serializable to DTO
|
|
15
|
+
* @returns the result
|
|
16
|
+
*/
|
|
17
|
+
toDTO() {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* No-op DTO deserialization for registry entries
|
|
22
|
+
* @returns this for chaining
|
|
23
|
+
*/
|
|
24
|
+
fromDTO() {
|
|
25
|
+
return this;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Remove an attribute from the registry
|
|
29
|
+
* @param uuid - the unique identifier
|
|
30
|
+
* @param attribute - the attribute name
|
|
31
|
+
* @returns the result
|
|
32
|
+
*/
|
|
33
|
+
static async removeAttribute(uuid, attribute) {
|
|
34
|
+
// @ts-ignore
|
|
35
|
+
return await RegistryEntry.ref(uuid).removeAttribute(attribute);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Set an attribute from the registry
|
|
39
|
+
* @param uuid - the unique identifier
|
|
40
|
+
* @param attribute - the attribute name
|
|
41
|
+
* @param value - the value to set
|
|
42
|
+
* @returns the result
|
|
43
|
+
*/
|
|
44
|
+
static async setAttribute(uuid, attribute, value) {
|
|
45
|
+
// @ts-ignore
|
|
46
|
+
return await RegistryEntry.ref(uuid).setAttribute(attribute, value);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Helper for upsert
|
|
50
|
+
* @param uuid - the unique identifier
|
|
51
|
+
* @param data - the data to process
|
|
52
|
+
* @returns the result
|
|
53
|
+
*/
|
|
54
|
+
static async get(uuid, data) {
|
|
55
|
+
return data
|
|
56
|
+
? await RegistryEntry.ref(uuid).upsert(data)
|
|
57
|
+
: await RegistryEntry.ref(uuid).get();
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Helper for upsert
|
|
61
|
+
* @param uuid - the unique identifier
|
|
62
|
+
* @param data - the data to process
|
|
63
|
+
* @returns the result
|
|
64
|
+
*/
|
|
65
|
+
static async put(uuid, data) {
|
|
66
|
+
return await RegistryEntry.ref(uuid).upsert(data);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Delete a registry entry by UUID
|
|
70
|
+
* @param uuid - the unique identifier
|
|
71
|
+
* @returns the result
|
|
72
|
+
*/
|
|
73
|
+
static async delete(uuid) {
|
|
74
|
+
return await RegistryEntry.ref(uuid).delete();
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Check if a registry entry exists
|
|
78
|
+
* @param uuid - the unique identifier
|
|
79
|
+
* @returns the result
|
|
80
|
+
*/
|
|
81
|
+
static exists(uuid) {
|
|
82
|
+
return RegistryEntry.ref(uuid).exists();
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Perform a conditional patch
|
|
86
|
+
* @param uuid - the unique identifier
|
|
87
|
+
* @param patch - the patch to apply
|
|
88
|
+
* @param conditionField - the condition field name
|
|
89
|
+
* @param conditionValue - the condition value
|
|
90
|
+
* @returns the result
|
|
91
|
+
*/
|
|
92
|
+
static patch(uuid, patch, conditionField, conditionValue) {
|
|
93
|
+
// @ts-ignore
|
|
94
|
+
return RegistryEntry.ref(uuid).patch(patch, conditionField, conditionValue);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Use the registry
|
|
99
|
+
* @returns the result
|
|
100
|
+
*/
|
|
101
|
+
export function useRegistry() {
|
|
102
|
+
return RegistryEntry;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=registry.model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.model.js","sourceRoot":"","sources":["../../src/models/registry.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmG,SAAS,EAAE,MAAM,eAAe,CAAC;AAG3I;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,SAAS;IAC1C;;OAEG;IACH,YAAY,IAA8B;QACxC,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,IAAY,EAAE,SAAiB;QAC1D,aAAa;QACb,OAAO,MAAM,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,eAAe,CAAM,SAAS,CAAC,CAAC;IACvE,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,SAAiB,EAAE,KAAU;QACnE,aAAa;QACb,OAAO,MAAM,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,YAAY,CAAM,SAAS,EAAE,KAAK,CAAC,CAAC;IAC3E,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,CAAU,IAAY,EAAE,IAAQ;QAC9C,OAAO,IAAI;YACT,CAAC,CAAM,MAAM,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAM,IAAI,CAAC;YACtD,CAAC,CAAoB,MAAM,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;IAC7D,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,CAAU,IAAY,EAAE,IAAO;QAC7C,OAAY,MAAM,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAM,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAY;QAC9B,OAAO,MAAM,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;IAChD,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,IAAY;QACxB,OAAO,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;IAC1C,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,CAAC,IAAY,EAAE,KAAU,EAAE,cAAsB,EAAE,cAAmB;QAChF,aAAa;QACb,OAAO,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,EAAO,cAAc,EAAE,cAAc,CAAC,CAAC;IACnF,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,aAAa,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Model } from "@webda/models";
|
|
2
|
+
import type { IOperationContext } from "../contexts/icontext.js";
|
|
3
|
+
/** Model with role-based access control, mapping actions to required roles */
|
|
4
|
+
declare abstract class RoleModel extends Model {
|
|
5
|
+
abstract getRolesMap(): {
|
|
6
|
+
[key: string]: string;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Whether actions without an explicit role mapping are allowed
|
|
10
|
+
* @returns true if the condition is met
|
|
11
|
+
*/
|
|
12
|
+
isPermissive(): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Get the roles for the current user, caching them in the session
|
|
15
|
+
* @param ctx - the operation context
|
|
16
|
+
* @returns the result
|
|
17
|
+
*/
|
|
18
|
+
getRoles(ctx: IOperationContext): Promise<any>;
|
|
19
|
+
/**
|
|
20
|
+
* Check if the user has the required role for the given action
|
|
21
|
+
* @param context - the execution context
|
|
22
|
+
* @param action - the action to check
|
|
23
|
+
* @returns the result
|
|
24
|
+
*/
|
|
25
|
+
canAct(context: IOperationContext, action: string): Promise<string | boolean>;
|
|
26
|
+
}
|
|
27
|
+
export { RoleModel };
|
|
28
|
+
//# sourceMappingURL=rolemodel.model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rolemodel.model.d.ts","sourceRoot":"","sources":["../../src/models/rolemodel.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAIjE,8EAA8E;AAC9E,uBAAe,SAAU,SAAQ,KAAK;IACpC,QAAQ,CAAC,WAAW,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAElD;;;OAGG;IACH,YAAY,IAAI,OAAO,CAEtB;IAED;;;;OAIG;IACG,QAAQ,CAAC,GAAG,EAAE,iBAAiB,gBAYpC;IAED;;;;;OAKG;IACG,MAAM,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,CAalF;CACF;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Model } from "@webda/models";
|
|
2
|
+
import * as WebdaError from "../errors/errors.js";
|
|
3
|
+
import { useContext } from "../contexts/execution.js";
|
|
4
|
+
/** Model with role-based access control, mapping actions to required roles */
|
|
5
|
+
class RoleModel extends Model {
|
|
6
|
+
/**
|
|
7
|
+
* Whether actions without an explicit role mapping are allowed
|
|
8
|
+
* @returns true if the condition is met
|
|
9
|
+
*/
|
|
10
|
+
isPermissive() {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Get the roles for the current user, caching them in the session
|
|
15
|
+
* @param ctx - the operation context
|
|
16
|
+
* @returns the result
|
|
17
|
+
*/
|
|
18
|
+
async getRoles(ctx) {
|
|
19
|
+
if (!ctx.getCurrentUserId()) {
|
|
20
|
+
throw new WebdaError.Forbidden("No user");
|
|
21
|
+
}
|
|
22
|
+
// If roles are cached in session
|
|
23
|
+
if (ctx.getSession().roles) {
|
|
24
|
+
return ctx.getSession().roles;
|
|
25
|
+
}
|
|
26
|
+
const user = await ctx.getCurrentUser();
|
|
27
|
+
// Cache roles in session
|
|
28
|
+
ctx.getSession().roles = user.getRoles();
|
|
29
|
+
return ctx.getSession().roles;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Check if the user has the required role for the given action
|
|
33
|
+
* @param context - the execution context
|
|
34
|
+
* @param action - the action to check
|
|
35
|
+
* @returns the result
|
|
36
|
+
*/
|
|
37
|
+
async canAct(context, action) {
|
|
38
|
+
// If this action doesn't require role
|
|
39
|
+
if (!this.getRolesMap()[action]) {
|
|
40
|
+
if (this.isPermissive()) {
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
return "No permission for this action defined";
|
|
44
|
+
}
|
|
45
|
+
const roles = await this.getRoles(useContext());
|
|
46
|
+
if (roles.indexOf(this.getRolesMap()[action]) >= 0) {
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
return "No permission";
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
export { RoleModel };
|
|
53
|
+
//# sourceMappingURL=rolemodel.model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rolemodel.model.js","sourceRoot":"","sources":["../../src/models/rolemodel.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,8EAA8E;AAC9E,MAAe,SAAU,SAAQ,KAAK;IAGpC;;;OAGG;IACH,YAAY;QACV,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,GAAsB;QACnC,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,iCAAiC;QACjC,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC;YAC3B,OAAO,GAAG,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC;QAChC,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,cAAc,EAAE,CAAC;QACxC,yBAAyB;QACzB,GAAG,CAAC,UAAU,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzC,OAAO,GAAG,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,OAA0B,EAAE,MAAc;QACrD,sCAAsC;QACtC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;gBACxB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,uCAAuC,CAAC;QACjD,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAChD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,eAAe,CAAC;IACzB,CAAC;CACF;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { Ident } from "./ident.model.js";
|
|
2
|
+
import { ModelRelated, Settable } from "@webda/models";
|
|
3
|
+
import { User } from "./user.model.js";
|
|
4
|
+
/**
|
|
5
|
+
* Simple user offers groups and roles management
|
|
6
|
+
*
|
|
7
|
+
* Groups and roles are defined just as string, no
|
|
8
|
+
* models
|
|
9
|
+
*/
|
|
10
|
+
export declare class SimpleUser extends User {
|
|
11
|
+
/** Create a new SimpleUser
|
|
12
|
+
* @param data - initial data
|
|
13
|
+
*/
|
|
14
|
+
constructor(data?: Settable<SimpleUser>);
|
|
15
|
+
/**
|
|
16
|
+
* Groups for a user
|
|
17
|
+
*/
|
|
18
|
+
_groups: string[];
|
|
19
|
+
/**
|
|
20
|
+
* Roles of the user
|
|
21
|
+
*/
|
|
22
|
+
_roles: string[];
|
|
23
|
+
/**
|
|
24
|
+
* Normal ident
|
|
25
|
+
*/
|
|
26
|
+
readonly _idents: ModelRelated<Ident, User, "_user">;
|
|
27
|
+
/**
|
|
28
|
+
* Return idents
|
|
29
|
+
* @returns the result
|
|
30
|
+
*/
|
|
31
|
+
getIdents(): any;
|
|
32
|
+
/**
|
|
33
|
+
* Add a group for the user
|
|
34
|
+
* @param group - the group name
|
|
35
|
+
* @returns the result
|
|
36
|
+
*/
|
|
37
|
+
addGroup(group: string): void;
|
|
38
|
+
/**
|
|
39
|
+
*
|
|
40
|
+
* @param group - the group name
|
|
41
|
+
* @returns true if the condition is met
|
|
42
|
+
*/
|
|
43
|
+
inGroup(group: string): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Remove a group from this user
|
|
46
|
+
* @param group - the group name
|
|
47
|
+
*/
|
|
48
|
+
removeGroup(group: string): void;
|
|
49
|
+
/**
|
|
50
|
+
* Get all groups this user belongs to
|
|
51
|
+
* @returns the list of results
|
|
52
|
+
*/
|
|
53
|
+
getGroups(): string[];
|
|
54
|
+
/**
|
|
55
|
+
* Get all roles assigned to this user
|
|
56
|
+
* @returns the list of results
|
|
57
|
+
*/
|
|
58
|
+
getRoles(): string[];
|
|
59
|
+
/**
|
|
60
|
+
* Add a role to this user if not already present
|
|
61
|
+
* @param role - the role
|
|
62
|
+
*/
|
|
63
|
+
addRole(role: string): void;
|
|
64
|
+
/**
|
|
65
|
+
* Check if this user has the given role
|
|
66
|
+
* @param role - the role
|
|
67
|
+
* @returns the result
|
|
68
|
+
*/
|
|
69
|
+
hasRole(role: string): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Remove a role from this user
|
|
72
|
+
* @param role - the role
|
|
73
|
+
*/
|
|
74
|
+
removeRole(role: string): void;
|
|
75
|
+
/** Generated by @webda/content-mapper: include values held in WEBDA_STORAGE. */
|
|
76
|
+
toJSON(): any;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=simpleuser.model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simpleuser.model.d.ts","sourceRoot":"","sources":["../../src/models/simpleuser.model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAW,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC;;;;;GAKG;AACH,qBAAa,UAAW,SAAQ,IAAI;IAClC;;OAEG;IACH,YAAY,IAAI,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,EAEtC;IACD;;OAEG;IACH,OAAO,EAAE,MAAM,EAAE,CAAM;IACvB;;OAEG;IACH,MAAM,EAAE,MAAM,EAAE,CAAM;IACtB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAgF;IACpI;;;OAGG;IACH,SAAS,IACgB,GAAG,CAC3B;IAED;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,QAKrB;IAED;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAK9B;IAED;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,QAMxB;IAED;;;OAGG;IACH,SAAS,IAAI,MAAM,EAAE,CAEpB;IAED;;;OAGG;IACH,QAAQ,IAAI,MAAM,EAAE,CAEnB;IAED;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,QAKnB;IAED;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,WAEnB;IAED;;;OAGG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,QAMtB;IAED,gFAAgF;IAChF,MAAM,IAAI,GAAG,CAOZ;CACF"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { WEBDA_STORAGE } from "@webda/models";
|
|
2
|
+
import { Ident } from "./ident.model.js";
|
|
3
|
+
import { ModelRelated } from "@webda/models";
|
|
4
|
+
import { User } from "./user.model.js";
|
|
5
|
+
/**
|
|
6
|
+
* Simple user offers groups and roles management
|
|
7
|
+
*
|
|
8
|
+
* Groups and roles are defined just as string, no
|
|
9
|
+
* models
|
|
10
|
+
*/
|
|
11
|
+
export class SimpleUser extends User {
|
|
12
|
+
/** Create a new SimpleUser
|
|
13
|
+
* @param data - initial data
|
|
14
|
+
*/
|
|
15
|
+
constructor(data) {
|
|
16
|
+
super(data);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Groups for a user
|
|
20
|
+
*/
|
|
21
|
+
_groups = [];
|
|
22
|
+
/**
|
|
23
|
+
* Roles of the user
|
|
24
|
+
*/
|
|
25
|
+
_roles = [];
|
|
26
|
+
/**
|
|
27
|
+
* Normal ident
|
|
28
|
+
*/
|
|
29
|
+
_idents = new ModelRelated(Ident, this, "_user");
|
|
30
|
+
/**
|
|
31
|
+
* Return idents
|
|
32
|
+
* @returns the result
|
|
33
|
+
*/
|
|
34
|
+
getIdents() {
|
|
35
|
+
return this._idents;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Add a group for the user
|
|
39
|
+
* @param group - the group name
|
|
40
|
+
* @returns the result
|
|
41
|
+
*/
|
|
42
|
+
addGroup(group) {
|
|
43
|
+
if (this.inGroup(group)) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
this._groups.push(group);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
*
|
|
50
|
+
* @param group - the group name
|
|
51
|
+
* @returns true if the condition is met
|
|
52
|
+
*/
|
|
53
|
+
inGroup(group) {
|
|
54
|
+
if (group === "all" || group === this.uuid) {
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
return this._groups.includes(group);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Remove a group from this user
|
|
61
|
+
* @param group - the group name
|
|
62
|
+
*/
|
|
63
|
+
removeGroup(group) {
|
|
64
|
+
const ind = this._groups.indexOf(group);
|
|
65
|
+
if (ind < 0) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
this._groups.splice(ind, 1);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Get all groups this user belongs to
|
|
72
|
+
* @returns the list of results
|
|
73
|
+
*/
|
|
74
|
+
getGroups() {
|
|
75
|
+
return this._groups;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Get all roles assigned to this user
|
|
79
|
+
* @returns the list of results
|
|
80
|
+
*/
|
|
81
|
+
getRoles() {
|
|
82
|
+
return this._roles;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Add a role to this user if not already present
|
|
86
|
+
* @param role - the role
|
|
87
|
+
*/
|
|
88
|
+
addRole(role) {
|
|
89
|
+
if (this.hasRole(role)) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
this._roles.push(role);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Check if this user has the given role
|
|
96
|
+
* @param role - the role
|
|
97
|
+
* @returns the result
|
|
98
|
+
*/
|
|
99
|
+
hasRole(role) {
|
|
100
|
+
return this._roles.indexOf(role) >= 0;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Remove a role from this user
|
|
104
|
+
* @param role - the role
|
|
105
|
+
*/
|
|
106
|
+
removeRole(role) {
|
|
107
|
+
const ind = this._roles.indexOf(role);
|
|
108
|
+
if (ind < 0) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
this._roles.splice(ind, 1);
|
|
112
|
+
}
|
|
113
|
+
/** Generated by @webda/content-mapper: include values held in WEBDA_STORAGE. */
|
|
114
|
+
toJSON() {
|
|
115
|
+
const result = super.toJSON ? super.toJSON() : {};
|
|
116
|
+
for (const key of Object.keys(this)) {
|
|
117
|
+
result[key] = this[key];
|
|
118
|
+
}
|
|
119
|
+
Object.assign(result, this[WEBDA_STORAGE]);
|
|
120
|
+
return result;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=simpleuser.model.js.map
|