polfan-server-js-client 0.1.35 → 0.1.37
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/build/index.js +367 -195
- package/build/index.js.map +1 -1
- package/build/types/state-tracker/AsyncUtils.d.ts +14 -0
- package/build/types/state-tracker/PermissionsManager.d.ts +9 -0
- package/build/types/state-tracker/RoomsManager.d.ts +1 -0
- package/build/types/state-tracker/SpacesManager.d.ts +2 -0
- package/package.json +1 -1
- package/src/state-tracker/AsyncUtils.ts +38 -0
- package/src/state-tracker/ChatStateTracker.ts +1 -1
- package/src/state-tracker/PermissionsManager.ts +61 -14
- package/src/state-tracker/RoomsManager.ts +14 -10
- package/src/state-tracker/SpacesManager.ts +23 -17
- package/tests/async-utils.test.ts +30 -0
- package/build/types/state-tracker/DeferredTask.d.ts +0 -5
- package/src/state-tracker/DeferredTask.ts +0 -8
package/build/index.js
CHANGED
|
@@ -562,23 +562,63 @@ var ObservableIndexedObjectCollection = /*#__PURE__*/function (_IndexedObjectCol
|
|
|
562
562
|
}]);
|
|
563
563
|
return ObservableIndexedObjectCollection;
|
|
564
564
|
}(IndexedObjectCollection);
|
|
565
|
-
;// CONCATENATED MODULE: ./src/state-tracker/
|
|
566
|
-
function
|
|
567
|
-
function
|
|
568
|
-
function
|
|
569
|
-
function
|
|
570
|
-
function
|
|
571
|
-
function
|
|
572
|
-
function
|
|
573
|
-
|
|
565
|
+
;// CONCATENATED MODULE: ./src/state-tracker/AsyncUtils.ts
|
|
566
|
+
function AsyncUtils_typeof(obj) { "@babel/helpers - typeof"; return AsyncUtils_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, AsyncUtils_typeof(obj); }
|
|
567
|
+
function AsyncUtils_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, AsyncUtils_toPropertyKey(descriptor.key), descriptor); } }
|
|
568
|
+
function AsyncUtils_createClass(Constructor, protoProps, staticProps) { if (protoProps) AsyncUtils_defineProperties(Constructor.prototype, protoProps); if (staticProps) AsyncUtils_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
569
|
+
function AsyncUtils_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
570
|
+
function AsyncUtils_defineProperty(obj, key, value) { key = AsyncUtils_toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
571
|
+
function AsyncUtils_toPropertyKey(arg) { var key = AsyncUtils_toPrimitive(arg, "string"); return AsyncUtils_typeof(key) === "symbol" ? key : String(key); }
|
|
572
|
+
function AsyncUtils_toPrimitive(input, hint) { if (AsyncUtils_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (AsyncUtils_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
573
|
+
|
|
574
|
+
var DeferredTask = /*#__PURE__*/AsyncUtils_createClass(function DeferredTask() {
|
|
574
575
|
var _this = this;
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
576
|
+
AsyncUtils_classCallCheck(this, DeferredTask);
|
|
577
|
+
AsyncUtils_defineProperty(this, "promise", void 0);
|
|
578
|
+
AsyncUtils_defineProperty(this, "resolve", void 0);
|
|
578
579
|
this.promise = new Promise(function (resolve) {
|
|
579
580
|
return _this.resolve = resolve;
|
|
580
581
|
});
|
|
581
582
|
});
|
|
583
|
+
var PromiseRegistry = /*#__PURE__*/function () {
|
|
584
|
+
function PromiseRegistry() {
|
|
585
|
+
AsyncUtils_classCallCheck(this, PromiseRegistry);
|
|
586
|
+
AsyncUtils_defineProperty(this, "promises", new IndexedCollection());
|
|
587
|
+
}
|
|
588
|
+
AsyncUtils_createClass(PromiseRegistry, [{
|
|
589
|
+
key: "register",
|
|
590
|
+
value: function register(promise, key) {
|
|
591
|
+
this.promises.set([key, promise]);
|
|
592
|
+
}
|
|
593
|
+
}, {
|
|
594
|
+
key: "registerByFunction",
|
|
595
|
+
value: function registerByFunction(fn, key) {
|
|
596
|
+
this.register(fn(), key);
|
|
597
|
+
}
|
|
598
|
+
}, {
|
|
599
|
+
key: "get",
|
|
600
|
+
value: function get(key) {
|
|
601
|
+
return this.promises.get(key);
|
|
602
|
+
}
|
|
603
|
+
}, {
|
|
604
|
+
key: "has",
|
|
605
|
+
value: function has(key) {
|
|
606
|
+
return this.promises.has(key);
|
|
607
|
+
}
|
|
608
|
+
}, {
|
|
609
|
+
key: "notExist",
|
|
610
|
+
value: function notExist(key) {
|
|
611
|
+
return !this.has(key);
|
|
612
|
+
}
|
|
613
|
+
}, {
|
|
614
|
+
key: "forget",
|
|
615
|
+
value: function forget() {
|
|
616
|
+
var _this$promises;
|
|
617
|
+
(_this$promises = this.promises)["delete"].apply(_this$promises, arguments);
|
|
618
|
+
}
|
|
619
|
+
}]);
|
|
620
|
+
return PromiseRegistry;
|
|
621
|
+
}();
|
|
582
622
|
;// CONCATENATED MODULE: ./src/state-tracker/MessagesManager.ts
|
|
583
623
|
function MessagesManager_typeof(obj) { "@babel/helpers - typeof"; return MessagesManager_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, MessagesManager_typeof(obj); }
|
|
584
624
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -900,6 +940,7 @@ var RoomsManager = /*#__PURE__*/function () {
|
|
|
900
940
|
RoomsManager_defineProperty(this, "topics", new IndexedCollection());
|
|
901
941
|
RoomsManager_defineProperty(this, "members", new IndexedCollection());
|
|
902
942
|
RoomsManager_defineProperty(this, "deferredSession", new DeferredTask());
|
|
943
|
+
RoomsManager_defineProperty(this, "membersPromises", new PromiseRegistry());
|
|
903
944
|
this.messages = new MessagesManager(tracker);
|
|
904
945
|
this.tracker.client.on('NewTopic', function (ev) {
|
|
905
946
|
return _this.handleNewTopic(ev);
|
|
@@ -942,37 +983,50 @@ var RoomsManager = /*#__PURE__*/function () {
|
|
|
942
983
|
RoomsManager_createClass(RoomsManager, [{
|
|
943
984
|
key: "getMembers",
|
|
944
985
|
value: function () {
|
|
945
|
-
var _getMembers = RoomsManager_asyncToGenerator( /*#__PURE__*/RoomsManager_regeneratorRuntime().mark(function
|
|
946
|
-
var
|
|
947
|
-
return RoomsManager_regeneratorRuntime().wrap(function
|
|
986
|
+
var _getMembers = RoomsManager_asyncToGenerator( /*#__PURE__*/RoomsManager_regeneratorRuntime().mark(function _callee2(roomId) {
|
|
987
|
+
var _this2 = this;
|
|
988
|
+
return RoomsManager_regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
948
989
|
while (1) {
|
|
949
|
-
switch (
|
|
990
|
+
switch (_context2.prev = _context2.next) {
|
|
950
991
|
case 0:
|
|
951
|
-
if (this.
|
|
952
|
-
|
|
953
|
-
|
|
992
|
+
if (this.membersPromises.notExist(roomId)) {
|
|
993
|
+
this.membersPromises.registerByFunction( /*#__PURE__*/RoomsManager_asyncToGenerator( /*#__PURE__*/RoomsManager_regeneratorRuntime().mark(function _callee() {
|
|
994
|
+
var result;
|
|
995
|
+
return RoomsManager_regeneratorRuntime().wrap(function _callee$(_context) {
|
|
996
|
+
while (1) {
|
|
997
|
+
switch (_context.prev = _context.next) {
|
|
998
|
+
case 0:
|
|
999
|
+
_context.next = 2;
|
|
1000
|
+
return _this2.tracker.client.send('GetRoomMembers', {
|
|
1001
|
+
id: roomId
|
|
1002
|
+
});
|
|
1003
|
+
case 2:
|
|
1004
|
+
result = _context.sent;
|
|
1005
|
+
if (!result.error) {
|
|
1006
|
+
_context.next = 5;
|
|
1007
|
+
break;
|
|
1008
|
+
}
|
|
1009
|
+
throw result.error;
|
|
1010
|
+
case 5:
|
|
1011
|
+
_this2.handleRoomMembers(result.data);
|
|
1012
|
+
case 6:
|
|
1013
|
+
case "end":
|
|
1014
|
+
return _context.stop();
|
|
1015
|
+
}
|
|
1016
|
+
}
|
|
1017
|
+
}, _callee);
|
|
1018
|
+
})), roomId);
|
|
954
1019
|
}
|
|
955
|
-
|
|
956
|
-
return this.
|
|
957
|
-
id: roomId
|
|
958
|
-
});
|
|
1020
|
+
_context2.next = 3;
|
|
1021
|
+
return this.membersPromises.get(roomId);
|
|
959
1022
|
case 3:
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
_context.next = 6;
|
|
963
|
-
break;
|
|
964
|
-
}
|
|
965
|
-
throw result.error;
|
|
966
|
-
case 6:
|
|
967
|
-
this.handleRoomMembers(result.data);
|
|
968
|
-
case 7:
|
|
969
|
-
return _context.abrupt("return", this.members.get(roomId));
|
|
970
|
-
case 8:
|
|
1023
|
+
return _context2.abrupt("return", this.members.get(roomId));
|
|
1024
|
+
case 4:
|
|
971
1025
|
case "end":
|
|
972
|
-
return
|
|
1026
|
+
return _context2.stop();
|
|
973
1027
|
}
|
|
974
1028
|
}
|
|
975
|
-
},
|
|
1029
|
+
}, _callee2, this);
|
|
976
1030
|
}));
|
|
977
1031
|
function getMembers(_x) {
|
|
978
1032
|
return _getMembers.apply(this, arguments);
|
|
@@ -985,36 +1039,36 @@ var RoomsManager = /*#__PURE__*/function () {
|
|
|
985
1039
|
}, {
|
|
986
1040
|
key: "getMe",
|
|
987
1041
|
value: function () {
|
|
988
|
-
var _getMe = RoomsManager_asyncToGenerator( /*#__PURE__*/RoomsManager_regeneratorRuntime().mark(function
|
|
1042
|
+
var _getMe = RoomsManager_asyncToGenerator( /*#__PURE__*/RoomsManager_regeneratorRuntime().mark(function _callee3(roomId) {
|
|
989
1043
|
var userId, members;
|
|
990
|
-
return RoomsManager_regeneratorRuntime().wrap(function
|
|
1044
|
+
return RoomsManager_regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
991
1045
|
while (1) {
|
|
992
|
-
switch (
|
|
1046
|
+
switch (_context3.prev = _context3.next) {
|
|
993
1047
|
case 0:
|
|
994
|
-
|
|
1048
|
+
_context3.next = 2;
|
|
995
1049
|
return this.tracker.getMe();
|
|
996
1050
|
case 2:
|
|
997
|
-
userId =
|
|
998
|
-
|
|
1051
|
+
userId = _context3.sent.id;
|
|
1052
|
+
_context3.next = 5;
|
|
999
1053
|
return this.getMembers(roomId);
|
|
1000
1054
|
case 5:
|
|
1001
|
-
members =
|
|
1055
|
+
members = _context3.sent;
|
|
1002
1056
|
if (members) {
|
|
1003
|
-
|
|
1057
|
+
_context3.next = 8;
|
|
1004
1058
|
break;
|
|
1005
1059
|
}
|
|
1006
|
-
return
|
|
1060
|
+
return _context3.abrupt("return", undefined);
|
|
1007
1061
|
case 8:
|
|
1008
|
-
return
|
|
1062
|
+
return _context3.abrupt("return", members.items.find(function (member) {
|
|
1009
1063
|
var _member$user$id, _member$user;
|
|
1010
1064
|
return ((_member$user$id = (_member$user = member.user) === null || _member$user === void 0 ? void 0 : _member$user.id) !== null && _member$user$id !== void 0 ? _member$user$id : member.spaceMember.user.id) === userId;
|
|
1011
1065
|
}));
|
|
1012
1066
|
case 9:
|
|
1013
1067
|
case "end":
|
|
1014
|
-
return
|
|
1068
|
+
return _context3.stop();
|
|
1015
1069
|
}
|
|
1016
1070
|
}
|
|
1017
|
-
},
|
|
1071
|
+
}, _callee3, this);
|
|
1018
1072
|
}));
|
|
1019
1073
|
function getMe(_x2) {
|
|
1020
1074
|
return _getMe.apply(this, arguments);
|
|
@@ -1027,21 +1081,21 @@ var RoomsManager = /*#__PURE__*/function () {
|
|
|
1027
1081
|
}, {
|
|
1028
1082
|
key: "get",
|
|
1029
1083
|
value: function () {
|
|
1030
|
-
var _get = RoomsManager_asyncToGenerator( /*#__PURE__*/RoomsManager_regeneratorRuntime().mark(function
|
|
1031
|
-
return RoomsManager_regeneratorRuntime().wrap(function
|
|
1084
|
+
var _get = RoomsManager_asyncToGenerator( /*#__PURE__*/RoomsManager_regeneratorRuntime().mark(function _callee4() {
|
|
1085
|
+
return RoomsManager_regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
1032
1086
|
while (1) {
|
|
1033
|
-
switch (
|
|
1087
|
+
switch (_context4.prev = _context4.next) {
|
|
1034
1088
|
case 0:
|
|
1035
|
-
|
|
1089
|
+
_context4.next = 2;
|
|
1036
1090
|
return this.deferredSession.promise;
|
|
1037
1091
|
case 2:
|
|
1038
|
-
return
|
|
1092
|
+
return _context4.abrupt("return", this.list);
|
|
1039
1093
|
case 3:
|
|
1040
1094
|
case "end":
|
|
1041
|
-
return
|
|
1095
|
+
return _context4.stop();
|
|
1042
1096
|
}
|
|
1043
1097
|
}
|
|
1044
|
-
},
|
|
1098
|
+
}, _callee4, this);
|
|
1045
1099
|
}));
|
|
1046
1100
|
function get() {
|
|
1047
1101
|
return _get.apply(this, arguments);
|
|
@@ -1054,21 +1108,21 @@ var RoomsManager = /*#__PURE__*/function () {
|
|
|
1054
1108
|
}, {
|
|
1055
1109
|
key: "getTopics",
|
|
1056
1110
|
value: function () {
|
|
1057
|
-
var _getTopics = RoomsManager_asyncToGenerator( /*#__PURE__*/RoomsManager_regeneratorRuntime().mark(function
|
|
1058
|
-
return RoomsManager_regeneratorRuntime().wrap(function
|
|
1111
|
+
var _getTopics = RoomsManager_asyncToGenerator( /*#__PURE__*/RoomsManager_regeneratorRuntime().mark(function _callee5(roomId) {
|
|
1112
|
+
return RoomsManager_regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
1059
1113
|
while (1) {
|
|
1060
|
-
switch (
|
|
1114
|
+
switch (_context5.prev = _context5.next) {
|
|
1061
1115
|
case 0:
|
|
1062
|
-
|
|
1116
|
+
_context5.next = 2;
|
|
1063
1117
|
return this.deferredSession.promise;
|
|
1064
1118
|
case 2:
|
|
1065
|
-
return
|
|
1119
|
+
return _context5.abrupt("return", this.topics.get(roomId));
|
|
1066
1120
|
case 3:
|
|
1067
1121
|
case "end":
|
|
1068
|
-
return
|
|
1122
|
+
return _context5.stop();
|
|
1069
1123
|
}
|
|
1070
1124
|
}
|
|
1071
|
-
},
|
|
1125
|
+
}, _callee5, this);
|
|
1072
1126
|
}));
|
|
1073
1127
|
function getTopics(_x3) {
|
|
1074
1128
|
return _getTopics.apply(this, arguments);
|
|
@@ -1082,12 +1136,13 @@ var RoomsManager = /*#__PURE__*/function () {
|
|
|
1082
1136
|
}, {
|
|
1083
1137
|
key: "_delete",
|
|
1084
1138
|
value: function _delete() {
|
|
1085
|
-
var _this$list, _this$members, _this$topics;
|
|
1139
|
+
var _this$list, _this$members, _this$membersPromises, _this$topics;
|
|
1086
1140
|
for (var _len = arguments.length, roomIds = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
1087
1141
|
roomIds[_key] = arguments[_key];
|
|
1088
1142
|
}
|
|
1089
1143
|
(_this$list = this.list)["delete"].apply(_this$list, roomIds);
|
|
1090
1144
|
(_this$members = this.members)["delete"].apply(_this$members, roomIds);
|
|
1145
|
+
(_this$membersPromises = this.membersPromises).forget.apply(_this$membersPromises, roomIds);
|
|
1091
1146
|
for (var _i = 0, _roomIds = roomIds; _i < _roomIds.length; _i++) {
|
|
1092
1147
|
var _this$topics$get$map, _this$topics$get, _this$messages;
|
|
1093
1148
|
var roomId = _roomIds[_i];
|
|
@@ -1120,8 +1175,9 @@ var RoomsManager = /*#__PURE__*/function () {
|
|
|
1120
1175
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
1121
1176
|
var room = _step.value;
|
|
1122
1177
|
var roomMembers = this.members.get(room.id);
|
|
1123
|
-
if (!roomMembers) {
|
|
1178
|
+
if (!roomMembers || !roomMembers.has(ev.userId)) {
|
|
1124
1179
|
// Skip update if member list for this room is not loaded
|
|
1180
|
+
// or user is not in room
|
|
1125
1181
|
continue;
|
|
1126
1182
|
}
|
|
1127
1183
|
var roomMember = roomMembers.get(ev.userId);
|
|
@@ -1317,6 +1373,8 @@ var SpacesManager = /*#__PURE__*/function () {
|
|
|
1317
1373
|
SpacesManager_defineProperty(this, "rooms", new IndexedCollection());
|
|
1318
1374
|
SpacesManager_defineProperty(this, "members", new IndexedCollection());
|
|
1319
1375
|
SpacesManager_defineProperty(this, "deferredSession", new DeferredTask());
|
|
1376
|
+
SpacesManager_defineProperty(this, "roomsPromises", new PromiseRegistry());
|
|
1377
|
+
SpacesManager_defineProperty(this, "membersPromises", new PromiseRegistry());
|
|
1320
1378
|
this.tracker.client.on('NewRoom', function (ev) {
|
|
1321
1379
|
return _this.handleNewRoom(ev);
|
|
1322
1380
|
});
|
|
@@ -1424,37 +1482,50 @@ var SpacesManager = /*#__PURE__*/function () {
|
|
|
1424
1482
|
}, {
|
|
1425
1483
|
key: "getRooms",
|
|
1426
1484
|
value: function () {
|
|
1427
|
-
var _getRooms = SpacesManager_asyncToGenerator( /*#__PURE__*/SpacesManager_regeneratorRuntime().mark(function
|
|
1428
|
-
var
|
|
1429
|
-
return SpacesManager_regeneratorRuntime().wrap(function
|
|
1485
|
+
var _getRooms = SpacesManager_asyncToGenerator( /*#__PURE__*/SpacesManager_regeneratorRuntime().mark(function _callee4(spaceId) {
|
|
1486
|
+
var _this2 = this;
|
|
1487
|
+
return SpacesManager_regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
1430
1488
|
while (1) {
|
|
1431
|
-
switch (
|
|
1489
|
+
switch (_context4.prev = _context4.next) {
|
|
1432
1490
|
case 0:
|
|
1433
|
-
if (this.
|
|
1434
|
-
|
|
1435
|
-
|
|
1491
|
+
if (this.roomsPromises.notExist(spaceId)) {
|
|
1492
|
+
this.roomsPromises.registerByFunction( /*#__PURE__*/SpacesManager_asyncToGenerator( /*#__PURE__*/SpacesManager_regeneratorRuntime().mark(function _callee3() {
|
|
1493
|
+
var result;
|
|
1494
|
+
return SpacesManager_regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
1495
|
+
while (1) {
|
|
1496
|
+
switch (_context3.prev = _context3.next) {
|
|
1497
|
+
case 0:
|
|
1498
|
+
_context3.next = 2;
|
|
1499
|
+
return _this2.tracker.client.send('GetSpaceRooms', {
|
|
1500
|
+
id: spaceId
|
|
1501
|
+
});
|
|
1502
|
+
case 2:
|
|
1503
|
+
result = _context3.sent;
|
|
1504
|
+
if (!result.error) {
|
|
1505
|
+
_context3.next = 5;
|
|
1506
|
+
break;
|
|
1507
|
+
}
|
|
1508
|
+
throw result.error;
|
|
1509
|
+
case 5:
|
|
1510
|
+
_this2.handleSpaceRooms(result.data);
|
|
1511
|
+
case 6:
|
|
1512
|
+
case "end":
|
|
1513
|
+
return _context3.stop();
|
|
1514
|
+
}
|
|
1515
|
+
}
|
|
1516
|
+
}, _callee3);
|
|
1517
|
+
})), spaceId);
|
|
1436
1518
|
}
|
|
1437
|
-
|
|
1438
|
-
return this.
|
|
1439
|
-
id: spaceId
|
|
1440
|
-
});
|
|
1519
|
+
_context4.next = 3;
|
|
1520
|
+
return this.roomsPromises.get(spaceId);
|
|
1441
1521
|
case 3:
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
_context3.next = 6;
|
|
1445
|
-
break;
|
|
1446
|
-
}
|
|
1447
|
-
throw result.error;
|
|
1448
|
-
case 6:
|
|
1449
|
-
this.handleSpaceRooms(result.data);
|
|
1450
|
-
case 7:
|
|
1451
|
-
return _context3.abrupt("return", this.rooms.get(spaceId));
|
|
1452
|
-
case 8:
|
|
1522
|
+
return _context4.abrupt("return", this.rooms.get(spaceId));
|
|
1523
|
+
case 4:
|
|
1453
1524
|
case "end":
|
|
1454
|
-
return
|
|
1525
|
+
return _context4.stop();
|
|
1455
1526
|
}
|
|
1456
1527
|
}
|
|
1457
|
-
},
|
|
1528
|
+
}, _callee4, this);
|
|
1458
1529
|
}));
|
|
1459
1530
|
function getRooms(_x2) {
|
|
1460
1531
|
return _getRooms.apply(this, arguments);
|
|
@@ -1467,37 +1538,50 @@ var SpacesManager = /*#__PURE__*/function () {
|
|
|
1467
1538
|
}, {
|
|
1468
1539
|
key: "getMembers",
|
|
1469
1540
|
value: function () {
|
|
1470
|
-
var _getMembers = SpacesManager_asyncToGenerator( /*#__PURE__*/SpacesManager_regeneratorRuntime().mark(function
|
|
1471
|
-
var
|
|
1472
|
-
return SpacesManager_regeneratorRuntime().wrap(function
|
|
1541
|
+
var _getMembers = SpacesManager_asyncToGenerator( /*#__PURE__*/SpacesManager_regeneratorRuntime().mark(function _callee6(spaceId) {
|
|
1542
|
+
var _this3 = this;
|
|
1543
|
+
return SpacesManager_regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
1473
1544
|
while (1) {
|
|
1474
|
-
switch (
|
|
1545
|
+
switch (_context6.prev = _context6.next) {
|
|
1475
1546
|
case 0:
|
|
1476
|
-
if (this.
|
|
1477
|
-
|
|
1478
|
-
|
|
1547
|
+
if (this.membersPromises.notExist(spaceId)) {
|
|
1548
|
+
this.membersPromises.registerByFunction( /*#__PURE__*/SpacesManager_asyncToGenerator( /*#__PURE__*/SpacesManager_regeneratorRuntime().mark(function _callee5() {
|
|
1549
|
+
var result;
|
|
1550
|
+
return SpacesManager_regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
1551
|
+
while (1) {
|
|
1552
|
+
switch (_context5.prev = _context5.next) {
|
|
1553
|
+
case 0:
|
|
1554
|
+
_context5.next = 2;
|
|
1555
|
+
return _this3.tracker.client.send('GetSpaceMembers', {
|
|
1556
|
+
id: spaceId
|
|
1557
|
+
});
|
|
1558
|
+
case 2:
|
|
1559
|
+
result = _context5.sent;
|
|
1560
|
+
if (!result.error) {
|
|
1561
|
+
_context5.next = 5;
|
|
1562
|
+
break;
|
|
1563
|
+
}
|
|
1564
|
+
throw result.error;
|
|
1565
|
+
case 5:
|
|
1566
|
+
_this3.handleSpaceMembers(result.data);
|
|
1567
|
+
case 6:
|
|
1568
|
+
case "end":
|
|
1569
|
+
return _context5.stop();
|
|
1570
|
+
}
|
|
1571
|
+
}
|
|
1572
|
+
}, _callee5);
|
|
1573
|
+
})), spaceId);
|
|
1479
1574
|
}
|
|
1480
|
-
|
|
1481
|
-
return this.
|
|
1482
|
-
id: spaceId
|
|
1483
|
-
});
|
|
1575
|
+
_context6.next = 3;
|
|
1576
|
+
return this.membersPromises.get(spaceId);
|
|
1484
1577
|
case 3:
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
_context4.next = 6;
|
|
1488
|
-
break;
|
|
1489
|
-
}
|
|
1490
|
-
throw result.error;
|
|
1491
|
-
case 6:
|
|
1492
|
-
this.handleSpaceMembers(result.data);
|
|
1493
|
-
case 7:
|
|
1494
|
-
return _context4.abrupt("return", this.members.get(spaceId));
|
|
1495
|
-
case 8:
|
|
1578
|
+
return _context6.abrupt("return", this.members.get(spaceId));
|
|
1579
|
+
case 4:
|
|
1496
1580
|
case "end":
|
|
1497
|
-
return
|
|
1581
|
+
return _context6.stop();
|
|
1498
1582
|
}
|
|
1499
1583
|
}
|
|
1500
|
-
},
|
|
1584
|
+
}, _callee6, this);
|
|
1501
1585
|
}));
|
|
1502
1586
|
function getMembers(_x3) {
|
|
1503
1587
|
return _getMembers.apply(this, arguments);
|
|
@@ -1510,35 +1594,35 @@ var SpacesManager = /*#__PURE__*/function () {
|
|
|
1510
1594
|
}, {
|
|
1511
1595
|
key: "getMe",
|
|
1512
1596
|
value: function () {
|
|
1513
|
-
var _getMe = SpacesManager_asyncToGenerator( /*#__PURE__*/SpacesManager_regeneratorRuntime().mark(function
|
|
1597
|
+
var _getMe = SpacesManager_asyncToGenerator( /*#__PURE__*/SpacesManager_regeneratorRuntime().mark(function _callee7(spaceId) {
|
|
1514
1598
|
var userId, members;
|
|
1515
|
-
return SpacesManager_regeneratorRuntime().wrap(function
|
|
1599
|
+
return SpacesManager_regeneratorRuntime().wrap(function _callee7$(_context7) {
|
|
1516
1600
|
while (1) {
|
|
1517
|
-
switch (
|
|
1601
|
+
switch (_context7.prev = _context7.next) {
|
|
1518
1602
|
case 0:
|
|
1519
|
-
|
|
1603
|
+
_context7.next = 2;
|
|
1520
1604
|
return this.tracker.getMe();
|
|
1521
1605
|
case 2:
|
|
1522
|
-
userId =
|
|
1523
|
-
|
|
1606
|
+
userId = _context7.sent.id;
|
|
1607
|
+
_context7.next = 5;
|
|
1524
1608
|
return this.getMembers(spaceId);
|
|
1525
1609
|
case 5:
|
|
1526
|
-
members =
|
|
1610
|
+
members = _context7.sent;
|
|
1527
1611
|
if (members) {
|
|
1528
|
-
|
|
1612
|
+
_context7.next = 8;
|
|
1529
1613
|
break;
|
|
1530
1614
|
}
|
|
1531
|
-
return
|
|
1615
|
+
return _context7.abrupt("return", undefined);
|
|
1532
1616
|
case 8:
|
|
1533
|
-
return
|
|
1617
|
+
return _context7.abrupt("return", members.items.find(function (member) {
|
|
1534
1618
|
return member.user.id === userId;
|
|
1535
1619
|
}));
|
|
1536
1620
|
case 9:
|
|
1537
1621
|
case "end":
|
|
1538
|
-
return
|
|
1622
|
+
return _context7.stop();
|
|
1539
1623
|
}
|
|
1540
1624
|
}
|
|
1541
|
-
},
|
|
1625
|
+
}, _callee7, this);
|
|
1542
1626
|
}));
|
|
1543
1627
|
function getMe(_x4) {
|
|
1544
1628
|
return _getMe.apply(this, arguments);
|
|
@@ -1579,7 +1663,9 @@ var SpacesManager = /*#__PURE__*/function () {
|
|
|
1579
1663
|
this.tracker.rooms._deleteBySpaceId(ev.id);
|
|
1580
1664
|
this.roles["delete"](ev.id);
|
|
1581
1665
|
this.members["delete"](ev.id);
|
|
1666
|
+
this.membersPromises.forget(ev.id);
|
|
1582
1667
|
this.rooms["delete"](ev.id);
|
|
1668
|
+
this.roomsPromises.forget(ev.id);
|
|
1583
1669
|
this.list["delete"](ev.id);
|
|
1584
1670
|
}
|
|
1585
1671
|
}, {
|
|
@@ -1732,8 +1818,9 @@ function PermissionsManager_toPrimitive(input, hint) { if (PermissionsManager_ty
|
|
|
1732
1818
|
|
|
1733
1819
|
|
|
1734
1820
|
|
|
1821
|
+
|
|
1735
1822
|
var getOvId = function getOvId(layer, layerId, target, targetId) {
|
|
1736
|
-
return layer + (layerId !== null && layerId !== void 0 ? layerId : '') + target + targetId;
|
|
1823
|
+
return layer + (layerId !== null && layerId !== void 0 ? layerId : '') + (target !== null && target !== void 0 ? target : '') + (targetId !== null && targetId !== void 0 ? targetId : '');
|
|
1737
1824
|
};
|
|
1738
1825
|
var getOvIdByObject = function getOvIdByObject(overwrites) {
|
|
1739
1826
|
return getOvId(overwrites.layer, overwrites.layerId, overwrites.target, overwrites.targetId);
|
|
@@ -1747,46 +1834,85 @@ var PermissionsManager = /*#__PURE__*/function (_EventTarget) {
|
|
|
1747
1834
|
_this = _super.call(this);
|
|
1748
1835
|
_this.tracker = tracker;
|
|
1749
1836
|
PermissionsManager_defineProperty(PermissionsManager_assertThisInitialized(_this), "overwrites", new IndexedCollection());
|
|
1837
|
+
PermissionsManager_defineProperty(PermissionsManager_assertThisInitialized(_this), "overwritesPromises", new PromiseRegistry());
|
|
1750
1838
|
_this.tracker.client.on('PermissionOverwrites', function (ev) {
|
|
1751
1839
|
return _this.handlePermissionOverwrites(ev);
|
|
1752
1840
|
});
|
|
1753
1841
|
_this.tracker.client.on('PermissionOverwritesChanged', function (ev) {
|
|
1754
1842
|
return _this.handlePermissionOverwrites(ev);
|
|
1755
1843
|
});
|
|
1844
|
+
_this.tracker.client.on('SpaceDeleted', function (ev) {
|
|
1845
|
+
return _this.handleSpaceDeleted(ev);
|
|
1846
|
+
});
|
|
1847
|
+
_this.tracker.client.on('SpaceLeft', function (ev) {
|
|
1848
|
+
return _this.handleSpaceDeleted(ev);
|
|
1849
|
+
});
|
|
1850
|
+
_this.tracker.client.on('RoomDeleted', function (ev) {
|
|
1851
|
+
return _this.handleRoomDeleted(ev);
|
|
1852
|
+
});
|
|
1853
|
+
_this.tracker.client.on('RoomLeft', function (ev) {
|
|
1854
|
+
return _this.handleRoomDeleted(ev);
|
|
1855
|
+
});
|
|
1856
|
+
_this.tracker.client.on('TopicDeleted', function (ev) {
|
|
1857
|
+
return _this.handleTopicDeleted(ev);
|
|
1858
|
+
});
|
|
1859
|
+
_this.tracker.client.on('RoleDeleted', function (ev) {
|
|
1860
|
+
return _this.handleRoleDeleted(ev);
|
|
1861
|
+
});
|
|
1756
1862
|
return _this;
|
|
1757
1863
|
}
|
|
1758
1864
|
PermissionsManager_createClass(PermissionsManager, [{
|
|
1759
1865
|
key: "getOverwrites",
|
|
1760
1866
|
value: function () {
|
|
1761
|
-
var _getOverwrites = PermissionsManager_asyncToGenerator( /*#__PURE__*/PermissionsManager_regeneratorRuntime().mark(function
|
|
1762
|
-
var
|
|
1763
|
-
|
|
1867
|
+
var _getOverwrites = PermissionsManager_asyncToGenerator( /*#__PURE__*/PermissionsManager_regeneratorRuntime().mark(function _callee2(layer, layerId, target, targetId) {
|
|
1868
|
+
var _this2 = this;
|
|
1869
|
+
var id;
|
|
1870
|
+
return PermissionsManager_regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
1764
1871
|
while (1) {
|
|
1765
|
-
switch (
|
|
1872
|
+
switch (_context2.prev = _context2.next) {
|
|
1766
1873
|
case 0:
|
|
1767
1874
|
id = getOvId(layer, layerId, target, targetId);
|
|
1768
|
-
if (
|
|
1769
|
-
|
|
1770
|
-
|
|
1875
|
+
if (this.overwritesPromises.notExist(id)) {
|
|
1876
|
+
this.overwritesPromises.registerByFunction( /*#__PURE__*/PermissionsManager_asyncToGenerator( /*#__PURE__*/PermissionsManager_regeneratorRuntime().mark(function _callee() {
|
|
1877
|
+
var result;
|
|
1878
|
+
return PermissionsManager_regeneratorRuntime().wrap(function _callee$(_context) {
|
|
1879
|
+
while (1) {
|
|
1880
|
+
switch (_context.prev = _context.next) {
|
|
1881
|
+
case 0:
|
|
1882
|
+
_context.next = 2;
|
|
1883
|
+
return _this2.tracker.client.send('GetPermissionOverwrites', {
|
|
1884
|
+
layer: layer,
|
|
1885
|
+
layerId: layerId,
|
|
1886
|
+
target: target,
|
|
1887
|
+
targetId: targetId
|
|
1888
|
+
});
|
|
1889
|
+
case 2:
|
|
1890
|
+
result = _context.sent;
|
|
1891
|
+
if (!result.error) {
|
|
1892
|
+
_context.next = 5;
|
|
1893
|
+
break;
|
|
1894
|
+
}
|
|
1895
|
+
throw result.error;
|
|
1896
|
+
case 5:
|
|
1897
|
+
_this2.handlePermissionOverwrites(result.data);
|
|
1898
|
+
case 6:
|
|
1899
|
+
case "end":
|
|
1900
|
+
return _context.stop();
|
|
1901
|
+
}
|
|
1902
|
+
}
|
|
1903
|
+
}, _callee);
|
|
1904
|
+
})), id);
|
|
1771
1905
|
}
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
return this.
|
|
1776
|
-
layer: layer,
|
|
1777
|
-
layerId: layerId,
|
|
1778
|
-
target: target,
|
|
1779
|
-
targetId: targetId
|
|
1780
|
-
});
|
|
1906
|
+
_context2.next = 4;
|
|
1907
|
+
return this.overwritesPromises.get(id);
|
|
1908
|
+
case 4:
|
|
1909
|
+
return _context2.abrupt("return", this.overwrites.get(id));
|
|
1781
1910
|
case 5:
|
|
1782
|
-
result = _context.sent;
|
|
1783
|
-
return _context.abrupt("return", result.error ? null : result.data);
|
|
1784
|
-
case 7:
|
|
1785
1911
|
case "end":
|
|
1786
|
-
return
|
|
1912
|
+
return _context2.stop();
|
|
1787
1913
|
}
|
|
1788
1914
|
}
|
|
1789
|
-
},
|
|
1915
|
+
}, _callee2, this);
|
|
1790
1916
|
}));
|
|
1791
1917
|
function getOverwrites(_x, _x2, _x3, _x4) {
|
|
1792
1918
|
return _getOverwrites.apply(this, arguments);
|
|
@@ -1801,32 +1927,32 @@ var PermissionsManager = /*#__PURE__*/function (_EventTarget) {
|
|
|
1801
1927
|
}, {
|
|
1802
1928
|
key: "check",
|
|
1803
1929
|
value: function () {
|
|
1804
|
-
var _check = PermissionsManager_asyncToGenerator( /*#__PURE__*/PermissionsManager_regeneratorRuntime().mark(function
|
|
1930
|
+
var _check = PermissionsManager_asyncToGenerator( /*#__PURE__*/PermissionsManager_regeneratorRuntime().mark(function _callee3(permissionNames, spaceId, roomId, topicId) {
|
|
1805
1931
|
var ownedPermissions, missing;
|
|
1806
|
-
return PermissionsManager_regeneratorRuntime().wrap(function
|
|
1932
|
+
return PermissionsManager_regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
1807
1933
|
while (1) {
|
|
1808
|
-
switch (
|
|
1934
|
+
switch (_context3.prev = _context3.next) {
|
|
1809
1935
|
case 0:
|
|
1810
|
-
|
|
1936
|
+
_context3.next = 2;
|
|
1811
1937
|
return this.calculatePermissions(spaceId, roomId, topicId);
|
|
1812
1938
|
case 2:
|
|
1813
|
-
ownedPermissions =
|
|
1939
|
+
ownedPermissions = _context3.sent;
|
|
1814
1940
|
missing = [];
|
|
1815
1941
|
permissionNames.forEach(function (name) {
|
|
1816
1942
|
if (~ownedPermissions & Permission[name]) {
|
|
1817
1943
|
missing.push(name);
|
|
1818
1944
|
}
|
|
1819
1945
|
});
|
|
1820
|
-
return
|
|
1946
|
+
return _context3.abrupt("return", {
|
|
1821
1947
|
ok: missing.length === 0,
|
|
1822
1948
|
missing: missing
|
|
1823
1949
|
});
|
|
1824
1950
|
case 6:
|
|
1825
1951
|
case "end":
|
|
1826
|
-
return
|
|
1952
|
+
return _context3.stop();
|
|
1827
1953
|
}
|
|
1828
1954
|
}
|
|
1829
|
-
},
|
|
1955
|
+
}, _callee3, this);
|
|
1830
1956
|
}));
|
|
1831
1957
|
function check(_x5, _x6, _x7, _x8) {
|
|
1832
1958
|
return _check.apply(this, arguments);
|
|
@@ -1836,22 +1962,22 @@ var PermissionsManager = /*#__PURE__*/function (_EventTarget) {
|
|
|
1836
1962
|
}, {
|
|
1837
1963
|
key: "calculatePermissions",
|
|
1838
1964
|
value: function () {
|
|
1839
|
-
var _calculatePermissions = PermissionsManager_asyncToGenerator( /*#__PURE__*/PermissionsManager_regeneratorRuntime().mark(function
|
|
1965
|
+
var _calculatePermissions = PermissionsManager_asyncToGenerator( /*#__PURE__*/PermissionsManager_regeneratorRuntime().mark(function _callee4(spaceId, roomId, topicId) {
|
|
1840
1966
|
var userId, userRoles, promises, roomMember;
|
|
1841
|
-
return PermissionsManager_regeneratorRuntime().wrap(function
|
|
1967
|
+
return PermissionsManager_regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
1842
1968
|
while (1) {
|
|
1843
|
-
switch (
|
|
1969
|
+
switch (_context4.prev = _context4.next) {
|
|
1844
1970
|
case 0:
|
|
1845
1971
|
if (!(topicId && !roomId || roomId && !spaceId)) {
|
|
1846
|
-
|
|
1972
|
+
_context4.next = 2;
|
|
1847
1973
|
break;
|
|
1848
1974
|
}
|
|
1849
1975
|
throw new Error('Corrupted arguments hierarchy');
|
|
1850
1976
|
case 2:
|
|
1851
|
-
|
|
1977
|
+
_context4.next = 4;
|
|
1852
1978
|
return this.tracker.getMe();
|
|
1853
1979
|
case 4:
|
|
1854
|
-
userId =
|
|
1980
|
+
userId = _context4.sent.id;
|
|
1855
1981
|
userRoles = [];
|
|
1856
1982
|
promises = [
|
|
1857
1983
|
// Global user overwrites
|
|
@@ -1859,31 +1985,31 @@ var PermissionsManager = /*#__PURE__*/function (_EventTarget) {
|
|
|
1859
1985
|
return v.overwrites;
|
|
1860
1986
|
})];
|
|
1861
1987
|
if (!spaceId) {
|
|
1862
|
-
|
|
1988
|
+
_context4.next = 18;
|
|
1863
1989
|
break;
|
|
1864
1990
|
}
|
|
1865
|
-
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
|
|
1991
|
+
_context4.t0 = userRoles.push;
|
|
1992
|
+
_context4.t1 = userRoles;
|
|
1993
|
+
_context4.t2 = PermissionsManager_toConsumableArray;
|
|
1994
|
+
_context4.next = 13;
|
|
1869
1995
|
return this.tracker.spaces.getMe(spaceId);
|
|
1870
1996
|
case 13:
|
|
1871
|
-
|
|
1872
|
-
|
|
1873
|
-
|
|
1997
|
+
_context4.t3 = _context4.sent.roles;
|
|
1998
|
+
_context4.t4 = (0, _context4.t2)(_context4.t3);
|
|
1999
|
+
_context4.t0.apply.call(_context4.t0, _context4.t1, _context4.t4);
|
|
1874
2000
|
promises.push(this.collectRoleOverwrites(spaceId, 'Space', spaceId, userRoles));
|
|
1875
2001
|
promises.push(this.getOverwrites('Space', spaceId, 'User', userId).then(function (v) {
|
|
1876
2002
|
return v.overwrites;
|
|
1877
2003
|
}));
|
|
1878
2004
|
case 18:
|
|
1879
2005
|
if (!roomId) {
|
|
1880
|
-
|
|
2006
|
+
_context4.next = 24;
|
|
1881
2007
|
break;
|
|
1882
2008
|
}
|
|
1883
|
-
|
|
2009
|
+
_context4.next = 21;
|
|
1884
2010
|
return this.tracker.rooms.getMe(roomId);
|
|
1885
2011
|
case 21:
|
|
1886
|
-
roomMember =
|
|
2012
|
+
roomMember = _context4.sent;
|
|
1887
2013
|
if (roomMember.roles !== null) {
|
|
1888
2014
|
// Room overwrites from roles (only for space rooms)
|
|
1889
2015
|
userRoles.push.apply(userRoles, PermissionsManager_toConsumableArray(roomMember.roles));
|
|
@@ -1901,18 +2027,18 @@ var PermissionsManager = /*#__PURE__*/function (_EventTarget) {
|
|
|
1901
2027
|
return v.overwrites;
|
|
1902
2028
|
}));
|
|
1903
2029
|
}
|
|
1904
|
-
|
|
1905
|
-
|
|
2030
|
+
_context4.t5 = this;
|
|
2031
|
+
_context4.next = 28;
|
|
1906
2032
|
return Promise.all(promises);
|
|
1907
2033
|
case 28:
|
|
1908
|
-
|
|
1909
|
-
return
|
|
2034
|
+
_context4.t6 = _context4.sent;
|
|
2035
|
+
return _context4.abrupt("return", _context4.t5.resolveOverwritesHierarchy.call(_context4.t5, _context4.t6));
|
|
1910
2036
|
case 30:
|
|
1911
2037
|
case "end":
|
|
1912
|
-
return
|
|
2038
|
+
return _context4.stop();
|
|
1913
2039
|
}
|
|
1914
2040
|
}
|
|
1915
|
-
},
|
|
2041
|
+
}, _callee4, this);
|
|
1916
2042
|
}));
|
|
1917
2043
|
function calculatePermissions(_x9, _x10, _x11) {
|
|
1918
2044
|
return _calculatePermissions.apply(this, arguments);
|
|
@@ -1925,29 +2051,75 @@ var PermissionsManager = /*#__PURE__*/function (_EventTarget) {
|
|
|
1925
2051
|
this.overwrites.set([getOvIdByObject(ev), ev]);
|
|
1926
2052
|
this.emit('change');
|
|
1927
2053
|
}
|
|
2054
|
+
}, {
|
|
2055
|
+
key: "handleSpaceDeleted",
|
|
2056
|
+
value: function handleSpaceDeleted(ev) {
|
|
2057
|
+
var _this$overwritesPromi;
|
|
2058
|
+
var ids = this.deleteOverwritesByIdPrefix(getOvId('Space', ev.id));
|
|
2059
|
+
(_this$overwritesPromi = this.overwritesPromises).forget.apply(_this$overwritesPromi, PermissionsManager_toConsumableArray(ids));
|
|
2060
|
+
}
|
|
2061
|
+
}, {
|
|
2062
|
+
key: "handleRoomDeleted",
|
|
2063
|
+
value: function handleRoomDeleted(ev) {
|
|
2064
|
+
var _this$overwritesPromi2;
|
|
2065
|
+
var ids = this.deleteOverwritesByIdPrefix(getOvId('Room', ev.id));
|
|
2066
|
+
(_this$overwritesPromi2 = this.overwritesPromises).forget.apply(_this$overwritesPromi2, PermissionsManager_toConsumableArray(ids));
|
|
2067
|
+
}
|
|
2068
|
+
}, {
|
|
2069
|
+
key: "handleTopicDeleted",
|
|
2070
|
+
value: function handleTopicDeleted(ev) {
|
|
2071
|
+
var _this$overwritesPromi3;
|
|
2072
|
+
var ids = this.deleteOverwritesByIdPrefix(getOvId('Topic', ev.id));
|
|
2073
|
+
(_this$overwritesPromi3 = this.overwritesPromises).forget.apply(_this$overwritesPromi3, PermissionsManager_toConsumableArray(ids));
|
|
2074
|
+
}
|
|
2075
|
+
}, {
|
|
2076
|
+
key: "handleRoleDeleted",
|
|
2077
|
+
value: function handleRoleDeleted(ev) {
|
|
2078
|
+
var _this$overwritesPromi4;
|
|
2079
|
+
var ids = this.deleteOverwritesByIdPrefix(getOvId('Space', ev.spaceId, 'Role', ev.id));
|
|
2080
|
+
(_this$overwritesPromi4 = this.overwritesPromises).forget.apply(_this$overwritesPromi4, PermissionsManager_toConsumableArray(ids));
|
|
2081
|
+
}
|
|
2082
|
+
|
|
2083
|
+
/**
|
|
2084
|
+
* @return Matched and deleted ids
|
|
2085
|
+
*/
|
|
2086
|
+
}, {
|
|
2087
|
+
key: "deleteOverwritesByIdPrefix",
|
|
2088
|
+
value: function deleteOverwritesByIdPrefix(prefix) {
|
|
2089
|
+
var _this3 = this;
|
|
2090
|
+
var ids = [];
|
|
2091
|
+
this.overwrites.items.forEach(function (overwrites) {
|
|
2092
|
+
var id = getOvIdByObject(overwrites);
|
|
2093
|
+
if (id.startsWith(prefix)) {
|
|
2094
|
+
ids.push(id);
|
|
2095
|
+
_this3.overwrites["delete"](id);
|
|
2096
|
+
}
|
|
2097
|
+
});
|
|
2098
|
+
return ids;
|
|
2099
|
+
}
|
|
1928
2100
|
}, {
|
|
1929
2101
|
key: "collectRoleOverwrites",
|
|
1930
2102
|
value: function () {
|
|
1931
|
-
var _collectRoleOverwrites = PermissionsManager_asyncToGenerator( /*#__PURE__*/PermissionsManager_regeneratorRuntime().mark(function
|
|
1932
|
-
var
|
|
2103
|
+
var _collectRoleOverwrites = PermissionsManager_asyncToGenerator( /*#__PURE__*/PermissionsManager_regeneratorRuntime().mark(function _callee5(spaceId, layer, layerId, userRoles) {
|
|
2104
|
+
var _this4 = this;
|
|
1933
2105
|
var roleOverwrites;
|
|
1934
|
-
return PermissionsManager_regeneratorRuntime().wrap(function
|
|
2106
|
+
return PermissionsManager_regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
1935
2107
|
while (1) {
|
|
1936
|
-
switch (
|
|
2108
|
+
switch (_context5.prev = _context5.next) {
|
|
1937
2109
|
case 0:
|
|
1938
|
-
|
|
2110
|
+
_context5.next = 2;
|
|
1939
2111
|
return Promise.all(userRoles.map(function (roleId) {
|
|
1940
|
-
return
|
|
2112
|
+
return _this4.getOverwrites(layer, layerId, 'Role', roleId);
|
|
1941
2113
|
}));
|
|
1942
2114
|
case 2:
|
|
1943
|
-
roleOverwrites =
|
|
1944
|
-
return
|
|
2115
|
+
roleOverwrites = _context5.sent;
|
|
2116
|
+
return _context5.abrupt("return", this.resolveOverwritesFromRolesByOrder(spaceId, roleOverwrites));
|
|
1945
2117
|
case 4:
|
|
1946
2118
|
case "end":
|
|
1947
|
-
return
|
|
2119
|
+
return _context5.stop();
|
|
1948
2120
|
}
|
|
1949
2121
|
}
|
|
1950
|
-
},
|
|
2122
|
+
}, _callee5, this);
|
|
1951
2123
|
}));
|
|
1952
2124
|
function collectRoleOverwrites(_x12, _x13, _x14, _x15) {
|
|
1953
2125
|
return _collectRoleOverwrites.apply(this, arguments);
|
|
@@ -1957,17 +2129,17 @@ var PermissionsManager = /*#__PURE__*/function (_EventTarget) {
|
|
|
1957
2129
|
}, {
|
|
1958
2130
|
key: "resolveOverwritesFromRolesByOrder",
|
|
1959
2131
|
value: function () {
|
|
1960
|
-
var _resolveOverwritesFromRolesByOrder = PermissionsManager_asyncToGenerator( /*#__PURE__*/PermissionsManager_regeneratorRuntime().mark(function
|
|
2132
|
+
var _resolveOverwritesFromRolesByOrder = PermissionsManager_asyncToGenerator( /*#__PURE__*/PermissionsManager_regeneratorRuntime().mark(function _callee6(spaceId, overwrites) {
|
|
1961
2133
|
var allows, denies, roles, sortedOverwrites, permissionsLength;
|
|
1962
|
-
return PermissionsManager_regeneratorRuntime().wrap(function
|
|
2134
|
+
return PermissionsManager_regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
1963
2135
|
while (1) {
|
|
1964
|
-
switch (
|
|
2136
|
+
switch (_context6.prev = _context6.next) {
|
|
1965
2137
|
case 0:
|
|
1966
2138
|
allows = 0, denies = 0;
|
|
1967
|
-
|
|
2139
|
+
_context6.next = 3;
|
|
1968
2140
|
return this.tracker.spaces.getRoles(spaceId);
|
|
1969
2141
|
case 3:
|
|
1970
|
-
roles =
|
|
2142
|
+
roles = _context6.sent;
|
|
1971
2143
|
sortedOverwrites = overwrites.sort(function (a, b) {
|
|
1972
2144
|
return roles.get(a.targetId).priority - roles.get(b.targetId).priority;
|
|
1973
2145
|
}); // Max length of bit word
|
|
@@ -1990,16 +2162,16 @@ var PermissionsManager = /*#__PURE__*/function (_EventTarget) {
|
|
|
1990
2162
|
}
|
|
1991
2163
|
}
|
|
1992
2164
|
});
|
|
1993
|
-
return
|
|
2165
|
+
return _context6.abrupt("return", {
|
|
1994
2166
|
allow: allows,
|
|
1995
2167
|
deny: denies
|
|
1996
2168
|
});
|
|
1997
2169
|
case 8:
|
|
1998
2170
|
case "end":
|
|
1999
|
-
return
|
|
2171
|
+
return _context6.stop();
|
|
2000
2172
|
}
|
|
2001
2173
|
}
|
|
2002
|
-
},
|
|
2174
|
+
}, _callee6, this);
|
|
2003
2175
|
}));
|
|
2004
2176
|
function resolveOverwritesFromRolesByOrder(_x16, _x17) {
|
|
2005
2177
|
return _resolveOverwritesFromRolesByOrder.apply(this, arguments);
|