@resolveio/server-lib 2.1.0 → 2.1.1-newrole

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.
@@ -21,13 +21,6 @@ var schema = {
21
21
  type: Date,
22
22
  optional: true
23
23
  },
24
- readonly: {
25
- type: Boolean,
26
- optional: true
27
- },
28
- active: {
29
- type: Boolean
30
- },
31
24
  attempts: {
32
25
  type: Number,
33
26
  optional: true
@@ -64,60 +57,78 @@ var schema = {
64
57
  type: String
65
58
  },
66
59
  roles: {
60
+ type: Object
61
+ },
62
+ 'roles.super_admin': {
63
+ type: Boolean
64
+ },
65
+ 'roles.approvals': {
67
66
  type: Array
68
67
  },
69
- 'roles.$': {
68
+ 'roles.approvals.$': {
69
+ type: Object
70
+ },
71
+ 'roles.approvals.$.name': {
70
72
  type: String
71
73
  },
72
- phonenumber: {
73
- type: String,
74
- optional: true
74
+ 'roles.approvals.$.type': {
75
+ type: String
75
76
  },
76
- other: {
77
- type: Object,
78
- blackbox: true,
79
- optional: true
77
+ 'roles.approvals.$.accounting_code': {
78
+ type: String
80
79
  },
81
- assets: {
82
- type: Array,
83
- optional: true
80
+ 'roles.groups': {
81
+ type: Array
84
82
  },
85
- 'assets.$': {
83
+ 'roles.groups.$': {
86
84
  type: Object
87
85
  },
88
- 'assets.$.type': {
86
+ 'roles.groups.$.name': {
89
87
  type: String
90
88
  },
91
- 'assets.$.id_asset': {
92
- type: String
89
+ 'roles.groups.$.views': {
90
+ type: Array
93
91
  },
94
- 'assets.$.asset_number': {
92
+ 'roles.groups.$.views.$': {
95
93
  type: String
96
94
  },
97
- 'assets.$.ownership': {
98
- type: String
95
+ 'roles.groups.$.yard': {
96
+ type: String,
97
+ optional: true
99
98
  },
100
- 'assets.$.ownership_driver': {
99
+ 'roles.notifications': {
100
+ type: Array
101
+ },
102
+ 'roles.notifications.$': {
101
103
  type: String
102
104
  },
103
- 'assets.$.date_start': {
104
- type: Date
105
+ 'roles.miscs': {
106
+ type: Array
105
107
  },
106
- 'assets.$.date_end': {
107
- type: Date,
108
- optional: true
108
+ 'roles.miscs.$': {
109
+ type: String
109
110
  },
110
- id_function: {
111
+ active: Boolean,
112
+ id_customer: {
111
113
  type: String,
112
114
  optional: true
113
115
  },
114
116
  customer: {
115
117
  type: String,
116
- optional: true,
118
+ optional: true
117
119
  },
118
- id_customer: {
120
+ customer_type: {
121
+ type: String,
122
+ optional: true
123
+ },
124
+ phonenumber: {
119
125
  type: String,
126
+ optional: true
127
+ },
128
+ other: {
129
+ type: Object,
120
130
  optional: true,
131
+ blackbox: true
121
132
  }
122
133
  };
123
134
  var DefaultSchema = new mongoose_1.Schema(schema, {
package/fixtures/init.js CHANGED
@@ -37,8 +37,8 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
37
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
38
  var app_version_collection_1 = require("../collections/app-version.collection");
39
39
  var logged_in_users_collection_1 = require("../collections/logged-in-users.collection");
40
- var active_subscription_collection_1 = require("../collections/active-subscription.collection");
41
40
  var mongoose_1 = require("mongoose");
41
+ var active_subscription_collection_1 = require("../collections/active-subscription.collection");
42
42
  function loadServerInit() {
43
43
  return __awaiter(this, void 0, void 0, function () {
44
44
  var appVersion;
@@ -17,8 +17,8 @@ export declare class SubscriptionManager {
17
17
  unsubscribeAll(ws: WebSocket): Promise<void>;
18
18
  private getPublicationCollections;
19
19
  private tailOpLog;
20
- private runOpLogQueue;
21
20
  private tailOpLogSupport;
21
+ private runOpLogQueue;
22
22
  private resendPubsForDelete;
23
23
  private checkPubsForChanges;
24
24
  private checkSupportPubsForChanges;
@@ -413,34 +413,6 @@ var SubscriptionManager = /** @class */ (function () {
413
413
  console.log('oplog stopped');
414
414
  });
415
415
  };
416
- SubscriptionManager.prototype.runOpLogQueue = function () {
417
- var _this = this;
418
- setInterval(function () {
419
- var oplogQueue = common_1.deepCopy(_this._oplogQueue);
420
- var uniqueCollectionOplogQueue = oplogQueue.map(function (a) { return a.collection; }).filter(function (elem, index, self) {
421
- return index === self.indexOf(elem);
422
- });
423
- uniqueCollectionOplogQueue.forEach(function (collection) {
424
- var oplogQueueFiltered = oplogQueue.filter(function (a) { return a.collection === collection; });
425
- if (oplogQueueFiltered.length === 1) {
426
- _this.checkPubsForChanges(oplogQueueFiltered[0].collection, oplogQueueFiltered[0].doc);
427
- _this._oplogQueue.splice(_this._oplogQueue.map(function (a) { return a.collection; }).indexOf(collection), 1);
428
- }
429
- else {
430
- oplogQueueFiltered.forEach(function (item) {
431
- _this.checkPubsForChanges(item.collection, item.doc, true);
432
- });
433
- _this.checkPubsForChanges(oplogQueueFiltered[oplogQueueFiltered.length - 1].collection, oplogQueueFiltered[oplogQueueFiltered.length - 1].doc);
434
- for (var i = _this._oplogQueue.length - 1; i >= 0; i--) {
435
- var item = _this._oplogQueue[i];
436
- if (item.collection === collection) {
437
- _this._oplogQueue.splice(i, 1);
438
- }
439
- }
440
- }
441
- });
442
- }, 1000);
443
- };
444
416
  SubscriptionManager.prototype.tailOpLogSupport = function () {
445
417
  var that = this;
446
418
  var oplog = MongoOplog(that.serverConfig['RESOLVEIO_SUPPORT_OPLOG_URL']);
@@ -489,6 +461,34 @@ var SubscriptionManager = /** @class */ (function () {
489
461
  console.log('oplog stopped support');
490
462
  });
491
463
  };
464
+ SubscriptionManager.prototype.runOpLogQueue = function () {
465
+ var _this = this;
466
+ setInterval(function () {
467
+ var oplogQueue = common_1.deepCopy(_this._oplogQueue);
468
+ var uniqueCollectionOplogQueue = oplogQueue.map(function (a) { return a.collection; }).filter(function (elem, index, self) {
469
+ return index === self.indexOf(elem);
470
+ });
471
+ uniqueCollectionOplogQueue.forEach(function (collection) {
472
+ var oplogQueueFiltered = oplogQueue.filter(function (a) { return a.collection === collection; });
473
+ if (oplogQueueFiltered.length === 1) {
474
+ _this.checkPubsForChanges(oplogQueueFiltered[0].collection, oplogQueueFiltered[0].doc);
475
+ _this._oplogQueue.splice(_this._oplogQueue.map(function (a) { return a.collection; }).indexOf(collection), 1);
476
+ }
477
+ else {
478
+ oplogQueueFiltered.forEach(function (item) {
479
+ _this.checkPubsForChanges(item.collection, item.doc, true);
480
+ });
481
+ _this.checkPubsForChanges(oplogQueueFiltered[oplogQueueFiltered.length - 1].collection, oplogQueueFiltered[oplogQueueFiltered.length - 1].doc, false, true);
482
+ for (var i = _this._oplogQueue.length - 1; i >= 0; i--) {
483
+ var item = _this._oplogQueue[i];
484
+ if (item.collection === collection) {
485
+ _this._oplogQueue.splice(i, 1);
486
+ }
487
+ }
488
+ }
489
+ });
490
+ }, 1000);
491
+ };
492
492
  SubscriptionManager.prototype.resendPubsForDelete = function (collection) {
493
493
  var that = this;
494
494
  that._subscriptions.filter(function (a) { return a.collections.includes(collection); }).forEach(function (sub) {
@@ -509,9 +509,10 @@ var SubscriptionManager = /** @class */ (function () {
509
509
  // Document: Inserted/Modified/Deleted Document
510
510
  // Collection: Collection Document Lives In
511
511
  // Check to see if any pubs need to refetch due to Mongo operation
512
- SubscriptionManager.prototype.checkPubsForChanges = function (collection, document, fetchFunctionOnly) {
512
+ SubscriptionManager.prototype.checkPubsForChanges = function (collection, document, fetchFunctionOnly, noFetchFunction) {
513
513
  var _this = this;
514
514
  if (fetchFunctionOnly === void 0) { fetchFunctionOnly = false; }
515
+ if (noFetchFunction === void 0) { noFetchFunction = false; }
515
516
  var that = this;
516
517
  that._subscriptions.filter(function (a) { return a.collections.includes(collection); }).forEach(function (sub) { return __awaiter(_this, void 0, void 0, function () {
517
518
  var _a, schemaErrors, _b;
@@ -531,7 +532,7 @@ var SubscriptionManager = /** @class */ (function () {
531
532
  document = _c.sent();
532
533
  _c.label = 2;
533
534
  case 2:
534
- if (!that._publications[sub.publication].preFunction) return [3 /*break*/, 4];
535
+ if (!(that._publications[sub.publication].preFunction && !noFetchFunction)) return [3 /*break*/, 4];
535
536
  _b = sub;
536
537
  return [4 /*yield*/, that._publications[sub.publication].preFunction(sub.subscriptionData)];
537
538
  case 3:
@@ -544,7 +545,7 @@ var SubscriptionManager = /** @class */ (function () {
544
545
  if (that._publications[sub.publication].ws_specific) {
545
546
  sub.clients.forEach(function (client) {
546
547
  var _a;
547
- if (that._publications[sub.publication].fetchFunction) {
548
+ if (that._publications[sub.publication].fetchFunction && !noFetchFunction) {
548
549
  if ((_a = that._publications[sub.publication]).fetchFunction.apply(_a, [document, client.id_user].concat(sub.subscriptionData))) {
549
550
  that._wss.clients.forEach(function (ws) {
550
551
  if (ws['id_socket'] === client.id_socket) {
@@ -563,7 +564,7 @@ var SubscriptionManager = /** @class */ (function () {
563
564
  });
564
565
  }
565
566
  else {
566
- if (that._publications[sub.publication].fetchFunction) {
567
+ if (that._publications[sub.publication].fetchFunction && !noFetchFunction) {
567
568
  if ((_a = that._publications[sub.publication]).fetchFunction.apply(_a, [document].concat(sub.subscriptionData))) {
568
569
  that.sendPubData(sub);
569
570
  }
@@ -1,14 +1,31 @@
1
1
  import { CollectionDocument } from './collection-document.model';
2
2
  export interface UserModel extends CollectionDocument {
3
- attempts: number;
4
- last: Date;
5
- services?: any;
6
3
  fullname: string;
4
+ roles: UserRoleModel;
7
5
  username?: string;
8
6
  email?: string;
9
- roles?: string[];
10
7
  active?: boolean;
11
- readonly?: boolean;
8
+ services?: any;
9
+ id_customer?: string;
10
+ customer?: string;
11
+ customer_type?: string;
12
12
  phonenumber?: string;
13
13
  other?: object;
14
14
  }
15
+ export interface UserRoleModel {
16
+ super_admin: boolean;
17
+ approvals: UserRoleApprovalModel[];
18
+ groups: UserRoleGroupModel[];
19
+ notifications: string[];
20
+ miscs: string[];
21
+ }
22
+ export interface UserRoleApprovalModel {
23
+ accounting_code: string;
24
+ type: string;
25
+ name: string;
26
+ }
27
+ export interface UserRoleGroupModel {
28
+ name: string;
29
+ views: string[];
30
+ yard?: string;
31
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@resolveio/server-lib",
3
- "version": "2.1.0",
3
+ "version": "2.1.1-newrole",
4
4
  "description": "",
5
5
  "main": "index.ts",
6
6
  "scripts": {