@intuitionrobotics/permissions 0.40.23 → 0.41.0
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/app-backend/api/v1/permissions/tags/apis.d.ts +1 -0
- package/app-backend/api/v1/permissions/tags/apis.js +23 -0
- package/app-backend/api/v1/permissions/tags/apis.js.map +1 -0
- package/app-backend/api/v1/user-custom-fields/users-cf-by-share-groups.d.ts +1 -0
- package/app-backend/api/v1/user-custom-fields/users-cf-by-share-groups.js +96 -0
- package/app-backend/api/v1/user-custom-fields/users-cf-by-share-groups.js.map +1 -0
- package/app-backend/core/module-pack.d.ts +2 -1
- package/app-backend/core/module-pack.js +3 -0
- package/app-backend/core/module-pack.js.map +1 -1
- package/app-backend/modules/PermissionsModule.d.ts +3 -3
- package/app-backend/modules/PermissionsModule.js +72 -41
- package/app-backend/modules/PermissionsModule.js.map +1 -1
- package/app-backend/modules/TagsModule.d.ts +14 -0
- package/app-backend/modules/TagsModule.js +103 -0
- package/app-backend/modules/TagsModule.js.map +1 -0
- package/app-backend/modules/db-types/assign.d.ts +2 -0
- package/app-backend/modules/db-types/assign.js +46 -0
- package/app-backend/modules/db-types/assign.js.map +1 -1
- package/app-backend/modules/permissions-assert.d.ts +22 -6
- package/app-backend/modules/permissions-assert.js +102 -69
- package/app-backend/modules/permissions-assert.js.map +1 -1
- package/app-frontend/core/module-pack.d.ts +2 -1
- package/app-frontend/core/module-pack.js +4 -1
- package/app-frontend/core/module-pack.js.map +1 -1
- package/app-frontend/modules/PermissionsComponent.d.ts +1 -4
- package/app-frontend/modules/PermissionsComponent.js +1 -4
- package/app-frontend/modules/PermissionsComponent.js.map +1 -1
- package/app-frontend/modules/PermissionsModuleFE.d.ts +1 -1
- package/app-frontend/modules/PermissionsModuleFE.js +40 -39
- package/app-frontend/modules/PermissionsModuleFE.js.map +1 -1
- package/app-frontend/modules/tags/ApiCaller_PermissionsTags.d.ts +17 -0
- package/app-frontend/modules/tags/ApiCaller_PermissionsTags.js +113 -0
- package/app-frontend/modules/tags/ApiCaller_PermissionsTags.js.map +1 -0
- package/package.json +14 -14
- package/shared/apis.d.ts +7 -0
- package/shared/assign-types.d.ts +4 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Permissions management system, define access level for each of
|
|
4
|
+
* your server apis, and restrict users by giving them access levels
|
|
5
|
+
*
|
|
6
|
+
* Copyright (C) 2020 Intuition Robotics
|
|
7
|
+
*
|
|
8
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
9
|
+
* you may not use this file except in compliance with the License.
|
|
10
|
+
* You may obtain a copy of the License at
|
|
11
|
+
*
|
|
12
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
13
|
+
*
|
|
14
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
15
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
16
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
17
|
+
* See the License for the specific language governing permissions and
|
|
18
|
+
* limitations under the License.
|
|
19
|
+
*/
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
var _imports_1 = require("../_imports");
|
|
22
|
+
module.exports = _imports_1.TagsDB.apis();
|
|
23
|
+
//# sourceMappingURL=apis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apis.js","sourceRoot":"","sources":["../../../../../../src/main/app-backend/api/v1/permissions/tags/apis.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;AAEH,wCAAmC;AAEnC,MAAM,CAAC,OAAO,GAAG,iBAAM,CAAC,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Permissions management system, define access level for each of
|
|
4
|
+
* your server apis, and restrict users by giving them access levels
|
|
5
|
+
*
|
|
6
|
+
* Copyright (C) 2020 Intuition Robotics
|
|
7
|
+
*
|
|
8
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
9
|
+
* you may not use this file except in compliance with the License.
|
|
10
|
+
* You may obtain a copy of the License at
|
|
11
|
+
*
|
|
12
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
13
|
+
*
|
|
14
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
15
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
16
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
17
|
+
* See the License for the specific language governing permissions and
|
|
18
|
+
* limitations under the License.
|
|
19
|
+
*/
|
|
20
|
+
var __extends = (this && this.__extends) || (function () {
|
|
21
|
+
var extendStatics = function (d, b) {
|
|
22
|
+
extendStatics = Object.setPrototypeOf ||
|
|
23
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
24
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
25
|
+
return extendStatics(d, b);
|
|
26
|
+
};
|
|
27
|
+
return function (d, b) {
|
|
28
|
+
extendStatics(d, b);
|
|
29
|
+
function __() { this.constructor = d; }
|
|
30
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
31
|
+
};
|
|
32
|
+
})();
|
|
33
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
34
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
35
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
36
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
37
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
38
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
39
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
43
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
44
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
45
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
46
|
+
function step(op) {
|
|
47
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
48
|
+
while (_) try {
|
|
49
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
50
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
51
|
+
switch (op[0]) {
|
|
52
|
+
case 0: case 1: t = op; break;
|
|
53
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
54
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
55
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
56
|
+
default:
|
|
57
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
58
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
59
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
60
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
61
|
+
if (t[2]) _.ops.pop();
|
|
62
|
+
_.trys.pop(); continue;
|
|
63
|
+
}
|
|
64
|
+
op = body.call(thisArg, _);
|
|
65
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
66
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
70
|
+
var backend_1 = require("@intuitionrobotics/thunderstorm/backend");
|
|
71
|
+
var _imports_1 = require("../permissions/_imports");
|
|
72
|
+
var thunderstorm_1 = require("@intuitionrobotics/thunderstorm");
|
|
73
|
+
var backend_2 = require("@intuitionrobotics/user-account/backend");
|
|
74
|
+
var ServerApi_UsersCFsByShareGroups = /** @class */ (function (_super) {
|
|
75
|
+
__extends(ServerApi_UsersCFsByShareGroups, _super);
|
|
76
|
+
function ServerApi_UsersCFsByShareGroups() {
|
|
77
|
+
var _this = _super.call(this, thunderstorm_1.HttpMethod.POST, "users-cf-by-share-groups") || this;
|
|
78
|
+
_this.dontPrintResponse();
|
|
79
|
+
return _this;
|
|
80
|
+
}
|
|
81
|
+
ServerApi_UsersCFsByShareGroups.prototype.process = function (request, response, queryParams, body) {
|
|
82
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
83
|
+
return __generator(this, function (_a) {
|
|
84
|
+
switch (_a.label) {
|
|
85
|
+
case 0: return [4 /*yield*/, backend_2.AccountModule.validateSession(request)];
|
|
86
|
+
case 1:
|
|
87
|
+
_a.sent();
|
|
88
|
+
return [2 /*return*/, _imports_1.PermissionsModule.getUsersCFsByShareGroups(body.usersEmails, body.groupsIds)];
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
};
|
|
93
|
+
return ServerApi_UsersCFsByShareGroups;
|
|
94
|
+
}(backend_1.ServerApi));
|
|
95
|
+
module.exports = new ServerApi_UsersCFsByShareGroups();
|
|
96
|
+
//# sourceMappingURL=users-cf-by-share-groups.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"users-cf-by-share-groups.js","sourceRoot":"","sources":["../../../../../src/main/app-backend/api/v1/user-custom-fields/users-cf-by-share-groups.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,mEAIiD;AACjD,oDAIiC;AACjC,gEAA2D;AAC3D,mEAAsE;AAEtE;IACS,mDAA+C;IAEvD;QAAA,YACC,kBAAM,yBAAU,CAAC,IAAI,EAAE,0BAA0B,CAAC,SAElD;QADA,KAAI,CAAC,iBAAiB,EAAE,CAAC;;IAC1B,CAAC;IAEe,iDAAO,GAAvB,UAAwB,OAAuB,EAAE,QAAqB,EAAE,WAAe,EAAE,IAAmC;;;;4BAC3H,qBAAM,uBAAa,CAAC,eAAe,CAAC,OAAO,CAAC,EAAA;;wBAA5C,SAA4C,CAAC;wBAC7C,sBAAO,4BAAiB,CAAC,wBAAwB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,EAAC;;;;KACpF;IACF,sCAAC;AAAD,CAAC,AAZD,CACS,mBAAS,GAWjB;AAED,MAAM,CAAC,OAAO,GAAG,IAAI,+BAA+B,EAAE,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export declare const Backend_ModulePack_Permissions: (import("../modules/PermissionsModule").PermissionsModule_Class | import("../modules/
|
|
1
|
+
export declare const Backend_ModulePack_Permissions: (import("../modules/PermissionsModule").PermissionsModule_Class | import("../modules/permissions-assert").PermissionsAssert_Class | import("../modules/db-types/managment").ApiDB_Class | import("../modules/db-types/assign").UsersDB_Class | import("../modules/db-types/managment").ProjectDB_Class | import("../modules/db-types/assign").GroupsDB_Class | import("../modules/db-types/managment").LevelDB_Class | import("../modules/db-types/managment").DomainDB_Class | import("../modules/TagsModule").TagsDB_Class)[];
|
|
2
2
|
export * from "../modules/db-types/managment";
|
|
3
3
|
export * from "../modules/db-types/assign";
|
|
4
4
|
export * from "../modules/permissions-assert";
|
|
5
5
|
export * from "../modules/PermissionsModule";
|
|
6
|
+
export * from "../modules/TagsModule";
|
|
@@ -32,6 +32,7 @@ var managment_1 = require("../modules/db-types/managment");
|
|
|
32
32
|
var assign_1 = require("../modules/db-types/assign");
|
|
33
33
|
var permissions_assert_1 = require("../modules/permissions-assert");
|
|
34
34
|
var PermissionsModule_1 = require("../modules/PermissionsModule");
|
|
35
|
+
var TagsModule_1 = require("../modules/TagsModule");
|
|
35
36
|
exports.Backend_ModulePack_Permissions = [
|
|
36
37
|
managment_1.ProjectPermissionsDB,
|
|
37
38
|
managment_1.DomainPermissionsDB,
|
|
@@ -41,9 +42,11 @@ exports.Backend_ModulePack_Permissions = [
|
|
|
41
42
|
assign_1.UserPermissionsDB,
|
|
42
43
|
permissions_assert_1.PermissionsAssert,
|
|
43
44
|
PermissionsModule_1.PermissionsModule,
|
|
45
|
+
TagsModule_1.TagsDB
|
|
44
46
|
];
|
|
45
47
|
__exportStar(require("../modules/db-types/managment"), exports);
|
|
46
48
|
__exportStar(require("../modules/db-types/assign"), exports);
|
|
47
49
|
__exportStar(require("../modules/permissions-assert"), exports);
|
|
48
50
|
__exportStar(require("../modules/PermissionsModule"), exports);
|
|
51
|
+
__exportStar(require("../modules/TagsModule"), exports);
|
|
49
52
|
//# sourceMappingURL=module-pack.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-pack.js","sourceRoot":"","sources":["../../../src/main/app-backend/core/module-pack.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;;;;;;;;;;;AAEH,2DAKuC;AACvC,qDAGoC;AACpC,oEAAgE;AAChE,kEAA+D;
|
|
1
|
+
{"version":3,"file":"module-pack.js","sourceRoot":"","sources":["../../../src/main/app-backend/core/module-pack.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;;;;;;;;;;;AAEH,2DAKuC;AACvC,qDAGoC;AACpC,oEAAgE;AAChE,kEAA+D;AAC/D,oDAA6C;AAEhC,QAAA,8BAA8B,GAAG;IAC7C,gCAAoB;IACpB,+BAAmB;IACnB,oCAAwB;IACxB,4BAAgB;IAChB,2BAAkB;IAClB,0BAAiB;IACjB,sCAAiB;IACjB,qCAAiB;IACjB,mBAAM;CACN,CAAC;AAEF,gEAA6C;AAC7C,6DAA0C;AAC1C,gEAA6C;AAC7C,+DAA4C;AAC5C,wDAAqC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Module, StringMap } from "@intuitionrobotics/ts-common";
|
|
2
|
-
import { DB_PermissionProject, PredefinedGroup, PredefinedUser, Request_RegisterProject, UserUrlsPermissions } from "./_imports";
|
|
2
|
+
import { DB_PermissionProject, PredefinedGroup, PredefinedUser, Request_RegisterProject, Response_UsersCFsByShareGroups, UserUrlsPermissions } from "./_imports";
|
|
3
3
|
declare type Config = {
|
|
4
4
|
project: DB_PermissionProject;
|
|
5
5
|
predefinedGroups?: PredefinedGroup[];
|
|
@@ -9,9 +9,9 @@ export declare class PermissionsModule_Class extends Module<Config> {
|
|
|
9
9
|
constructor();
|
|
10
10
|
protected init(): void;
|
|
11
11
|
getProjectIdentity: () => DB_PermissionProject;
|
|
12
|
-
getUserUrlsPermissions(projectId: string,
|
|
12
|
+
getUserUrlsPermissions(projectId: string, urlsMap: UserUrlsPermissions, userId: string, requestCustomField: StringMap): Promise<UserUrlsPermissions>;
|
|
13
|
+
getUsersCFsByShareGroups(usersEmails: string[], groupsIds: string[]): Promise<Response_UsersCFsByShareGroups>;
|
|
13
14
|
getUserCFsByShareGroups(userId: string, groupsIds: string[]): Promise<StringMap[]>;
|
|
14
|
-
private doesUserHavePermissions;
|
|
15
15
|
registerProject(): Promise<void>;
|
|
16
16
|
_registerProject(registerProject: Request_RegisterProject): Promise<void>;
|
|
17
17
|
}
|
|
@@ -83,6 +83,7 @@ var permissions_assert_1 = require("./permissions-assert");
|
|
|
83
83
|
var managment_1 = require("./db-types/managment");
|
|
84
84
|
var backend_1 = require("@intuitionrobotics/thunderstorm/backend");
|
|
85
85
|
var assign_1 = require("./db-types/assign");
|
|
86
|
+
var backend_2 = require("@intuitionrobotics/user-account/backend");
|
|
86
87
|
var PermissionsModule_Class = /** @class */ (function (_super) {
|
|
87
88
|
__extends(PermissionsModule_Class, _super);
|
|
88
89
|
function PermissionsModule_Class() {
|
|
@@ -94,75 +95,105 @@ var PermissionsModule_Class = /** @class */ (function (_super) {
|
|
|
94
95
|
if (!this.config)
|
|
95
96
|
throw new ts_common_1.ImplementationMissingException("MUST set config with project identity!!");
|
|
96
97
|
};
|
|
97
|
-
PermissionsModule_Class.prototype.getUserUrlsPermissions = function (projectId,
|
|
98
|
+
PermissionsModule_Class.prototype.getUserUrlsPermissions = function (projectId, urlsMap, userId, requestCustomField) {
|
|
98
99
|
return __awaiter(this, void 0, void 0, function () {
|
|
99
|
-
var
|
|
100
|
+
var urls, _a, userDetails, apiDetails;
|
|
101
|
+
return __generator(this, function (_b) {
|
|
102
|
+
switch (_b.label) {
|
|
103
|
+
case 0:
|
|
104
|
+
urls = Object.keys(urlsMap);
|
|
105
|
+
return [4 /*yield*/, Promise.all([
|
|
106
|
+
permissions_assert_1.PermissionsAssert.getUserDetails(userId),
|
|
107
|
+
permissions_assert_1.PermissionsAssert.getApisDetails(urls, projectId)
|
|
108
|
+
])];
|
|
109
|
+
case 1:
|
|
110
|
+
_a = _b.sent(), userDetails = _a[0], apiDetails = _a[1];
|
|
111
|
+
return [2 /*return*/, urls.reduce(function (userUrlsPermissions, url, i) {
|
|
112
|
+
var apiDetail = apiDetails[i];
|
|
113
|
+
if (apiDetail) {
|
|
114
|
+
try {
|
|
115
|
+
permissions_assert_1.PermissionsAssert._assertUserPermissionsImpl(apiDetail, projectId, userDetails, requestCustomField);
|
|
116
|
+
userUrlsPermissions[url] = true;
|
|
117
|
+
}
|
|
118
|
+
catch (e) {
|
|
119
|
+
userUrlsPermissions[url] = false;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
else
|
|
123
|
+
userUrlsPermissions[url] = false;
|
|
124
|
+
return userUrlsPermissions;
|
|
125
|
+
}, {})];
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
};
|
|
130
|
+
PermissionsModule_Class.prototype.getUsersCFsByShareGroups = function (usersEmails, groupsIds) {
|
|
131
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
132
|
+
var toRet;
|
|
100
133
|
var _this = this;
|
|
101
134
|
return __generator(this, function (_a) {
|
|
102
135
|
switch (_a.label) {
|
|
103
136
|
case 0:
|
|
104
|
-
|
|
105
|
-
return [4 /*yield*/, Promise.all(
|
|
137
|
+
toRet = {};
|
|
138
|
+
return [4 /*yield*/, Promise.all(usersEmails.map(function (email) { return __awaiter(_this, void 0, void 0, function () {
|
|
139
|
+
var account, _a, _b;
|
|
140
|
+
return __generator(this, function (_c) {
|
|
141
|
+
switch (_c.label) {
|
|
142
|
+
case 0: return [4 /*yield*/, backend_2.AccountModule.getUser(email)];
|
|
143
|
+
case 1:
|
|
144
|
+
account = _c.sent();
|
|
145
|
+
if (!account)
|
|
146
|
+
return [2 /*return*/];
|
|
147
|
+
_a = toRet;
|
|
148
|
+
_b = email;
|
|
149
|
+
return [4 /*yield*/, this.getUserCFsByShareGroups(account._id, groupsIds)];
|
|
150
|
+
case 2:
|
|
151
|
+
_a[_b] = _c.sent();
|
|
152
|
+
return [2 /*return*/];
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
}); }))];
|
|
106
156
|
case 1:
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
userUrlsPermissions[urlPermission.url] = urlPermission.isAllowed;
|
|
110
|
-
});
|
|
111
|
-
return [2 /*return*/, userUrlsPermissions];
|
|
157
|
+
_a.sent();
|
|
158
|
+
return [2 /*return*/, toRet];
|
|
112
159
|
}
|
|
113
160
|
});
|
|
114
161
|
});
|
|
115
162
|
};
|
|
116
163
|
PermissionsModule_Class.prototype.getUserCFsByShareGroups = function (userId, groupsIds) {
|
|
117
164
|
return __awaiter(this, void 0, void 0, function () {
|
|
118
|
-
var user,
|
|
165
|
+
var user, userCFs;
|
|
119
166
|
return __generator(this, function (_a) {
|
|
120
167
|
switch (_a.label) {
|
|
121
168
|
case 0: return [4 /*yield*/, assign_1.UserPermissionsDB.queryUnique({ accountId: userId })];
|
|
122
169
|
case 1:
|
|
123
170
|
user = _a.sent();
|
|
124
|
-
userGroups = user.groups || [];
|
|
125
171
|
userCFs = [];
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
172
|
+
if (!user.groups)
|
|
173
|
+
return [2 /*return*/, userCFs];
|
|
174
|
+
user.groups.forEach(function (userGroup) {
|
|
175
|
+
if (!groupsIds.find(function (groupId) { return groupId === userGroup.groupId; }))
|
|
176
|
+
return;
|
|
177
|
+
if (!userGroup.customField)
|
|
178
|
+
return;
|
|
179
|
+
userCFs.push(userGroup.customField);
|
|
129
180
|
});
|
|
130
181
|
return [2 /*return*/, userCFs];
|
|
131
182
|
}
|
|
132
183
|
});
|
|
133
184
|
});
|
|
134
185
|
};
|
|
135
|
-
PermissionsModule_Class.prototype.doesUserHavePermissions = function (projectId, url, userId, requestCustomField) {
|
|
136
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
137
|
-
var isAllowed, e_1;
|
|
138
|
-
return __generator(this, function (_a) {
|
|
139
|
-
switch (_a.label) {
|
|
140
|
-
case 0:
|
|
141
|
-
_a.trys.push([0, 2, , 3]);
|
|
142
|
-
return [4 /*yield*/, permissions_assert_1.PermissionsAssert.assertUserPermissions(projectId, url, userId, requestCustomField)];
|
|
143
|
-
case 1:
|
|
144
|
-
_a.sent();
|
|
145
|
-
isAllowed = true;
|
|
146
|
-
return [3 /*break*/, 3];
|
|
147
|
-
case 2:
|
|
148
|
-
e_1 = _a.sent();
|
|
149
|
-
isAllowed = false;
|
|
150
|
-
return [3 /*break*/, 3];
|
|
151
|
-
case 3: return [2 /*return*/, { url: url, isAllowed: isAllowed }];
|
|
152
|
-
}
|
|
153
|
-
});
|
|
154
|
-
});
|
|
155
|
-
};
|
|
156
186
|
PermissionsModule_Class.prototype.registerProject = function () {
|
|
157
187
|
return __awaiter(this, void 0, void 0, function () {
|
|
158
|
-
var
|
|
188
|
+
var routes, projectRoutes;
|
|
159
189
|
return __generator(this, function (_a) {
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
190
|
+
routes = backend_1.HttpServer.getRoutes().reduce(function (carry, httpRoute) {
|
|
191
|
+
if (httpRoute.path !== "*")
|
|
192
|
+
carry.push(httpRoute.path);
|
|
193
|
+
return carry;
|
|
194
|
+
}, []);
|
|
164
195
|
projectRoutes = {
|
|
165
|
-
project:
|
|
196
|
+
project: exports.PermissionsModule.getProjectIdentity(),
|
|
166
197
|
routes: routes,
|
|
167
198
|
predefinedGroups: this.config.predefinedGroups,
|
|
168
199
|
predefinedUser: this.config.predefinedUser
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PermissionsModule.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/PermissionsModule.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,0DAIsC;
|
|
1
|
+
{"version":3,"file":"PermissionsModule.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/PermissionsModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BaseDB_ApiGenerator } from "@intuitionrobotics/db-api-generator/backend";
|
|
2
|
+
import { Clause_Where, FirestoreQuery } from "@intuitionrobotics/firebase";
|
|
3
|
+
import { ExpressRequest, ServerApi } from "@intuitionrobotics/thunderstorm/backend";
|
|
4
|
+
import { TypeValidator } from "@intuitionrobotics/ts-common";
|
|
5
|
+
import { DB_GroupTags } from "../..";
|
|
6
|
+
export declare const CollectionNameTags = "permissions--tags";
|
|
7
|
+
export declare class TagsDB_Class extends BaseDB_ApiGenerator<DB_GroupTags> {
|
|
8
|
+
static _validator: TypeValidator<DB_GroupTags>;
|
|
9
|
+
constructor();
|
|
10
|
+
protected internalFilter(item: DB_GroupTags): Clause_Where<DB_GroupTags>[];
|
|
11
|
+
delete(query: FirestoreQuery<DB_GroupTags>, request?: ExpressRequest): Promise<void>;
|
|
12
|
+
apis(pathPart?: string): ServerApi<any>[];
|
|
13
|
+
}
|
|
14
|
+
export declare const TagsDB: TagsDB_Class;
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
extendStatics(d, b);
|
|
11
|
+
function __() { this.constructor = d; }
|
|
12
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
13
|
+
};
|
|
14
|
+
})();
|
|
15
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
16
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
17
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
18
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
19
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
20
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
21
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
25
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
26
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
27
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
28
|
+
function step(op) {
|
|
29
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
30
|
+
while (_) try {
|
|
31
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
32
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
33
|
+
switch (op[0]) {
|
|
34
|
+
case 0: case 1: t = op; break;
|
|
35
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
36
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
37
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
38
|
+
default:
|
|
39
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
40
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
41
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
42
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
43
|
+
if (t[2]) _.ops.pop();
|
|
44
|
+
_.trys.pop(); continue;
|
|
45
|
+
}
|
|
46
|
+
op = body.call(thisArg, _);
|
|
47
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
48
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
52
|
+
exports.TagsDB = exports.TagsDB_Class = exports.CollectionNameTags = void 0;
|
|
53
|
+
var backend_1 = require("@intuitionrobotics/db-api-generator/backend");
|
|
54
|
+
var ts_common_1 = require("@intuitionrobotics/ts-common");
|
|
55
|
+
var assign_1 = require("./db-types/assign");
|
|
56
|
+
var validateGroupLabel = ts_common_1.validateRegexp(/^[A-Za-z-\._ ]+$/);
|
|
57
|
+
exports.CollectionNameTags = 'permissions--tags';
|
|
58
|
+
var TagsDB_Class = /** @class */ (function (_super) {
|
|
59
|
+
__extends(TagsDB_Class, _super);
|
|
60
|
+
function TagsDB_Class() {
|
|
61
|
+
return _super.call(this, exports.CollectionNameTags, TagsDB_Class._validator, "permissionsTags") || this;
|
|
62
|
+
}
|
|
63
|
+
TagsDB_Class.prototype.internalFilter = function (item) {
|
|
64
|
+
var label = item.label;
|
|
65
|
+
return [{ label: label }];
|
|
66
|
+
};
|
|
67
|
+
TagsDB_Class.prototype.delete = function (query, request) {
|
|
68
|
+
var _a, _b;
|
|
69
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
70
|
+
var _c;
|
|
71
|
+
return __generator(this, function (_d) {
|
|
72
|
+
switch (_d.label) {
|
|
73
|
+
case 0:
|
|
74
|
+
_c = ((_a = query.where) === null || _a === void 0 ? void 0 : _a._id);
|
|
75
|
+
if (!_c) return [3 /*break*/, 2];
|
|
76
|
+
return [4 /*yield*/, assign_1.GroupPermissionsDB.deleteTags((_b = query.where) === null || _b === void 0 ? void 0 : _b._id.toString())];
|
|
77
|
+
case 1:
|
|
78
|
+
_c = (_d.sent());
|
|
79
|
+
_d.label = 2;
|
|
80
|
+
case 2:
|
|
81
|
+
_c;
|
|
82
|
+
return [2 /*return*/, _super.prototype.delete.call(this, query, request)];
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
};
|
|
87
|
+
TagsDB_Class.prototype.apis = function (pathPart) {
|
|
88
|
+
return [
|
|
89
|
+
new backend_1.ServerApi_Delete(this, pathPart),
|
|
90
|
+
new backend_1.ServerApi_Query(this, pathPart),
|
|
91
|
+
new backend_1.ServerApi_Unique(this, pathPart),
|
|
92
|
+
new backend_1.ServerApi_Create(this, pathPart)
|
|
93
|
+
];
|
|
94
|
+
};
|
|
95
|
+
TagsDB_Class._validator = {
|
|
96
|
+
_id: backend_1.validateStringAndNumbersWithDashes,
|
|
97
|
+
label: validateGroupLabel
|
|
98
|
+
};
|
|
99
|
+
return TagsDB_Class;
|
|
100
|
+
}(backend_1.BaseDB_ApiGenerator));
|
|
101
|
+
exports.TagsDB_Class = TagsDB_Class;
|
|
102
|
+
exports.TagsDB = new TagsDB_Class();
|
|
103
|
+
//# sourceMappingURL=TagsModule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TagsModule.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/TagsModule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uEAOqD;AASrD,0DAGsC;AAEtC,4CAAqD;AAErD,IAAM,kBAAkB,GAAG,0BAAc,CAAC,kBAAkB,CAAC,CAAC;AAEjD,QAAA,kBAAkB,GAAG,mBAAmB,CAAC;AAGtD;IACS,gCAAiC;IAOzC;eACC,kBAAM,0BAAkB,EAAE,YAAY,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACtE,CAAC;IAGS,qCAAc,GAAxB,UAAyB,IAAkB;QACnC,IAAA,KAAK,GAAI,IAAI,MAAR,CAAS;QACrB,OAAO,CAAC,EAAC,KAAK,OAAA,EAAC,CAAC,CAAC;IAClB,CAAC;IAEK,6BAAM,GAAZ,UAAa,KAAmC,EAAE,OAAwB;;;;;;;oCACzE,KAAK,CAAC,KAAK,0CAAE,GAAG;;wBAAI,qBAAM,2BAAkB,CAAC,UAAU,OAAC,KAAK,CAAC,KAAK,0CAAE,GAAG,CAAC,QAAQ,GAAG,EAAA;;8BAAhE,SAAgE;;;wBAApF,GAAoF;wBACpF,sBAAO,iBAAM,MAAM,YAAC,KAAK,EAAE,OAAO,CAAC,EAAA;;;;KACnC;IAED,2BAAI,GAAJ,UAAK,QAAiB;QACrB,OAAO;YACN,IAAI,0BAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC;YACpC,IAAI,yBAAe,CAAC,IAAI,EAAE,QAAQ,CAAC;YACnC,IAAI,0BAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC;YACpC,IAAI,0BAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC;SACpC,CAAC;IACH,CAAC;IA3BM,uBAAU,GAAgC;QAChD,GAAG,EAAE,4CAAkC;QACvC,KAAK,EAAE,kBAAkB;KACzB,CAAC;IAyBH,mBAAC;CAAA,AA/BD,CACS,6BAAmB,GA8B3B;AA/BY,oCAAY;AAiCZ,QAAA,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC"}
|
|
@@ -13,6 +13,8 @@ export declare class GroupsDB_Class extends BaseDB_ApiGenerator<DB_PermissionsGr
|
|
|
13
13
|
protected internalFilter(item: DB_PermissionsGroup): Clause_Where<DB_PermissionsGroup>[];
|
|
14
14
|
protected assertDeletion(transaction: FirestoreTransaction, dbInstance: DB_PermissionsGroup): Promise<void>;
|
|
15
15
|
private setAccessLevels;
|
|
16
|
+
getGroupsByTags(tags: string[]): Promise<DB_PermissionsGroup[]>;
|
|
17
|
+
deleteTags(tag: string): Promise<void>;
|
|
16
18
|
protected preUpsertProcessing(transaction: FirestoreTransaction, dbInstance: DB_PermissionsGroup, request?: ExpressRequest): Promise<void>;
|
|
17
19
|
getConfig(): import("@intuitionrobotics/db-api-generator/backend").Config<DB_PermissionsGroup>;
|
|
18
20
|
getPredefinedGroupId(projectId: string, predefinedGroupId: string): string;
|
|
@@ -138,6 +138,51 @@ var GroupsDB_Class = /** @class */ (function (_super) {
|
|
|
138
138
|
});
|
|
139
139
|
});
|
|
140
140
|
};
|
|
141
|
+
GroupsDB_Class.prototype.getGroupsByTags = function (tags) {
|
|
142
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
143
|
+
var groupsByTags;
|
|
144
|
+
return __generator(this, function (_a) {
|
|
145
|
+
switch (_a.label) {
|
|
146
|
+
case 0: return [4 /*yield*/, this.collection.query({ where: { tags: { $aca: tags } } })];
|
|
147
|
+
case 1:
|
|
148
|
+
groupsByTags = _a.sent();
|
|
149
|
+
if (!groupsByTags)
|
|
150
|
+
return [2 /*return*/, []];
|
|
151
|
+
return [2 /*return*/, groupsByTags];
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
});
|
|
155
|
+
};
|
|
156
|
+
GroupsDB_Class.prototype.deleteTags = function (tag) {
|
|
157
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
158
|
+
var groupsWithTags, _i, groupsWithTags_1, _group;
|
|
159
|
+
return __generator(this, function (_a) {
|
|
160
|
+
switch (_a.label) {
|
|
161
|
+
case 0: return [4 /*yield*/, this.collection.query({ where: { tags: { $aca: [tag] } } })];
|
|
162
|
+
case 1:
|
|
163
|
+
groupsWithTags = _a.sent();
|
|
164
|
+
if (!groupsWithTags)
|
|
165
|
+
return [2 /*return*/];
|
|
166
|
+
_i = 0, groupsWithTags_1 = groupsWithTags;
|
|
167
|
+
_a.label = 2;
|
|
168
|
+
case 2:
|
|
169
|
+
if (!(_i < groupsWithTags_1.length)) return [3 /*break*/, 5];
|
|
170
|
+
_group = groupsWithTags_1[_i];
|
|
171
|
+
if (!_group.tags)
|
|
172
|
+
return [3 /*break*/, 4];
|
|
173
|
+
ts_common_1.removeItemFromArray(_group.tags, tag);
|
|
174
|
+
return [4 /*yield*/, this.collection.upsert(_group)];
|
|
175
|
+
case 3:
|
|
176
|
+
_a.sent();
|
|
177
|
+
_a.label = 4;
|
|
178
|
+
case 4:
|
|
179
|
+
_i++;
|
|
180
|
+
return [3 /*break*/, 2];
|
|
181
|
+
case 5: return [2 /*return*/];
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
});
|
|
185
|
+
};
|
|
141
186
|
GroupsDB_Class.prototype.preUpsertProcessing = function (transaction, dbInstance, request) {
|
|
142
187
|
var _a;
|
|
143
188
|
return __awaiter(this, void 0, void 0, function () {
|
|
@@ -195,6 +240,7 @@ var GroupsDB_Class = /** @class */ (function (_super) {
|
|
|
195
240
|
GroupsDB_Class._validator = {
|
|
196
241
|
_id: backend_1.validateStringAndNumbersWithDashes,
|
|
197
242
|
label: validateGroupLabel,
|
|
243
|
+
tags: undefined,
|
|
198
244
|
accessLevelIds: ts_common_1.validateArray(backend_1.validateUniqueId, false),
|
|
199
245
|
customFields: ts_common_1.validateArray(ts_common_1.validateObjectValues(validateCustomFieldValues), false),
|
|
200
246
|
__accessLevels: undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assign.js","sourceRoot":"","sources":["../../../../src/main/app-backend/modules/db-types/assign.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,wCAQqB;AACrB,uEAIqD;AACrD,mEAIiD;AAEjD,mEAGiD;AAEjD,
|
|
1
|
+
{"version":3,"file":"assign.js","sourceRoot":"","sources":["../../../../src/main/app-backend/modules/db-types/assign.ts"],"names":[],"mappings":"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"}
|