@intuitionrobotics/permissions 0.46.0 → 0.47.1
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/_imports.d.ts +2 -0
- package/app-backend/api/v1/permissions/_imports.js +36 -0
- package/app-backend/api/v1/permissions/_imports.js.map +1 -0
- package/app-backend/api/v1/permissions/_permissions.js +19 -2
- package/app-backend/api/v1/permissions/_permissions.js.map +1 -1
- package/app-backend/api/v1/permissions/assert.js +23 -6
- package/app-backend/api/v1/permissions/assert.js.map +1 -1
- package/app-backend/api/v1/permissions/assign/apis.js +22 -2
- package/app-backend/api/v1/permissions/assign/apis.js.map +1 -1
- package/app-backend/api/v1/permissions/assign/app-permissions.js +23 -6
- package/app-backend/api/v1/permissions/assign/app-permissions.js.map +1 -1
- package/app-backend/api/v1/permissions/manage/apis.js +25 -7
- package/app-backend/api/v1/permissions/manage/apis.js.map +1 -1
- package/app-backend/api/v1/permissions/tags/apis.js +20 -2
- package/app-backend/api/v1/permissions/tags/apis.js.map +1 -1
- package/app-backend/api/v1/permissions/user-urls-permissions.js +23 -6
- package/app-backend/api/v1/permissions/user-urls-permissions.js.map +1 -1
- package/app-backend/api/v1/register/_register-project.js +19 -2
- package/app-backend/api/v1/register/_register-project.js.map +1 -1
- package/app-backend/api/v1/register/register-external-project.d.ts +2 -3
- package/app-backend/api/v1/register/register-external-project.js +22 -6
- package/app-backend/api/v1/register/register-external-project.js.map +1 -1
- package/app-backend/api/v1/register/register-project.d.ts +2 -3
- package/app-backend/api/v1/register/register-project.js +23 -6
- package/app-backend/api/v1/register/register-project.js.map +1 -1
- package/app-backend/api/v1/test/_imports.d.ts +1 -0
- package/app-backend/api/v1/test/_imports.js +23 -0
- package/app-backend/api/v1/test/_imports.js.map +1 -0
- package/app-backend/api/v1/test/_test-permissions.js +19 -2
- package/app-backend/api/v1/test/_test-permissions.js.map +1 -1
- package/app-backend/api/v1/test/test-permissions.js +23 -6
- package/app-backend/api/v1/test/test-permissions.js.map +1 -1
- package/app-backend/api/v1/user-custom-fields/_user-custom-fields.js +19 -2
- package/app-backend/api/v1/user-custom-fields/_user-custom-fields.js.map +1 -1
- package/app-backend/api/v1/user-custom-fields/user-cf-by-share-groups.d.ts +3 -4
- package/app-backend/api/v1/user-custom-fields/user-cf-by-share-groups.js +24 -6
- package/app-backend/api/v1/user-custom-fields/user-cf-by-share-groups.js.map +1 -1
- package/app-backend/api/v1/user-custom-fields/users-cf-by-share-groups.d.ts +3 -4
- package/app-backend/api/v1/user-custom-fields/users-cf-by-share-groups.js +25 -8
- package/app-backend/api/v1/user-custom-fields/users-cf-by-share-groups.js.map +1 -1
- package/app-backend/benchmark/permission-user-assert-benchmark.js +26 -15
- package/app-backend/benchmark/permission-user-assert-benchmark.js.map +1 -1
- package/app-backend/core/module-pack.d.ts +6 -1
- package/app-backend/core/module-pack.js +36 -0
- package/app-backend/core/module-pack.js.map +1 -1
- package/app-backend/modules/PermissionsModule.d.ts +5 -6
- package/app-backend/modules/PermissionsModule.js +56 -23
- package/app-backend/modules/PermissionsModule.js.map +1 -1
- package/app-backend/modules/TagsModule.d.ts +5 -6
- package/app-backend/modules/TagsModule.js +9 -10
- package/app-backend/modules/TagsModule.js.map +1 -1
- package/app-backend/modules/{consts.d.ts → _imports.d.ts} +3 -0
- package/app-backend/modules/_imports.js +44 -0
- package/app-backend/modules/_imports.js.map +1 -0
- package/app-backend/modules/db-types/assign.d.ts +9 -10
- package/app-backend/modules/db-types/assign.js +67 -61
- package/app-backend/modules/db-types/assign.js.map +1 -1
- package/app-backend/modules/db-types/managment.d.ts +8 -10
- package/app-backend/modules/db-types/managment.js +54 -40
- package/app-backend/modules/db-types/managment.js.map +1 -1
- package/app-backend/modules/permissions-assert.d.ts +7 -9
- package/app-backend/modules/permissions-assert.js +43 -40
- package/app-backend/modules/permissions-assert.js.map +1 -1
- package/app-backend/modules/permissions-share.d.ts +2 -2
- package/app-backend/modules/permissions-share.js +2 -2
- package/app-backend/modules/permissions-share.js.map +1 -1
- package/app-frontend/core/module-pack.d.ts +7 -0
- package/app-frontend/core/module-pack.js +38 -0
- package/app-frontend/core/module-pack.js.map +1 -1
- package/app-frontend/modules/PermissionsComponent.d.ts +2 -2
- package/app-frontend/modules/PermissionsComponent.js +2 -2
- package/app-frontend/modules/PermissionsComponent.js.map +1 -1
- package/app-frontend/modules/PermissionsModuleFE.d.ts +2 -2
- package/app-frontend/modules/PermissionsModuleFE.js +10 -12
- package/app-frontend/modules/PermissionsModuleFE.js.map +1 -1
- package/app-frontend/modules/assign/ApiCaller_PermissionsGroup.d.ts +2 -2
- package/app-frontend/modules/assign/ApiCaller_PermissionsGroup.js +5 -5
- package/app-frontend/modules/assign/ApiCaller_PermissionsGroup.js.map +1 -1
- package/app-frontend/modules/assign/ApiCaller_PermissionsUser.d.ts +2 -2
- package/app-frontend/modules/assign/ApiCaller_PermissionsUser.js +22 -5
- package/app-frontend/modules/assign/ApiCaller_PermissionsUser.js.map +1 -1
- package/app-frontend/modules/manage/ApiCaller_PermissionsApi.d.ts +2 -2
- package/app-frontend/modules/manage/ApiCaller_PermissionsApi.js +22 -5
- package/app-frontend/modules/manage/ApiCaller_PermissionsApi.js.map +1 -1
- package/app-frontend/modules/manage/ApiCaller_PermissionsDomain.d.ts +2 -2
- package/app-frontend/modules/manage/ApiCaller_PermissionsDomain.js +22 -5
- package/app-frontend/modules/manage/ApiCaller_PermissionsDomain.js.map +1 -1
- package/app-frontend/modules/manage/ApiCaller_PermissionsLevel.d.ts +2 -2
- package/app-frontend/modules/manage/ApiCaller_PermissionsLevel.js +22 -5
- package/app-frontend/modules/manage/ApiCaller_PermissionsLevel.js.map +1 -1
- package/app-frontend/modules/manage/ApiCaller_PermissionsProject.d.ts +2 -2
- package/app-frontend/modules/manage/ApiCaller_PermissionsProject.js +22 -5
- package/app-frontend/modules/manage/ApiCaller_PermissionsProject.js.map +1 -1
- package/app-frontend/modules/tags/ApiCaller_PermissionsTags.d.ts +2 -2
- package/app-frontend/modules/tags/ApiCaller_PermissionsTags.js +5 -5
- package/app-frontend/modules/tags/ApiCaller_PermissionsTags.js.map +1 -1
- package/backend.d.ts +1 -0
- package/backend.js +35 -0
- package/backend.js.map +1 -0
- package/frontend.d.ts +3 -0
- package/frontend.js +37 -0
- package/frontend.js.map +1 -0
- package/index.d.ts +3 -0
- package/index.js +35 -0
- package/index.js.map +1 -1
- package/package.json +10 -10
- package/shared/apis.d.ts +25 -25
- package/shared/apis.js +17 -0
- package/shared/apis.js.map +1 -1
- package/shared/assign-types.d.ts +9 -8
- package/shared/assign-types.js +17 -0
- package/shared/assign-types.js.map +1 -1
- package/shared/manager-types.d.ts +10 -10
- package/shared/manager-types.js +17 -0
- package/shared/manager-types.js.map +1 -1
- package/app-backend/modules/consts.js +0 -10
- package/app-backend/modules/consts.js.map +0 -1
|
@@ -1,4 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* ts-common is the basic building blocks of our typescript projects
|
|
4
|
+
*
|
|
5
|
+
* Copyright (C) 2020 Intuition Robotics
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*/
|
|
2
19
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
20
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
21
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -9,17 +26,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
26
|
});
|
|
10
27
|
};
|
|
11
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
class ServerApi_TestPermissions extends
|
|
29
|
+
const backend_1 = require("@intuitionrobotics/thunderstorm/backend");
|
|
30
|
+
const thunderstorm_1 = require("@intuitionrobotics/thunderstorm");
|
|
31
|
+
const _imports_1 = require("./_imports");
|
|
32
|
+
class ServerApi_TestPermissions extends backend_1.ServerApi {
|
|
16
33
|
constructor() {
|
|
17
|
-
super(
|
|
34
|
+
super(thunderstorm_1.HttpMethod.GET, "test-permissions");
|
|
18
35
|
}
|
|
19
36
|
process(request, response, queryParams, body) {
|
|
20
37
|
return __awaiter(this, void 0, void 0, function* () {
|
|
21
38
|
console.log('Starting test permissions assert');
|
|
22
|
-
yield
|
|
39
|
+
yield (0, _imports_1.testUserPermissionsTime)();
|
|
23
40
|
console.log('---Finish test permissions assert---');
|
|
24
41
|
});
|
|
25
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-permissions.js","sourceRoot":"","sources":["../../../../../src/main/app-backend/api/v1/test/test-permissions.ts"],"names":[],"mappings":";;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"test-permissions.js","sourceRoot":"","sources":["../../../../../src/main/app-backend/api/v1/test/test-permissions.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;;;;;;;;;AAEH,qEAGiD;AAGjD,kEAA2D;AAG3D,yCAAmD;AAGnD,MAAM,yBACL,SAAQ,mBAAyC;IAEjD;QACC,KAAK,CAAC,yBAAU,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;IAC3C,CAAC;IAEe,OAAO,CAAC,OAAuB,EAAE,QAAqB,EAAE,WAAe,EAAE,IAAU;;YAClG,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;YAChD,MAAM,IAAA,kCAAuB,GAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACrD,CAAC;KAAA;CACD;AAED,MAAM,CAAC,OAAO,GAAG,IAAI,yBAAyB,EAAE,CAAC"}
|
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* ts-common is the basic building blocks of our typescript projects
|
|
4
|
+
*
|
|
5
|
+
* Copyright (C) 2020 Intuition Robotics
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*/
|
|
2
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const
|
|
4
|
-
module.exports = new
|
|
20
|
+
const backend_1 = require("@intuitionrobotics/thunderstorm/backend");
|
|
21
|
+
module.exports = new backend_1.RouteResolver(require, __dirname);
|
|
5
22
|
//# sourceMappingURL=_user-custom-fields.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_user-custom-fields.js","sourceRoot":"","sources":["../../../../../src/main/app-backend/api/v1/user-custom-fields/_user-custom-fields.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"_user-custom-fields.js","sourceRoot":"","sources":["../../../../../src/main/app-backend/api/v1/user-custom-fields/_user-custom-fields.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;AAEH,qEAAsE;AAEtE,MAAM,CAAC,OAAO,GAAG,IAAI,uBAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { ApiResponse, ServerApi } from "@intuitionrobotics/thunderstorm/
|
|
2
|
-
import {
|
|
3
|
-
import { PermissionsApi_UserCFsByShareGroups, Request_UserCFsByShareGroups } from "../../../../shared/apis";
|
|
1
|
+
import { ApiResponse, ExpressRequest, ServerApi } from "@intuitionrobotics/thunderstorm/backend";
|
|
2
|
+
import { PermissionsApi_UserCFsByShareGroups, Request_UserCFsByShareGroups } from "../permissions/_imports";
|
|
4
3
|
export declare class ServerApi_UserCFsByShareGroups extends ServerApi<PermissionsApi_UserCFsByShareGroups> {
|
|
5
4
|
constructor();
|
|
6
|
-
protected process(request: ExpressRequest, response: ApiResponse, queryParams: {}, body: Request_UserCFsByShareGroups): Promise<import("@intuitionrobotics/ts-common
|
|
5
|
+
protected process(request: ExpressRequest, response: ApiResponse, queryParams: {}, body: Request_UserCFsByShareGroups): Promise<import("@intuitionrobotics/ts-common").StringMap[]>;
|
|
7
6
|
}
|
|
@@ -1,4 +1,22 @@
|
|
|
1
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
|
+
*/
|
|
2
20
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
21
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
22
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -10,18 +28,18 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
28
|
};
|
|
11
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
30
|
exports.ServerApi_UserCFsByShareGroups = void 0;
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
31
|
+
const backend_1 = require("@intuitionrobotics/thunderstorm/backend");
|
|
32
|
+
const thunderstorm_1 = require("@intuitionrobotics/thunderstorm");
|
|
33
|
+
const backend_2 = require("@intuitionrobotics/user-account/backend");
|
|
16
34
|
const PermissionsModule_1 = require("../../../modules/PermissionsModule");
|
|
17
|
-
class ServerApi_UserCFsByShareGroups extends
|
|
35
|
+
class ServerApi_UserCFsByShareGroups extends backend_1.ServerApi {
|
|
18
36
|
constructor() {
|
|
19
|
-
super(
|
|
37
|
+
super(thunderstorm_1.HttpMethod.POST, "user-cf-by-share-groups");
|
|
20
38
|
this.dontPrintResponse();
|
|
21
39
|
}
|
|
22
40
|
process(request, response, queryParams, body) {
|
|
23
41
|
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
-
const account = yield
|
|
42
|
+
const account = yield backend_2.AccountModule.validateSession(request, this.getScopes(), response);
|
|
25
43
|
return PermissionsModule_1.PermissionsModule.getUserCFsByShareGroups(account._id, body.groupsIds);
|
|
26
44
|
});
|
|
27
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-cf-by-share-groups.js","sourceRoot":"","sources":["../../../../../src/main/app-backend/api/v1/user-custom-fields/user-cf-by-share-groups.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"user-cf-by-share-groups.js","sourceRoot":"","sources":["../../../../../src/main/app-backend/api/v1/user-custom-fields/user-cf-by-share-groups.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;;;;;;;;;;AAEH,qEAIiD;AAKjD,kEAA2D;AAC3D,qEAAsE;AACtE,0EAAqE;AAErE,MAAa,8BACZ,SAAQ,mBAA8C;IAEtD;QACC,KAAK,CAAC,yBAAU,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAAC;QAClD,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC1B,CAAC;IAEe,OAAO,CAAC,OAAuB,EAAE,QAAqB,EAAE,WAAe,EAAE,IAAkC;;YAC1H,MAAM,OAAO,GAAG,MAAM,uBAAa,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,QAAQ,CAAC,CAAC;YACzF,OAAO,qCAAiB,CAAC,uBAAuB,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/E,CAAC;KAAA;CACD;AAZD,wEAYC;AAED,MAAM,CAAC,OAAO,GAAG,IAAI,8BAA8B,EAAE,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { ApiResponse, ServerApi } from "@intuitionrobotics/thunderstorm/
|
|
2
|
-
import {
|
|
3
|
-
import { PermissionsApi_UsersCFsByShareGroups, Request_UsersCFsByShareGroups } from "../../../../shared/apis";
|
|
1
|
+
import { ApiResponse, ExpressRequest, ServerApi } from "@intuitionrobotics/thunderstorm/backend";
|
|
2
|
+
import { PermissionsApi_UsersCFsByShareGroups, Request_UsersCFsByShareGroups } from "../permissions/_imports";
|
|
4
3
|
export declare class ServerApi_UsersCFsByShareGroups extends ServerApi<PermissionsApi_UsersCFsByShareGroups> {
|
|
5
4
|
constructor();
|
|
6
|
-
protected process(request: ExpressRequest, response: ApiResponse, queryParams: {}, body: Request_UsersCFsByShareGroups): Promise<import("
|
|
5
|
+
protected process(request: ExpressRequest, response: ApiResponse, queryParams: {}, body: Request_UsersCFsByShareGroups): Promise<import("../permissions/_imports").Response_UsersCFsByShareGroups>;
|
|
7
6
|
}
|
|
@@ -1,4 +1,22 @@
|
|
|
1
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
|
+
*/
|
|
2
20
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
21
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
22
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -10,19 +28,18 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
28
|
};
|
|
11
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
30
|
exports.ServerApi_UsersCFsByShareGroups = void 0;
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
class ServerApi_UsersCFsByShareGroups extends server_api_1.ServerApi {
|
|
31
|
+
const backend_1 = require("@intuitionrobotics/thunderstorm/backend");
|
|
32
|
+
const _imports_1 = require("../permissions/_imports");
|
|
33
|
+
const thunderstorm_1 = require("@intuitionrobotics/thunderstorm");
|
|
34
|
+
class ServerApi_UsersCFsByShareGroups extends backend_1.ServerApi {
|
|
18
35
|
constructor() {
|
|
19
|
-
super(
|
|
36
|
+
super(thunderstorm_1.HttpMethod.POST, "users-cf-by-share-groups");
|
|
20
37
|
this.dontPrintResponse();
|
|
21
|
-
this.setMiddlewares(
|
|
38
|
+
this.setMiddlewares(backend_1.RemoteProxy.Middleware);
|
|
22
39
|
}
|
|
23
40
|
process(request, response, queryParams, body) {
|
|
24
41
|
return __awaiter(this, void 0, void 0, function* () {
|
|
25
|
-
return
|
|
42
|
+
return _imports_1.PermissionsModule.getUsersCFsByShareGroups(body.usersEmails, body.groupsIds);
|
|
26
43
|
});
|
|
27
44
|
}
|
|
28
45
|
}
|
|
@@ -1 +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":";;;;;;;;;;;;
|
|
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,qEAKiD;AACjD,sDAIiC;AACjC,kEAA2D;AAE3D,MAAa,+BACZ,SAAQ,mBAA+C;IAEvD;QACC,KAAK,CAAC,yBAAU,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC;QACnD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,qBAAW,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC;IAEe,OAAO,CAAC,OAAuB,EAAE,QAAqB,EAAE,WAAe,EAAE,IAAmC;;YAC3H,OAAO,4BAAiB,CAAC,wBAAwB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACrF,CAAC;KAAA;CACD;AAZD,0EAYC;AAED,MAAM,CAAC,OAAO,GAAG,IAAI,+BAA+B,EAAE,CAAC"}
|
|
@@ -1,4 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* ts-common is the basic building blocks of our typescript projects
|
|
4
|
+
*
|
|
5
|
+
* Copyright (C) 2020 Intuition Robotics
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*/
|
|
2
19
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
20
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
21
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -10,8 +27,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
27
|
};
|
|
11
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
29
|
exports.testUserPermissionsTime = void 0;
|
|
13
|
-
const
|
|
14
|
-
const date_time_tools_1 = require("@intuitionrobotics/ts-common/utils/date-time-tools");
|
|
30
|
+
const ts_common_1 = require("@intuitionrobotics/ts-common");
|
|
15
31
|
const managment_1 = require("../modules/db-types/managment");
|
|
16
32
|
const assign_1 = require("../modules/db-types/assign");
|
|
17
33
|
const permissions_assert_1 = require("../modules/permissions-assert");
|
|
@@ -28,27 +44,22 @@ function testUserPermissionsTime() {
|
|
|
28
44
|
return __awaiter(this, void 0, void 0, function* () {
|
|
29
45
|
console.log("---Inside of permissions test---");
|
|
30
46
|
const projectId = 'project-test-ten';
|
|
31
|
-
const apiId =
|
|
32
|
-
const userId =
|
|
47
|
+
const apiId = (0, ts_common_1.generateHex)(32);
|
|
48
|
+
const userId = (0, ts_common_1.generateHex)(32);
|
|
33
49
|
const apiPath = '/v1/test/test-it10';
|
|
34
50
|
const userUuid = 'test10@intuitionrobotics.com';
|
|
35
|
-
const permissionId =
|
|
36
|
-
const domainId =
|
|
51
|
+
const permissionId = (0, ts_common_1.generateHex)(32);
|
|
52
|
+
const domainId = (0, ts_common_1.generateHex)(32);
|
|
37
53
|
const permissionValue = 50;
|
|
38
54
|
const customField = { UnitId: 'eq1' };
|
|
39
55
|
yield managment_1.ProjectPermissionsDB.upsert({ _id: projectId, name: 'project test' });
|
|
40
56
|
yield managment_1.DomainPermissionsDB.upsert({ _id: domainId, projectId: projectId, namespace: 'domain-test' });
|
|
41
|
-
const accessLevel = yield managment_1.AccessLevelPermissionsDB.upsert({
|
|
42
|
-
_id: permissionId,
|
|
43
|
-
name: 'test-permission',
|
|
44
|
-
domainId,
|
|
45
|
-
value: permissionValue
|
|
46
|
-
});
|
|
57
|
+
const accessLevel = yield managment_1.AccessLevelPermissionsDB.upsert({ _id: permissionId, name: 'test-permission', domainId, value: permissionValue });
|
|
47
58
|
yield managment_1.ApiPermissionsDB.upsert({ projectId: projectId, _id: apiId, path: apiPath, accessLevelIds: [permissionId] });
|
|
48
59
|
const groupIdArray = [];
|
|
49
60
|
const dbInstances = [];
|
|
50
61
|
for (let counter = 0; counter < 100; counter++) {
|
|
51
|
-
const groupId =
|
|
62
|
+
const groupId = (0, ts_common_1.generateHex)(32);
|
|
52
63
|
const baseAccessLevel = { domainId: accessLevel.domainId, value: accessLevel.value };
|
|
53
64
|
dbInstances.push({
|
|
54
65
|
_id: groupId,
|
|
@@ -88,9 +99,9 @@ function testUserPermissionsTime() {
|
|
|
88
99
|
exports.testUserPermissionsTime = testUserPermissionsTime;
|
|
89
100
|
function runAssertion(projectId, apiPath, userUuid, customField) {
|
|
90
101
|
return __awaiter(this, void 0, void 0, function* () {
|
|
91
|
-
const start =
|
|
102
|
+
const start = (0, ts_common_1.currentTimeMillies)();
|
|
92
103
|
yield permissions_assert_1.PermissionsAssert.assertUserPermissions(projectId, apiPath, userUuid, customField);
|
|
93
|
-
const runTime =
|
|
104
|
+
const runTime = (0, ts_common_1.currentTimeMillies)() - start;
|
|
94
105
|
console.log(`Call to assertion took ${runTime}ms`);
|
|
95
106
|
return runTime;
|
|
96
107
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission-user-assert-benchmark.js","sourceRoot":"","sources":["../../../src/main/app-backend/benchmark/permission-user-assert-benchmark.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"permission-user-assert-benchmark.js","sourceRoot":"","sources":["../../../src/main/app-backend/benchmark/permission-user-assert-benchmark.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1,6 @@
|
|
|
1
|
-
export declare const Backend_ModulePack_Permissions: (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
|
+
export * from "../modules/db-types/managment";
|
|
3
|
+
export * from "../modules/db-types/assign";
|
|
4
|
+
export * from "../modules/permissions-assert";
|
|
5
|
+
export * from "../modules/PermissionsModule";
|
|
6
|
+
export * from "../modules/TagsModule";
|
|
@@ -1,4 +1,35 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* ts-common is the basic building blocks of our typescript projects
|
|
4
|
+
*
|
|
5
|
+
* Copyright (C) 2020 Intuition Robotics
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*/
|
|
19
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
20
|
+
if (k2 === undefined) k2 = k;
|
|
21
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
22
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
23
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
24
|
+
}
|
|
25
|
+
Object.defineProperty(o, k2, desc);
|
|
26
|
+
}) : (function(o, m, k, k2) {
|
|
27
|
+
if (k2 === undefined) k2 = k;
|
|
28
|
+
o[k2] = m[k];
|
|
29
|
+
}));
|
|
30
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
31
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
32
|
+
};
|
|
2
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
34
|
exports.Backend_ModulePack_Permissions = void 0;
|
|
4
35
|
const managment_1 = require("../modules/db-types/managment");
|
|
@@ -17,4 +48,9 @@ exports.Backend_ModulePack_Permissions = [
|
|
|
17
48
|
PermissionsModule_1.PermissionsModule,
|
|
18
49
|
TagsModule_1.TagsDB
|
|
19
50
|
];
|
|
51
|
+
__exportStar(require("../modules/db-types/managment"), exports);
|
|
52
|
+
__exportStar(require("../modules/db-types/assign"), exports);
|
|
53
|
+
__exportStar(require("../modules/permissions-assert"), exports);
|
|
54
|
+
__exportStar(require("../modules/PermissionsModule"), exports);
|
|
55
|
+
__exportStar(require("../modules/TagsModule"), exports);
|
|
20
56
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"module-pack.js","sourceRoot":"","sources":["../../../src/main/app-backend/core/module-pack.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;;;;;;;;;;;;;;;AAEH,6DAKuC;AACvC,uDAGoC;AACpC,sEAAgE;AAChE,oEAA+D;AAC/D,sDAA6C;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,9 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { PredefinedGroup, PredefinedUser, Request_RegisterProject, Response_UsersCFsByShareGroups, UserUrlsPermissions } from "
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
import { HttpServer_Class } from "@intuitionrobotics/thunderstorm/app-backend/modules/server/HttpServer";
|
|
6
|
-
declare type Config = {
|
|
1
|
+
import { Module, StringMap } from "@intuitionrobotics/ts-common";
|
|
2
|
+
import { DB_PermissionProject, PredefinedGroup, PredefinedUser, Request_RegisterProject, Response_UsersCFsByShareGroups, UserUrlsPermissions } from "./_imports";
|
|
3
|
+
import { HttpServer_Class } from "@intuitionrobotics/thunderstorm/backend";
|
|
4
|
+
type Config = {
|
|
7
5
|
project: DB_PermissionProject;
|
|
8
6
|
predefinedGroups?: PredefinedGroup[];
|
|
9
7
|
predefinedUser?: PredefinedUser;
|
|
@@ -15,6 +13,7 @@ export declare class PermissionsModule_Class extends Module<Config> {
|
|
|
15
13
|
getUserUrlsPermissions(projectId: string, urlsMap: UserUrlsPermissions, userId: string, requestCustomField: StringMap): Promise<UserUrlsPermissions>;
|
|
16
14
|
getUsersCFsByShareGroups(usersEmails: string[], groupsIds: string[]): Promise<Response_UsersCFsByShareGroups>;
|
|
17
15
|
getUserCFsByShareGroups(userId: string, groupsIds: string[]): Promise<StringMap[]>;
|
|
16
|
+
private getCustomFields;
|
|
18
17
|
registerProject(server: HttpServer_Class): Promise<void>;
|
|
19
18
|
_registerProject(registerProject: Request_RegisterProject): Promise<void>;
|
|
20
19
|
}
|
|
@@ -1,4 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* ts-common is the basic building blocks of our typescript projects
|
|
4
|
+
*
|
|
5
|
+
* Copyright (C) 2020 Intuition Robotics
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*/
|
|
2
19
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
20
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
21
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -10,20 +27,19 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
27
|
};
|
|
11
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
29
|
exports.PermissionsModule = exports.PermissionsModule_Class = void 0;
|
|
30
|
+
const ts_common_1 = require("@intuitionrobotics/ts-common");
|
|
13
31
|
const permissions_assert_1 = require("./permissions-assert");
|
|
14
32
|
const managment_1 = require("./db-types/managment");
|
|
15
33
|
const assign_1 = require("./db-types/assign");
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
const AccountModule_1 = require("@intuitionrobotics/user-account/app-backend/modules/AccountModule");
|
|
19
|
-
class PermissionsModule_Class extends module_1.Module {
|
|
34
|
+
const backend_1 = require("@intuitionrobotics/user-account/backend");
|
|
35
|
+
class PermissionsModule_Class extends ts_common_1.Module {
|
|
20
36
|
constructor() {
|
|
21
37
|
super("PermissionsModule");
|
|
22
38
|
this.getProjectIdentity = () => this.config.project;
|
|
23
39
|
}
|
|
24
40
|
init() {
|
|
25
41
|
if (!this.config)
|
|
26
|
-
throw new
|
|
42
|
+
throw new ts_common_1.ImplementationMissingException("MUST set config with project identity!!");
|
|
27
43
|
}
|
|
28
44
|
getUserUrlsPermissions(projectId, urlsMap, userId, requestCustomField) {
|
|
29
45
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -51,32 +67,49 @@ class PermissionsModule_Class extends module_1.Module {
|
|
|
51
67
|
}
|
|
52
68
|
getUsersCFsByShareGroups(usersEmails, groupsIds) {
|
|
53
69
|
return __awaiter(this, void 0, void 0, function* () {
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
70
|
+
const accounts = yield backend_1.AccountModule.getUsers(usersEmails);
|
|
71
|
+
const usersMap = (0, ts_common_1.arrayToMap)(accounts, u => u.email);
|
|
72
|
+
const permissionUsers = yield (0, ts_common_1.batchActionParallel)(accounts.map(u => u._id), 10, (batchedAccountIds) => __awaiter(this, void 0, void 0, function* () {
|
|
73
|
+
return assign_1.UserPermissionsDB.query({
|
|
74
|
+
where: {
|
|
75
|
+
accountId: {
|
|
76
|
+
$in: batchedAccountIds
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
select: ['groups', 'accountId']
|
|
80
|
+
});
|
|
81
|
+
}));
|
|
82
|
+
const permissionUsersMap = (0, ts_common_1.arrayToMap)(permissionUsers, pu => pu.accountId);
|
|
83
|
+
return usersEmails.reduce((acc, e) => {
|
|
84
|
+
const account = usersMap[e.toLowerCase()];
|
|
57
85
|
if (!account)
|
|
58
|
-
return;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
86
|
+
return acc;
|
|
87
|
+
const user = permissionUsersMap[account._id];
|
|
88
|
+
if (!user)
|
|
89
|
+
return acc;
|
|
90
|
+
acc[e] = this.getCustomFields(user, groupsIds);
|
|
91
|
+
return acc;
|
|
92
|
+
}, {});
|
|
62
93
|
});
|
|
63
94
|
}
|
|
64
95
|
getUserCFsByShareGroups(userId, groupsIds) {
|
|
65
96
|
return __awaiter(this, void 0, void 0, function* () {
|
|
66
97
|
const user = yield assign_1.UserPermissionsDB.queryUnique({ accountId: userId });
|
|
67
|
-
|
|
68
|
-
if (!user.groups)
|
|
69
|
-
return userCFs;
|
|
70
|
-
user.groups.forEach(userGroup => {
|
|
71
|
-
if (!groupsIds.find(groupId => groupId === userGroup.groupId))
|
|
72
|
-
return;
|
|
73
|
-
if (!userGroup.customField)
|
|
74
|
-
return;
|
|
75
|
-
userCFs.push(userGroup.customField);
|
|
76
|
-
});
|
|
77
|
-
return userCFs;
|
|
98
|
+
return this.getCustomFields(user, groupsIds);
|
|
78
99
|
});
|
|
79
100
|
}
|
|
101
|
+
getCustomFields(user, groupsIds) {
|
|
102
|
+
if (!user.groups)
|
|
103
|
+
return [];
|
|
104
|
+
return user.groups.reduce((acc, userGroup) => {
|
|
105
|
+
if (!groupsIds.find(groupId => groupId === userGroup.groupId))
|
|
106
|
+
return acc;
|
|
107
|
+
if (!userGroup.customField)
|
|
108
|
+
return acc;
|
|
109
|
+
acc.push(userGroup.customField);
|
|
110
|
+
return acc;
|
|
111
|
+
}, []);
|
|
112
|
+
}
|
|
80
113
|
registerProject(server) {
|
|
81
114
|
return __awaiter(this, void 0, void 0, function* () {
|
|
82
115
|
const routes = server.getRoutes().reduce((carry, httpRoute) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PermissionsModule.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/PermissionsModule.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"PermissionsModule.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/PermissionsModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { DB_GroupTags } from "../../shared/assign-types";
|
|
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 "../..";
|
|
7
6
|
export declare const CollectionNameTags = "permissions--tags";
|
|
8
7
|
export declare class TagsDB_Class extends BaseDB_ApiGenerator<DB_GroupTags> {
|
|
9
8
|
static _validator: TypeValidator<DB_GroupTags>;
|
|
@@ -10,13 +10,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.TagsDB = exports.TagsDB_Class = exports.CollectionNameTags = void 0;
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const apis_1 = require("@intuitionrobotics/db-api-generator/app-backend/apis");
|
|
13
|
+
const backend_1 = require("@intuitionrobotics/db-api-generator/backend");
|
|
14
|
+
const ts_common_1 = require("@intuitionrobotics/ts-common");
|
|
16
15
|
const assign_1 = require("./db-types/assign");
|
|
17
|
-
const validateGroupLabel =
|
|
16
|
+
const validateGroupLabel = (0, ts_common_1.validateRegexp)(/^[A-Za-z-\._ ]+$/);
|
|
18
17
|
exports.CollectionNameTags = 'permissions--tags';
|
|
19
|
-
class TagsDB_Class extends
|
|
18
|
+
class TagsDB_Class extends backend_1.BaseDB_ApiGenerator {
|
|
20
19
|
constructor() {
|
|
21
20
|
super(exports.CollectionNameTags, TagsDB_Class._validator, "permissionsTags", "TagsDB");
|
|
22
21
|
}
|
|
@@ -36,16 +35,16 @@ class TagsDB_Class extends BaseDB_ApiGenerator_1.BaseDB_ApiGenerator {
|
|
|
36
35
|
}
|
|
37
36
|
apis(pathPart) {
|
|
38
37
|
return [
|
|
39
|
-
new
|
|
40
|
-
new
|
|
41
|
-
new
|
|
42
|
-
new
|
|
38
|
+
new backend_1.ServerApi_Delete(this, pathPart),
|
|
39
|
+
new backend_1.ServerApi_Query(this, pathPart),
|
|
40
|
+
new backend_1.ServerApi_Unique(this, pathPart),
|
|
41
|
+
new backend_1.ServerApi_Create(this, pathPart)
|
|
43
42
|
];
|
|
44
43
|
}
|
|
45
44
|
}
|
|
46
45
|
exports.TagsDB_Class = TagsDB_Class;
|
|
47
46
|
TagsDB_Class._validator = {
|
|
48
|
-
_id:
|
|
47
|
+
_id: backend_1.validateStringAndNumbersWithDashes,
|
|
49
48
|
label: validateGroupLabel
|
|
50
49
|
};
|
|
51
50
|
exports.TagsDB = new TagsDB_Class();
|