From 8289ed07b12fb1c902bfcd4c5c1fba00fedd3882 Mon Sep 17 00:00:00 2001 From: scott-wyatt Date: Wed, 5 Sep 2018 19:36:03 -0400 Subject: [PATCH] [feat] check against events --- .circleci/config.yml | 3 - lib/api/services/PermissionsService.ts | 12 +- lib/api/services/UserCsvService.ts | 14 +- lib/config/permissions.ts | 6 +- lib/schemas/permissions.ts | 4 +- package-lock.json | 459 +++--------------- package.json | 18 +- test/fixtures/app.js | 5 +- .../policies/CheckPermissions.test.js | 2 +- 9 files changed, 95 insertions(+), 428 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 445e0e6..5838b59 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -31,9 +31,6 @@ jobs: - run: name: install-npm-wee command: npm install - - run: - name: install-npm-sqlite - command: npm install sqlite3@4.0.0 - save_cache: key: dependency-cache-{{ checksum "package.json" }} paths: diff --git a/lib/api/services/PermissionsService.ts b/lib/api/services/PermissionsService.ts index 7d6906e..c10d62d 100755 --- a/lib/api/services/PermissionsService.ts +++ b/lib/api/services/PermissionsService.ts @@ -1,11 +1,15 @@ import { FabrixService as Service } from '@fabrix/fabrix/dist/common' export class PermissionsService extends Service { - publish(type, event, options: {save?: boolean, transaction?: any} = {}) { - if (this.app.services.EngineService) { - return this.app.services.EngineService.publish(type, event, options) + publish(type, event, options: {save?: boolean, transaction?: any, include?: any} = {}) { + if (this.app.services.EventsService) { + options.include = options.include || [{ + model: this.app.models.EventItem.instance, + as: 'objects' + }] + return this.app.services.EventsService.publish(type, event, options) } - this.app.log.debug('Spool-engine is not installed, please install it to use publish') + this.app.log.debug('spool-events is not installed, please install it to use publish') return Promise.resolve() } diff --git a/lib/api/services/UserCsvService.ts b/lib/api/services/UserCsvService.ts index b621ccb..35edb20 100755 --- a/lib/api/services/UserCsvService.ts +++ b/lib/api/services/UserCsvService.ts @@ -11,13 +11,15 @@ import { readFileSync } from 'fs' * @description User CSV Service */ export class UserCsvService extends Service { - publish(type, event, options: {save?: boolean, transaction?: any} = {}) { - if (this.app.services.EngineService) { - return this.app.services.EngineService.publish(type, event, options) - } - else { - this.app.log.debug('Spool-engine is not installed, please install it to use publish') + publish(type, event, options: {save?: boolean, transaction?: any, include?: any} = {}) { + if (this.app.services.EventsService) { + options.include = options.include || [{ + model: this.app.models.EventItem.instance, + as: 'objects' + }] + return this.app.services.EventsService.publish(type, event, options) } + this.app.log.debug('spool-events is not installed, please install it to use publish') return Promise.resolve() } diff --git a/lib/config/permissions.ts b/lib/config/permissions.ts index 3e89b2d..a8f6754 100755 --- a/lib/config/permissions.ts +++ b/lib/config/permissions.ts @@ -18,5 +18,9 @@ export const permissions = { // The default super admin username defaultAdminUsername: 'admin', // The default super admin password - defaultAdminPassword: 'admin1234' + defaultAdminPassword: 'admin1234', + // Send Emails + emails: {}, + // Allow Events + events: {} } diff --git a/lib/schemas/permissions.ts b/lib/schemas/permissions.ts index 76a1f72..6832995 100755 --- a/lib/schemas/permissions.ts +++ b/lib/schemas/permissions.ts @@ -12,5 +12,7 @@ export const permissions = joi.object().keys({ permissions: joi.array() }).required(), defaultAdminUsername: joi.string().required(), - defaultAdminPassword: joi.string().required() + defaultAdminPassword: joi.string().required(), + emails: joi.object(), + events: joi.object() }) diff --git a/package-lock.json b/package-lock.json index a1bfcc8..1edc865 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@fabrix/spool-permissions", - "version": "1.1.4", + "version": "1.1.5", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -125,9 +125,9 @@ } }, "@fabrix/fabrix": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@fabrix/fabrix/-/fabrix-1.1.3.tgz", - "integrity": "sha512-B5KpWcrhLQybEmlaYqRxUE8+rli62+BrlupqA/siJePAjRYs98UmrTmoJaUMVqI4IkJgtwe2TMlXFng1mthhwg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@fabrix/fabrix/-/fabrix-1.1.4.tgz", + "integrity": "sha512-2bvYZGmtXjPZhNZvoqhxmHR/dU92hcvbwU6aEs6hA9uRFYqdWe8Ar6prWc6y7Q2Lvf/pbtY9/mTYSsJpHXlQow==", "dev": true, "requires": { "lodash": "4.17.10", @@ -188,6 +188,38 @@ } } }, + "@fabrix/spool-events": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@fabrix/spool-events/-/spool-events-1.1.0.tgz", + "integrity": "sha512-gHM7AkZk0G2up6vkPdRDxryudRyH4oF01S0Bz6SIbsdR0tq0jN5qiL2u3d8sS/jNm2FGgBMxAbvWknKr7eSYPA==", + "dev": true, + "requires": { + "boom": "7.2.0", + "joi": "13.4.0", + "lodash": "4.17.10", + "moment": "2.22.2", + "sequelize-stream": "1.0.2", + "shortid": "2.2.12", + "uuid": "3.3.2" + }, + "dependencies": { + "boom": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", + "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", + "dev": true, + "requires": { + "hoek": "5.0.4" + } + }, + "hoek": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.4.tgz", + "integrity": "sha512-Alr4ZQgoMlnere5FZJsIyfIjORBqZll5POhDsF4q64dPuJR6rNxXdDxtHSQq8OXRurhmx+PWYEE8bXRROY8h0w==", + "dev": true + } + } + }, "@fabrix/spool-express": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/@fabrix/spool-express/-/spool-express-1.1.5.tgz", @@ -218,9 +250,9 @@ } }, "@fabrix/spool-passport": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@fabrix/spool-passport/-/spool-passport-1.1.6.tgz", - "integrity": "sha512-spepqKXDZ3xAqwQGllMMSzYw15wWaaGsOlJz4+oaMSjpsiHpwTeDt+R19K7XmvcURHomuboE/SueASqXx5k43A==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@fabrix/spool-passport/-/spool-passport-1.1.7.tgz", + "integrity": "sha512-TEdHqBEdxaobZLehYG2EE9PD1S7IoX7V3Pepj5uxRTpBpGeyOfn1HS3QeG/T4jnMVcQU7EBnUWjJHbIxhnMVoQ==", "dev": true, "requires": { "bcryptjs": "2.4.3", @@ -232,9 +264,9 @@ } }, "@fabrix/spool-router": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@fabrix/spool-router/-/spool-router-1.1.3.tgz", - "integrity": "sha512-fTgEDO2RcAi8TMPxcQWz6NkU/RLK8+givjEDgKCEutrM+K9Ib+DbY6MP+o/gNm1YZcsEJTksTPgtD19J9OavAA==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@fabrix/spool-router/-/spool-router-1.1.4.tgz", + "integrity": "sha512-zz78aXufZpXTBElnHgLYyLbNXTT7cWdTM61zb6OH39oxOHV6d1RQBlfZaP3jC6DSz7nywXk0Tap2iEQfDZZ0Ww==", "dev": true, "requires": { "call": "5.0.1", @@ -243,9 +275,9 @@ } }, "@fabrix/spool-sequelize": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/@fabrix/spool-sequelize/-/spool-sequelize-1.1.8.tgz", - "integrity": "sha512-YnCfxojSKttWeBrys/M08+fvA5PfQkxu8WJT/9yMgpW4wwiEUN+F/8LFbkGhvU+iIf60v0Ut7fRUceBxXxWmLA==", + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@fabrix/spool-sequelize/-/spool-sequelize-1.1.11.tgz", + "integrity": "sha512-5JVxoeeM4IGh8x5GDoTb/I/EGtEiW41qREXJkDIsOeJl/25JioWu8MMBrF8sf9LU6SuW2TzQQ27SjV7B38aBuA==", "dev": true, "requires": { "joi": "13.4.0", @@ -280,12 +312,6 @@ "integrity": "sha512-h7VDRFL8IhdPw1JjiNVvhr+WynfKW09q2BOflIOA0yeuXNeXBP1bIRuBrysSryH4keaJ5bYUNp63aIyQL9YpDQ==", "dev": true }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, "accepts": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", @@ -316,54 +342,6 @@ "resolved": "https://registry.npmjs.org/append-field/-/append-field-0.1.0.tgz", "integrity": "sha1-bdxY+gg8e8VF08WZWygwzCNm1Eo=" }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "dev": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - } - } - }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -529,7 +507,7 @@ "dev": true, "requires": { "boom": "7.2.0", - "hoek": "5.0.3" + "hoek": "5.0.4" }, "dependencies": { "boom": { @@ -538,13 +516,13 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.0.4" } }, "hoek": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.4.tgz", + "integrity": "sha512-Alr4ZQgoMlnere5FZJsIyfIjORBqZll5POhDsF4q64dPuJR6rNxXdDxtHSQq8OXRurhmx+PWYEE8bXRROY8h0w==", "dev": true } } @@ -560,12 +538,6 @@ "supports-color": "5.4.0" } }, - "chownr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", - "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", - "dev": true - }, "cls-bluebird": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cls-bluebird/-/cls-bluebird-2.1.0.tgz", @@ -576,12 +548,6 @@ "shimmer": "1.2.0" } }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, "color-convert": { "version": "1.9.2", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", @@ -696,12 +662,6 @@ } } }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true - }, "consolidate": { "version": "0.15.1", "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz", @@ -789,24 +749,12 @@ "ms": "2.0.0" } }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true - }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true - }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -819,12 +767,6 @@ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", "dev": true }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "dev": true - }, "dicer": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", @@ -1063,45 +1005,12 @@ "integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44=", "dev": true }, - "fs-minipass": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", - "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", - "dev": true, - "requires": { - "minipass": "2.3.3" - } - }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.3" - }, - "dependencies": { - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - } - } - }, "generic-pool": { "version": "3.4.2", "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-3.4.2.tgz", @@ -1149,12 +1058,6 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true - }, "he": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", @@ -1194,15 +1097,6 @@ "safer-buffer": "2.1.2" } }, - "ignore-walk": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", - "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", - "dev": true, - "requires": { - "minimatch": "3.0.4" - } - }, "inflection": { "version": "1.12.0", "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.12.0.tgz", @@ -1224,12 +1118,6 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true - }, "invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -1251,15 +1139,6 @@ "integrity": "sha1-CWQ5Bg9KpBGr7hkUOoTWpVNG1uI=", "dev": true }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", @@ -1515,25 +1394,6 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, - "minipass": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.3.tgz", - "integrity": "sha512-/jAn9/tEX4gnpyRATxgHEOV6xbcyxgT7iUnxo9Y3+OB0zX00TgKIv/2FZCf5brBbICcwbLqVv2ImjvWWrQMSYw==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2", - "yallist": "3.0.2" - } - }, - "minizlib": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", - "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", - "dev": true, - "requires": { - "minipass": "2.3.3" - } - }, "mkdirp": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", @@ -1608,96 +1468,17 @@ "xtend": "4.0.1" } }, - "nan": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", - "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", - "dev": true - }, "nanoid": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-1.1.0.tgz", "integrity": "sha512-iOCqgXieGrk8/wDt1n9rZS2KB1dYVssemY0NTWjfzVr+1t1gAmdTp1u2+YHppKro3Bk5S+Gs+xmYCfpuXauYXQ==" }, - "needle": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.2.1.tgz", - "integrity": "sha512-t/ZswCM9JTWjAdXS9VpvqhI2Ct2sL2MdY4fUXqGJaGBk13ge99ObqRksRTbBE56K+wxUXwwfZYOuZHifFW9q+Q==", - "dev": true, - "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.23", - "sax": "1.2.4" - } - }, "negotiator": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", "dev": true }, - "node-pre-gyp": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz", - "integrity": "sha512-d1xFs+C/IPS8Id0qPTZ4bUT8wWryfR/OzzAFxweG+uLN85oPzyo2Iw6bVlLQ/JOdgNonXLCoRyqDzDWq4iw72A==", - "dev": true, - "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.1", - "nopt": "4.0.1", - "npm-packlist": "1.1.10", - "npmlog": "4.1.2", - "rc": "1.2.8", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.4" - } - }, - "nopt": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", - "dev": true, - "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" - } - }, - "npm-bundled": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.3.tgz", - "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==", - "dev": true - }, - "npm-packlist": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.10.tgz", - "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", - "dev": true, - "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "requires": { - "are-we-there-yet": "1.1.5", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, "nyc": { "version": "12.0.2", "resolved": "https://registry.npmjs.org/nyc/-/nyc-12.0.2.tgz", @@ -3779,28 +3560,6 @@ "wrappy": "1.0.2" } }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, "packet-reader": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-0.3.1.tgz", @@ -4026,26 +3785,6 @@ "unpipe": "1.0.0" } }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "0.6.0", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, "readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", @@ -4076,15 +3815,6 @@ "debug": "2.6.9" } }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "requires": { - "glob": "7.1.2" - } - }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -4096,12 +3826,6 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, "semver": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", @@ -4173,7 +3897,7 @@ "terraformer-wkt-parser": "1.2.0", "toposort-class": "1.0.1", "uuid": "3.3.2", - "validator": "10.5.0", + "validator": "10.7.1", "wkx": "0.4.5" }, "dependencies": { @@ -4188,6 +3912,12 @@ } } }, + "sequelize-stream": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/sequelize-stream/-/sequelize-stream-1.0.2.tgz", + "integrity": "sha1-KdyDykRKs78P5fwSzYeFbaMck7Y=", + "dev": true + }, "serve-static": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.1.tgz", @@ -4200,12 +3930,6 @@ "send": "0.15.1" } }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, "setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", @@ -4226,12 +3950,6 @@ "nanoid": "1.1.0" } }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, "smokesignals": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/smokesignals/-/smokesignals-2.1.1.tgz", @@ -4262,16 +3980,6 @@ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, - "sqlite3": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-4.0.1.tgz", - "integrity": "sha512-i8LtU2fdEGFEt4Kcs7eNjYdGmnAQ8zWlaOv6Esbq/jfVfR0Qbn/1dgVyKebrMc2zN7h3oHsqla9zq7AJ0+34ZA==", - "dev": true, - "requires": { - "nan": "2.10.0", - "node-pre-gyp": "0.10.3" - } - }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -4283,17 +3991,6 @@ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", @@ -4308,12 +4005,6 @@ "ansi-regex": "2.1.1" } }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, "striptags": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/striptags/-/striptags-3.1.1.tgz", @@ -4404,21 +4095,6 @@ "has-flag": "3.0.0" } }, - "tar": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.4.tgz", - "integrity": "sha512-mq9ixIYfNF9SK0IS/h2HKMu8Q2iaCuhDDsZhdEag/FHv8fOaYld4vN7ouMgcSSt5WKZzPs8atclTcJm36OTh4w==", - "dev": true, - "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.3.3", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.2", - "yallist": "3.0.2" - } - }, "terraformer": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/terraformer/-/terraformer-1.0.9.tgz", @@ -4574,9 +4250,9 @@ "dev": true }, "validator": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-10.5.0.tgz", - "integrity": "sha512-6OOi+eV2mOxCFLq0f2cJDrdB6lrtLXEUxabhNRGjgOLT/l3SSll9J49Cl+LIloUqkWWTPraK/mucEQ3dc2jStQ==", + "version": "10.7.1", + "resolved": "https://registry.npmjs.org/validator/-/validator-10.7.1.tgz", + "integrity": "sha512-tbB5JrTczfeHKLw3PnFRzGFlF1xUAwSgXEDb66EuX1ffCirspYpDEZo3Vc9j38gPdL4JKrDc5UPFfgYiw1IWRQ==", "dev": true }, "vary": { @@ -4585,15 +4261,6 @@ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "dev": true }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "requires": { - "string-width": "1.0.2" - } - }, "wkx": { "version": "0.4.5", "resolved": "https://registry.npmjs.org/wkx/-/wkx-0.4.5.tgz", @@ -4613,12 +4280,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" - }, - "yallist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", - "dev": true } } } diff --git a/package.json b/package.json index 77b0323..87a72b3 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@fabrix/spool-permissions", - "version": "1.1.4", + "version": "1.1.5", "description": "Spool: Permissions (ACL) for Fabrix using Spool-Passport", "homepage": "https://fabrix.app", "author": { @@ -46,14 +46,15 @@ "shortid": "^2.2.12" }, "devDependencies": { - "@fabrix/fabrix": "^1.1.3", + "@fabrix/fabrix": "^1.1.4", "@fabrix/lint": "^1.0.0-alpha.3", "@fabrix/spool-email": "^1.1.0", + "@fabrix/spool-events": "^1.1.0", "@fabrix/spool-express": "^1.1.5", "@fabrix/spool-i18n": "^1.1.0", - "@fabrix/spool-passport": "^1.1.6", - "@fabrix/spool-router": "^1.1.3", - "@fabrix/spool-sequelize": "^1.1.8", + "@fabrix/spool-passport": "^1.1.7", + "@fabrix/spool-router": "^1.1.4", + "@fabrix/spool-sequelize": "^1.1.11", "@fabrix/spool-tapestries": "^1.1.3", "@types/lodash": "^4.14.109", "@types/node": "~10.3.4", @@ -64,7 +65,6 @@ "passport-local": "^1.0.0", "pg": "^6.4.2", "smokesignals": "^2.0.0", - "sqlite3": "^4.0.1", "supertest": "3.0.0", "tslib": "~1.9.0", "tslint": "~5.10.0", @@ -73,11 +73,11 @@ "typescript": "~2.8.1" }, "peerDependencies": { - "@fabrix/fabrix": "^1.1.3", + "@fabrix/fabrix": "^1.1.4", "@fabrix/spool-express": "^1.1.5", - "@fabrix/spool-router": "^1.1.3", + "@fabrix/spool-router": "^1.1.4", "@fabrix/spool-i18n": "^1.1.0", - "@fabrix/spool-sequelize": "^1.1.8", + "@fabrix/spool-sequelize": "^1.1.11", "@fabrix/spool-email": "^1.1.0", "@fabrix/spool-passport": "^1.1.6" }, diff --git a/test/fixtures/app.js b/test/fixtures/app.js index e96fce1..f3fa0b2 100755 --- a/test/fixtures/app.js +++ b/test/fixtures/app.js @@ -326,6 +326,7 @@ const App = { require('@fabrix/spool-tapestries').TapestriesSpool, require('@fabrix/spool-express').ExpressSpool, require('@fabrix/spool-sequelize').SequelizeSpool, + require('@fabrix/spool-events').EventsSpool, require('@fabrix/spool-passport').PassportSpool, require('../../dist/index').PermissionsSpool // spool ] @@ -333,10 +334,6 @@ const App = { session: { secret: 'ok' }, - engine: { - live_mode: false, - profile: 'test' - }, web: { express: require('express'), middlewares: { diff --git a/test/integration/policies/CheckPermissions.test.js b/test/integration/policies/CheckPermissions.test.js index 261222a..298f558 100755 --- a/test/integration/policies/CheckPermissions.test.js +++ b/test/integration/policies/CheckPermissions.test.js @@ -82,7 +82,7 @@ describe('CheckPermissions', () => { .set('Accept', 'application/json') //set header for this test .expect(200) .end((err, res) => { - assert.equal(res.body.length, 47) + assert.equal(res.body.length, 50) done(err) }) })