@resolveio/server-lib 2.2.2 → 2.2.3-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;
@@ -276,7 +276,7 @@ var SubscriptionManager = /** @class */ (function () {
276
276
  subscriptionData[_i - 3] = arguments[_i];
277
277
  }
278
278
  return __awaiter(this, void 0, void 0, function () {
279
- var that, sub, index, activeSub;
279
+ var that, sub, i, activeSub;
280
280
  return __generator(this, function (_a) {
281
281
  switch (_a.label) {
282
282
  case 0:
@@ -286,13 +286,15 @@ var SubscriptionManager = /** @class */ (function () {
286
286
  return [2 /*return*/];
287
287
  case 1:
288
288
  sub = that._subscriptions.filter(function (a) { return a.publication === publication && JSON.stringify(a.subscriptionData) === JSON.stringify(subscriptionData); })[0];
289
- if (!sub) return [3 /*break*/, 6];
290
- index = sub.clients.findIndex(function (a) { return a.id_user === ws['id_user'] && a.messageId === messageId && a.id_socket === ws['id_socket']; });
291
- if (!(index >= 0)) return [3 /*break*/, 5];
292
- sub.clients.splice(index, 1);
289
+ if (!sub) return [3 /*break*/, 5];
290
+ for (i = sub.clients.length - 1; i >= 0; i--) {
291
+ if (sub.clients[i].id_user === ws['id_user'] && sub.clients[i].messageId === messageId && sub.clients[i].id_socket === ws['id_socket']) {
292
+ sub.clients.splice(i, 1);
293
+ }
294
+ }
293
295
  if (!!sub.clients.length) return [3 /*break*/, 2];
294
296
  that._subscriptions.splice(that._subscriptions.findIndex(function (a) { return a.publication === publication && JSON.stringify(a.subscriptionData) === JSON.stringify(subscriptionData); }), 1);
295
- active_subscription_collection_1.ActiveSubscriptions.findOneAndRemove({
297
+ active_subscription_collection_1.ActiveSubscriptions.deleteOne({
296
298
  $and: [
297
299
  { publication: publication },
298
300
  { subData: JSON.stringify(subscriptionData) }
@@ -311,8 +313,10 @@ var SubscriptionManager = /** @class */ (function () {
311
313
  active_subscription_collection_1.ActiveSubscriptions.updateOne({ _id: activeSub._id }, { $set: { clients: sub.clients } }).exec();
312
314
  }
313
315
  _a.label = 4;
314
- case 4: return [3 /*break*/, 5];
315
- case 5: return [3 /*break*/, 6];
316
+ case 4: return [3 /*break*/, 6];
317
+ case 5:
318
+ console.log('Did not sub on unsubscribe');
319
+ _a.label = 6;
316
320
  case 6: return [2 /*return*/];
317
321
  }
318
322
  });
@@ -351,7 +355,12 @@ var SubscriptionManager = /** @class */ (function () {
351
355
  case 2:
352
356
  activeSubs = _a.sent();
353
357
  activeSubs.forEach(function (sub) {
354
- if (sub.clients.length === 1) {
358
+ for (var j = sub.clients.length - 1; j >= 0; j--) {
359
+ if (sub.clients[j].id_socket === ws['id_socket']) {
360
+ sub.clients.splice(j, 1);
361
+ }
362
+ }
363
+ if (!sub.clients.length) {
355
364
  active_subscription_collection_1.ActiveSubscriptions.deleteOne({ _id: sub._id }).exec();
356
365
  }
357
366
  else {
@@ -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.2.2",
3
+ "version": "2.2.3-newrole",
4
4
  "description": "",
5
5
  "main": "index.ts",
6
6
  "scripts": {