@intuitionrobotics/permissions 0.47.59 → 1.0.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/LICENSE +3 -0
- package/dist/app-backend/api/v1/permissions/_imports.d.ts +3 -0
- package/dist/app-backend/api/v1/permissions/_imports.d.ts.map +1 -0
- package/{shared/assign-types.js → dist/app-backend/api/v1/permissions/_imports.js} +3 -3
- package/{app-backend → dist/app-backend}/api/v1/permissions/_imports.js.map +1 -1
- package/dist/app-backend/api/v1/permissions/_permissions.d.ts +4 -0
- package/dist/app-backend/api/v1/permissions/_permissions.d.ts.map +1 -0
- package/{app-backend → dist/app-backend}/api/v1/permissions/_permissions.js +2 -4
- package/dist/app-backend/api/v1/permissions/_permissions.js.map +1 -0
- package/dist/app-backend/api/v1/permissions/assert.d.ts +10 -0
- package/dist/app-backend/api/v1/permissions/assert.d.ts.map +1 -0
- package/dist/app-backend/api/v1/permissions/assert.js +36 -0
- package/dist/app-backend/api/v1/permissions/assert.js.map +1 -0
- package/dist/app-backend/api/v1/permissions/assign/apis.d.ts +4 -0
- package/dist/app-backend/api/v1/permissions/assign/apis.d.ts.map +1 -0
- package/{app-backend → dist/app-backend}/api/v1/permissions/assign/apis.js +6 -7
- package/dist/app-backend/api/v1/permissions/assign/apis.js.map +1 -0
- package/dist/app-backend/api/v1/permissions/assign/app-permissions.d.ts +10 -0
- package/dist/app-backend/api/v1/permissions/assign/app-permissions.d.ts.map +1 -0
- package/dist/app-backend/api/v1/permissions/assign/app-permissions.js +42 -0
- package/dist/app-backend/api/v1/permissions/assign/app-permissions.js.map +1 -0
- package/dist/app-backend/api/v1/permissions/manage/apis.d.ts +4 -0
- package/dist/app-backend/api/v1/permissions/manage/apis.d.ts.map +1 -0
- package/{app-backend → dist/app-backend}/api/v1/permissions/manage/apis.js +8 -9
- package/dist/app-backend/api/v1/permissions/manage/apis.js.map +1 -0
- package/dist/app-backend/api/v1/permissions/tags/apis.d.ts +3 -0
- package/dist/app-backend/api/v1/permissions/tags/apis.d.ts.map +1 -0
- package/dist/app-backend/api/v1/permissions/tags/apis.js +3 -0
- package/{app-backend → dist/app-backend}/api/v1/permissions/tags/apis.js.map +1 -1
- package/dist/app-backend/api/v1/permissions/user-urls-permissions.d.ts +9 -0
- package/dist/app-backend/api/v1/permissions/user-urls-permissions.d.ts.map +1 -0
- package/dist/app-backend/api/v1/permissions/user-urls-permissions.js +34 -0
- package/dist/app-backend/api/v1/permissions/user-urls-permissions.js.map +1 -0
- package/dist/app-backend/api/v1/register/_register-project.d.ts +4 -0
- package/dist/app-backend/api/v1/register/_register-project.d.ts.map +1 -0
- package/dist/app-backend/api/v1/register/_register-project.js +20 -0
- package/dist/app-backend/api/v1/register/_register-project.js.map +1 -0
- package/dist/app-backend/api/v1/register/register-external-project.d.ts +9 -0
- package/dist/app-backend/api/v1/register/register-external-project.d.ts.map +1 -0
- package/dist/app-backend/api/v1/register/register-external-project.js +33 -0
- package/dist/app-backend/api/v1/register/register-external-project.js.map +1 -0
- package/dist/app-backend/api/v1/register/register-project.d.ts +11 -0
- package/dist/app-backend/api/v1/register/register-project.d.ts.map +1 -0
- package/dist/app-backend/api/v1/register/register-project.js +16 -0
- package/dist/app-backend/api/v1/register/register-project.js.map +1 -0
- package/dist/app-backend/api/v1/test/_imports.d.ts +2 -0
- package/dist/app-backend/api/v1/test/_imports.d.ts.map +1 -0
- package/dist/app-backend/api/v1/test/_imports.js +19 -0
- package/{app-backend → dist/app-backend}/api/v1/test/_imports.js.map +1 -1
- package/dist/app-backend/api/v1/test/_test-permissions.d.ts +4 -0
- package/dist/app-backend/api/v1/test/_test-permissions.d.ts.map +1 -0
- package/dist/app-backend/api/v1/test/_test-permissions.js +20 -0
- package/dist/app-backend/api/v1/test/_test-permissions.js.map +1 -0
- package/dist/app-backend/api/v1/test/test-permissions.d.ts +10 -0
- package/dist/app-backend/api/v1/test/test-permissions.d.ts.map +1 -0
- package/dist/app-backend/api/v1/test/test-permissions.js +34 -0
- package/dist/app-backend/api/v1/test/test-permissions.js.map +1 -0
- package/dist/app-backend/api/v1/user-custom-fields/_user-custom-fields.d.ts +4 -0
- package/dist/app-backend/api/v1/user-custom-fields/_user-custom-fields.d.ts.map +1 -0
- package/dist/app-backend/api/v1/user-custom-fields/_user-custom-fields.js +20 -0
- package/dist/app-backend/api/v1/user-custom-fields/_user-custom-fields.js.map +1 -0
- package/dist/app-backend/api/v1/user-custom-fields/user-cf-by-share-groups.d.ts +9 -0
- package/dist/app-backend/api/v1/user-custom-fields/user-cf-by-share-groups.d.ts.map +1 -0
- package/dist/app-backend/api/v1/user-custom-fields/user-cf-by-share-groups.js +17 -0
- package/dist/app-backend/api/v1/user-custom-fields/user-cf-by-share-groups.js.map +1 -0
- package/dist/app-backend/api/v1/user-custom-fields/users-cf-by-share-groups.d.ts +9 -0
- package/dist/app-backend/api/v1/user-custom-fields/users-cf-by-share-groups.d.ts.map +1 -0
- package/dist/app-backend/api/v1/user-custom-fields/users-cf-by-share-groups.js +15 -0
- package/dist/app-backend/api/v1/user-custom-fields/users-cf-by-share-groups.js.map +1 -0
- package/{app-backend → dist/app-backend}/benchmark/permission-user-assert-benchmark.d.ts +1 -0
- package/dist/app-backend/benchmark/permission-user-assert-benchmark.d.ts.map +1 -0
- package/dist/app-backend/benchmark/permission-user-assert-benchmark.js +92 -0
- package/dist/app-backend/benchmark/permission-user-assert-benchmark.js.map +1 -0
- package/dist/app-backend/core/module-pack.d.ts +7 -0
- package/dist/app-backend/core/module-pack.d.ts.map +1 -0
- package/dist/app-backend/core/module-pack.js +39 -0
- package/dist/app-backend/core/module-pack.js.map +1 -0
- package/{app-backend → dist/app-backend}/modules/PermissionsModule.d.ts +3 -2
- package/dist/app-backend/modules/PermissionsModule.d.ts.map +1 -0
- package/dist/app-backend/modules/PermissionsModule.js +119 -0
- package/dist/app-backend/modules/PermissionsModule.js.map +1 -0
- package/{app-backend → dist/app-backend}/modules/TagsModule.d.ts +5 -4
- package/dist/app-backend/modules/TagsModule.d.ts.map +1 -0
- package/dist/app-backend/modules/TagsModule.js +36 -0
- package/dist/app-backend/modules/TagsModule.js.map +1 -0
- package/{app-backend → dist/app-backend}/modules/_imports.d.ts +4 -3
- package/dist/app-backend/modules/_imports.d.ts.map +1 -0
- package/{app-backend/api/v1/test → dist/app-backend/modules}/_imports.js +9 -5
- package/dist/app-backend/modules/_imports.js.map +1 -0
- package/{app-backend → dist/app-backend}/modules/db-types/assign.d.ts +7 -6
- package/dist/app-backend/modules/db-types/assign.d.ts.map +1 -0
- package/dist/app-backend/modules/db-types/assign.js +251 -0
- package/dist/app-backend/modules/db-types/assign.js.map +1 -0
- package/{app-backend → dist/app-backend}/modules/db-types/managment.d.ts +5 -4
- package/dist/app-backend/modules/db-types/managment.d.ts.map +1 -0
- package/dist/app-backend/modules/db-types/managment.js +210 -0
- package/dist/app-backend/modules/db-types/managment.js.map +1 -0
- package/{app-backend → dist/app-backend}/modules/permissions-assert.d.ts +4 -3
- package/dist/app-backend/modules/permissions-assert.d.ts.map +1 -0
- package/dist/app-backend/modules/permissions-assert.js +226 -0
- package/dist/app-backend/modules/permissions-assert.js.map +1 -0
- package/{app-backend → dist/app-backend}/modules/permissions-share.d.ts +2 -1
- package/dist/app-backend/modules/permissions-share.d.ts.map +1 -0
- package/dist/app-backend/modules/permissions-share.js +13 -0
- package/dist/app-backend/modules/permissions-share.js.map +1 -0
- package/dist/app-frontend/core/module-pack.d.ts +9 -0
- package/dist/app-frontend/core/module-pack.d.ts.map +1 -0
- package/dist/app-frontend/core/module-pack.js +41 -0
- package/dist/app-frontend/core/module-pack.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/PermissionsComponent.d.ts +2 -1
- package/dist/app-frontend/modules/PermissionsComponent.d.ts.map +1 -0
- package/dist/app-frontend/modules/PermissionsComponent.js +19 -0
- package/dist/app-frontend/modules/PermissionsComponent.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/PermissionsModuleFE.d.ts +1 -0
- package/dist/app-frontend/modules/PermissionsModuleFE.d.ts.map +1 -0
- package/dist/app-frontend/modules/PermissionsModuleFE.js +80 -0
- package/dist/app-frontend/modules/PermissionsModuleFE.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/assign/ApiCaller_PermissionsGroup.d.ts +6 -5
- package/dist/app-frontend/modules/assign/ApiCaller_PermissionsGroup.d.ts.map +1 -0
- package/dist/app-frontend/modules/assign/ApiCaller_PermissionsGroup.js +50 -0
- package/dist/app-frontend/modules/assign/ApiCaller_PermissionsGroup.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/assign/ApiCaller_PermissionsUser.d.ts +6 -5
- package/dist/app-frontend/modules/assign/ApiCaller_PermissionsUser.d.ts.map +1 -0
- package/dist/app-frontend/modules/assign/ApiCaller_PermissionsUser.js +50 -0
- package/dist/app-frontend/modules/assign/ApiCaller_PermissionsUser.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/manage/ApiCaller_PermissionsApi.d.ts +6 -5
- package/dist/app-frontend/modules/manage/ApiCaller_PermissionsApi.d.ts.map +1 -0
- package/dist/app-frontend/modules/manage/ApiCaller_PermissionsApi.js +55 -0
- package/dist/app-frontend/modules/manage/ApiCaller_PermissionsApi.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/manage/ApiCaller_PermissionsDomain.d.ts +6 -5
- package/dist/app-frontend/modules/manage/ApiCaller_PermissionsDomain.d.ts.map +1 -0
- package/dist/app-frontend/modules/manage/ApiCaller_PermissionsDomain.js +61 -0
- package/dist/app-frontend/modules/manage/ApiCaller_PermissionsDomain.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/manage/ApiCaller_PermissionsLevel.d.ts +6 -5
- package/dist/app-frontend/modules/manage/ApiCaller_PermissionsLevel.d.ts.map +1 -0
- package/dist/app-frontend/modules/manage/ApiCaller_PermissionsLevel.js +61 -0
- package/dist/app-frontend/modules/manage/ApiCaller_PermissionsLevel.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/manage/ApiCaller_PermissionsProject.d.ts +6 -5
- package/dist/app-frontend/modules/manage/ApiCaller_PermissionsProject.d.ts.map +1 -0
- package/dist/app-frontend/modules/manage/ApiCaller_PermissionsProject.js +60 -0
- package/dist/app-frontend/modules/manage/ApiCaller_PermissionsProject.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/tags/ApiCaller_PermissionsTags.d.ts +6 -5
- package/dist/app-frontend/modules/tags/ApiCaller_PermissionsTags.d.ts.map +1 -0
- package/dist/app-frontend/modules/tags/ApiCaller_PermissionsTags.js +33 -0
- package/dist/app-frontend/modules/tags/ApiCaller_PermissionsTags.js.map +1 -0
- package/dist/backend.d.ts +2 -0
- package/dist/backend.d.ts.map +1 -0
- package/{shared/apis.js → dist/backend.js} +2 -3
- package/dist/backend.js.map +1 -0
- package/dist/frontend.d.ts +4 -0
- package/dist/frontend.d.ts.map +1 -0
- package/dist/frontend.js +21 -0
- package/dist/frontend.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/{shared → dist/shared}/apis.d.ts +6 -5
- package/dist/shared/apis.d.ts.map +1 -0
- package/dist/shared/apis.js +23 -0
- package/dist/shared/apis.js.map +1 -0
- package/{shared → dist/shared}/assign-types.d.ts +3 -2
- package/dist/shared/assign-types.d.ts.map +1 -0
- package/{shared/manager-types.js → dist/shared/assign-types.js} +3 -3
- package/{shared → dist/shared}/assign-types.js.map +1 -1
- package/{shared → dist/shared}/manager-types.d.ts +3 -2
- package/dist/shared/manager-types.d.ts.map +1 -0
- package/dist/shared/manager-types.js +20 -0
- package/{shared → dist/shared}/manager-types.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +66 -17
- package/app-backend/api/v1/permissions/_imports.d.ts +0 -2
- package/app-backend/api/v1/permissions/_imports.js +0 -36
- package/app-backend/api/v1/permissions/_permissions.d.ts +0 -1
- package/app-backend/api/v1/permissions/_permissions.js.map +0 -1
- package/app-backend/api/v1/permissions/assert.d.ts +0 -1
- package/app-backend/api/v1/permissions/assert.js +0 -47
- package/app-backend/api/v1/permissions/assert.js.map +0 -1
- package/app-backend/api/v1/permissions/assign/apis.d.ts +0 -1
- package/app-backend/api/v1/permissions/assign/apis.js.map +0 -1
- package/app-backend/api/v1/permissions/assign/app-permissions.d.ts +0 -1
- package/app-backend/api/v1/permissions/assign/app-permissions.js +0 -55
- package/app-backend/api/v1/permissions/assign/app-permissions.js.map +0 -1
- package/app-backend/api/v1/permissions/manage/apis.d.ts +0 -1
- package/app-backend/api/v1/permissions/manage/apis.js.map +0 -1
- package/app-backend/api/v1/permissions/tags/apis.d.ts +0 -1
- package/app-backend/api/v1/permissions/tags/apis.js +0 -5
- package/app-backend/api/v1/permissions/user-urls-permissions.d.ts +0 -1
- package/app-backend/api/v1/permissions/user-urls-permissions.js +0 -46
- package/app-backend/api/v1/permissions/user-urls-permissions.js.map +0 -1
- package/app-backend/api/v1/register/_register-project.d.ts +0 -1
- package/app-backend/api/v1/register/_register-project.js +0 -22
- package/app-backend/api/v1/register/_register-project.js.map +0 -1
- package/app-backend/api/v1/register/register-external-project.d.ts +0 -6
- package/app-backend/api/v1/register/register-external-project.js +0 -46
- package/app-backend/api/v1/register/register-external-project.js.map +0 -1
- package/app-backend/api/v1/register/register-project.d.ts +0 -8
- package/app-backend/api/v1/register/register-project.js +0 -29
- package/app-backend/api/v1/register/register-project.js.map +0 -1
- package/app-backend/api/v1/test/_imports.d.ts +0 -1
- package/app-backend/api/v1/test/_test-permissions.d.ts +0 -1
- package/app-backend/api/v1/test/_test-permissions.js +0 -22
- package/app-backend/api/v1/test/_test-permissions.js.map +0 -1
- package/app-backend/api/v1/test/test-permissions.d.ts +0 -1
- package/app-backend/api/v1/test/test-permissions.js +0 -45
- package/app-backend/api/v1/test/test-permissions.js.map +0 -1
- package/app-backend/api/v1/user-custom-fields/_user-custom-fields.d.ts +0 -1
- package/app-backend/api/v1/user-custom-fields/_user-custom-fields.js +0 -22
- package/app-backend/api/v1/user-custom-fields/_user-custom-fields.js.map +0 -1
- package/app-backend/api/v1/user-custom-fields/user-cf-by-share-groups.d.ts +0 -6
- package/app-backend/api/v1/user-custom-fields/user-cf-by-share-groups.js +0 -31
- package/app-backend/api/v1/user-custom-fields/user-cf-by-share-groups.js.map +0 -1
- package/app-backend/api/v1/user-custom-fields/users-cf-by-share-groups.d.ts +0 -6
- package/app-backend/api/v1/user-custom-fields/users-cf-by-share-groups.js +0 -30
- package/app-backend/api/v1/user-custom-fields/users-cf-by-share-groups.js.map +0 -1
- package/app-backend/benchmark/permission-user-assert-benchmark.js +0 -108
- package/app-backend/benchmark/permission-user-assert-benchmark.js.map +0 -1
- package/app-backend/core/module-pack.d.ts +0 -6
- package/app-backend/core/module-pack.js +0 -56
- package/app-backend/core/module-pack.js.map +0 -1
- package/app-backend/modules/PermissionsModule.js +0 -140
- package/app-backend/modules/PermissionsModule.js.map +0 -1
- package/app-backend/modules/TagsModule.js +0 -51
- package/app-backend/modules/TagsModule.js.map +0 -1
- package/app-backend/modules/_imports.js +0 -44
- package/app-backend/modules/_imports.js.map +0 -1
- package/app-backend/modules/db-types/assign.js +0 -288
- package/app-backend/modules/db-types/assign.js.map +0 -1
- package/app-backend/modules/db-types/managment.js +0 -242
- package/app-backend/modules/db-types/managment.js.map +0 -1
- package/app-backend/modules/permissions-assert.js +0 -250
- package/app-backend/modules/permissions-assert.js.map +0 -1
- package/app-backend/modules/permissions-share.js +0 -27
- package/app-backend/modules/permissions-share.js.map +0 -1
- package/app-frontend/core/module-pack.d.ts +0 -8
- package/app-frontend/core/module-pack.js +0 -58
- package/app-frontend/core/module-pack.js.map +0 -1
- package/app-frontend/modules/PermissionsComponent.js +0 -23
- package/app-frontend/modules/PermissionsComponent.js.map +0 -1
- package/app-frontend/modules/PermissionsModuleFE.js +0 -92
- package/app-frontend/modules/PermissionsModuleFE.js.map +0 -1
- package/app-frontend/modules/assign/ApiCaller_PermissionsGroup.js +0 -55
- package/app-frontend/modules/assign/ApiCaller_PermissionsGroup.js.map +0 -1
- package/app-frontend/modules/assign/ApiCaller_PermissionsUser.js +0 -72
- package/app-frontend/modules/assign/ApiCaller_PermissionsUser.js.map +0 -1
- package/app-frontend/modules/manage/ApiCaller_PermissionsApi.js +0 -76
- package/app-frontend/modules/manage/ApiCaller_PermissionsApi.js.map +0 -1
- package/app-frontend/modules/manage/ApiCaller_PermissionsDomain.js +0 -83
- package/app-frontend/modules/manage/ApiCaller_PermissionsDomain.js.map +0 -1
- package/app-frontend/modules/manage/ApiCaller_PermissionsLevel.js +0 -83
- package/app-frontend/modules/manage/ApiCaller_PermissionsLevel.js.map +0 -1
- package/app-frontend/modules/manage/ApiCaller_PermissionsProject.js +0 -82
- package/app-frontend/modules/manage/ApiCaller_PermissionsProject.js.map +0 -1
- package/app-frontend/modules/tags/ApiCaller_PermissionsTags.js +0 -55
- package/app-frontend/modules/tags/ApiCaller_PermissionsTags.js.map +0 -1
- package/backend.d.ts +0 -1
- package/backend.js +0 -35
- package/backend.js.map +0 -1
- package/frontend.d.ts +0 -3
- package/frontend.js +0 -37
- package/frontend.js.map +0 -1
- package/index.d.ts +0 -3
- package/index.js +0 -37
- package/index.js.map +0 -1
- package/shared/apis.js.map +0 -1
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* ts-common is the basic building blocks of our typescript projects
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2020 Intuition Robotics
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
* you may not use this file except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*/
|
|
18
|
+
import { CollectionName_Groups, CollectionName_Users } from "../_imports.js";
|
|
19
|
+
import { BaseDB_ApiGenerator, validateStringAndNumbersWithDashes, validateUniqueId } from "@intuitionrobotics/db-api-generator/backend";
|
|
20
|
+
import { AccountModule } from "@intuitionrobotics/user-account/backend";
|
|
21
|
+
import {} from "@intuitionrobotics/firebase";
|
|
22
|
+
import { ApiException } from "@intuitionrobotics/thunderstorm/backend";
|
|
23
|
+
import { _keys, auditBy, BadImplementationException, batchAction, compare, filterDuplicates, filterInstances, removeItemFromArray, validateArray, validateObjectValues, validateRegexp, merge, validate, } from "@intuitionrobotics/ts-common";
|
|
24
|
+
import { AccessLevelPermissionsDB } from "./managment.js";
|
|
25
|
+
import { FirestoreTransaction } from "@intuitionrobotics/firebase/backend";
|
|
26
|
+
import { PermissionsShare } from "../permissions-share.js";
|
|
27
|
+
import {} from "@intuitionrobotics/user-account";
|
|
28
|
+
const validateUserUuid = validateRegexp(/^.{0,50}$/);
|
|
29
|
+
const validateGroupLabel = validateRegexp(/^[A-Za-z-\._ ]+$/);
|
|
30
|
+
const validateCustomFieldValues = validateRegexp(/^.{0,500}$/);
|
|
31
|
+
function checkDuplicateLevelsDomain(levels) {
|
|
32
|
+
const domainIds = levels.map(level => level.domainId);
|
|
33
|
+
const filteredDomainIds = filterDuplicates(domainIds);
|
|
34
|
+
if (filteredDomainIds.length !== domainIds.length)
|
|
35
|
+
throw new ApiException(422, 'You trying insert duplicate accessLevel with the same domain');
|
|
36
|
+
}
|
|
37
|
+
export class GroupsDB_Class extends BaseDB_ApiGenerator {
|
|
38
|
+
static _validator = {
|
|
39
|
+
_id: validateStringAndNumbersWithDashes,
|
|
40
|
+
label: validateGroupLabel,
|
|
41
|
+
tags: undefined,
|
|
42
|
+
accessLevelIds: validateArray(validateUniqueId, false),
|
|
43
|
+
customFields: validateArray(validateObjectValues(validateCustomFieldValues), false),
|
|
44
|
+
__accessLevels: undefined,
|
|
45
|
+
_audit: undefined
|
|
46
|
+
};
|
|
47
|
+
constructor() {
|
|
48
|
+
super(CollectionName_Groups, GroupsDB_Class._validator, "group", "GroupsDB");
|
|
49
|
+
this.setLockKeys(['__accessLevels']);
|
|
50
|
+
}
|
|
51
|
+
externalFilter(item) {
|
|
52
|
+
const { label } = item;
|
|
53
|
+
return { label };
|
|
54
|
+
}
|
|
55
|
+
internalFilter(item) {
|
|
56
|
+
const { label } = item;
|
|
57
|
+
return [{ label }];
|
|
58
|
+
}
|
|
59
|
+
async assertDeletion(transaction, dbInstance) {
|
|
60
|
+
const groups = await UserPermissionsDB.collection.query({ where: { __groupIds: { $ac: dbInstance._id } } });
|
|
61
|
+
if (groups.length) {
|
|
62
|
+
throw new ApiException(403, 'You trying delete group that associated with users, you need delete this group from users first');
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
async setAccessLevels(dbInstance) {
|
|
66
|
+
dbInstance.__accessLevels = [];
|
|
67
|
+
const accessLevelIds = dbInstance.accessLevelIds || [];
|
|
68
|
+
if (accessLevelIds.length) {
|
|
69
|
+
const groupLevels = await batchAction(accessLevelIds, 10, (chunked) => {
|
|
70
|
+
return AccessLevelPermissionsDB.query({ where: { _id: { $in: chunked } } });
|
|
71
|
+
});
|
|
72
|
+
checkDuplicateLevelsDomain(groupLevels);
|
|
73
|
+
dbInstance.__accessLevels = groupLevels.map(level => {
|
|
74
|
+
return { domainId: level.domainId, value: level.value };
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
async getGroupsByTags(tags) {
|
|
79
|
+
const groupsByTags = await this.collection.query({ where: { tags: { $aca: tags } } });
|
|
80
|
+
if (!groupsByTags)
|
|
81
|
+
return [];
|
|
82
|
+
return groupsByTags;
|
|
83
|
+
}
|
|
84
|
+
async deleteTags(tag) {
|
|
85
|
+
const groupsWithTags = await this.collection.query({ where: { tags: { $aca: [tag] } } });
|
|
86
|
+
if (!groupsWithTags)
|
|
87
|
+
return;
|
|
88
|
+
for (const _group of groupsWithTags) {
|
|
89
|
+
if (!_group.tags)
|
|
90
|
+
continue;
|
|
91
|
+
removeItemFromArray(_group.tags, tag);
|
|
92
|
+
await this.collection.upsert(_group);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
async preUpsertProcessing(transaction, dbInstance, request) {
|
|
96
|
+
if (request) {
|
|
97
|
+
const account = await AccountModule.validateSession(request, []);
|
|
98
|
+
dbInstance._audit = auditBy(account.email);
|
|
99
|
+
}
|
|
100
|
+
if (!dbInstance.accessLevelIds)
|
|
101
|
+
return;
|
|
102
|
+
await this.setAccessLevels(dbInstance);
|
|
103
|
+
const filterAccessLevelIds = filterDuplicates(dbInstance.accessLevelIds);
|
|
104
|
+
if (filterAccessLevelIds.length !== dbInstance.accessLevelIds?.length)
|
|
105
|
+
throw new ApiException(422, 'You trying insert duplicate accessLevel id in group');
|
|
106
|
+
}
|
|
107
|
+
getConfig() {
|
|
108
|
+
return this.config;
|
|
109
|
+
}
|
|
110
|
+
getPredefinedGroupId(projectId, predefinedGroupId) {
|
|
111
|
+
return `${projectId}--${predefinedGroupId}`;
|
|
112
|
+
}
|
|
113
|
+
upsertPredefinedGroups(projectId, projectName, predefinedGroups) {
|
|
114
|
+
return this.runInTransaction(async (transaction) => {
|
|
115
|
+
const _groups = predefinedGroups.map(group => ({ _id: this.getPredefinedGroupId(projectId, group._id), label: `${projectName}--${group.key}-${group.label}` }));
|
|
116
|
+
const dbGroups = filterInstances(await batchAction(_groups.map(group => group._id), 10, (chunk) => {
|
|
117
|
+
return transaction.query(this.collection, { where: { _id: { $in: chunk } } });
|
|
118
|
+
}));
|
|
119
|
+
//TODO patch the predefined groups, in case app changed the label of the group..
|
|
120
|
+
const groupsToInsert = _groups.filter(group => !dbGroups.find(dbGroup => dbGroup._id === group._id));
|
|
121
|
+
return this.upsertAll(groupsToInsert, transaction);
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
export class UsersDB_Class extends BaseDB_ApiGenerator {
|
|
126
|
+
static _validator = {
|
|
127
|
+
_id: undefined,
|
|
128
|
+
accountId: validateUserUuid,
|
|
129
|
+
groups: validateArray({ groupId: validateStringAndNumbersWithDashes, customField: validateObjectValues(validateCustomFieldValues, false) }, false),
|
|
130
|
+
__groupIds: validateArray(validateStringAndNumbersWithDashes, false),
|
|
131
|
+
_audit: undefined
|
|
132
|
+
};
|
|
133
|
+
constructor() {
|
|
134
|
+
super(CollectionName_Users, UsersDB_Class._validator, "user", "UsersDB");
|
|
135
|
+
this.setLockKeys(["accountId"]);
|
|
136
|
+
}
|
|
137
|
+
async preUpsertProcessing(transaction, dbInstance, request) {
|
|
138
|
+
if (request) {
|
|
139
|
+
const account = await AccountModule.validateSession(request, []);
|
|
140
|
+
dbInstance._audit = auditBy(account.email);
|
|
141
|
+
}
|
|
142
|
+
this.setGroupIds(dbInstance);
|
|
143
|
+
const userGroupIds = filterDuplicates(dbInstance.groups?.map(group => group.groupId) || []);
|
|
144
|
+
if (!userGroupIds.length)
|
|
145
|
+
return;
|
|
146
|
+
const userGroups = await batchAction(userGroupIds, 10, (chunked) => {
|
|
147
|
+
return GroupPermissionsDB.query({ where: { _id: { $in: chunked } } });
|
|
148
|
+
});
|
|
149
|
+
if (userGroupIds.length !== userGroups.length) {
|
|
150
|
+
throw new ApiException(422, 'You trying upsert user with group that not found in group permissions db');
|
|
151
|
+
}
|
|
152
|
+
const userGroupsItems = dbInstance.groups || [];
|
|
153
|
+
userGroupsItems.forEach((userGroupItem) => {
|
|
154
|
+
userGroupsItems.forEach(innerUserGroupItem => {
|
|
155
|
+
if (userGroupsItems.indexOf(userGroupItem) === userGroupsItems.indexOf(innerUserGroupItem))
|
|
156
|
+
return;
|
|
157
|
+
if (compare(userGroupItem.groupId, innerUserGroupItem.groupId) && compare(userGroupItem.customField || {}, innerUserGroupItem.customField || {})) {
|
|
158
|
+
throw new ApiException(422, 'You trying upsert user with duplicate UserGroup (with the same groupId && customField)');
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
internalFilter(item) {
|
|
164
|
+
const { accountId } = item;
|
|
165
|
+
return [{ accountId }];
|
|
166
|
+
}
|
|
167
|
+
setGroupIds(dbInstance) {
|
|
168
|
+
dbInstance.__groupIds = [];
|
|
169
|
+
const userGroups = dbInstance.groups || [];
|
|
170
|
+
if (userGroups.length) {
|
|
171
|
+
dbInstance.__groupIds = userGroups.map(userGroup => userGroup.groupId);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
async __onUserLogin(account) {
|
|
175
|
+
await this.insertIfNotExist(account.email);
|
|
176
|
+
}
|
|
177
|
+
async __onNewUserRegistered(account) {
|
|
178
|
+
await this.insertIfNotExist(account.email);
|
|
179
|
+
}
|
|
180
|
+
async insertIfNotExist(email) {
|
|
181
|
+
return this.runInTransaction(async (transaction) => {
|
|
182
|
+
const account = await AccountModule.getUser(email);
|
|
183
|
+
if (!account)
|
|
184
|
+
throw new ApiException(404, `user not found for email ${email}`);
|
|
185
|
+
const users = await transaction.query(this.collection, { where: { accountId: account._id } });
|
|
186
|
+
if (users.length)
|
|
187
|
+
return;
|
|
188
|
+
return this.upsert({ accountId: account._id, groups: [] }, transaction);
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
async assignAppPermissions(assignAppPermissionsObj, request) {
|
|
192
|
+
const sharedUserIds = assignAppPermissionsObj.sharedUserIds || [];
|
|
193
|
+
if (!sharedUserIds.length)
|
|
194
|
+
throw new BadImplementationException("SharedUserIds is missing");
|
|
195
|
+
const groupId = GroupPermissionsDB.getPredefinedGroupId(assignAppPermissionsObj.projectId, assignAppPermissionsObj.group._id);
|
|
196
|
+
await PermissionsShare.verifyPermissionGrantingAllowed(assignAppPermissionsObj.granterUserId, { groupId, customField: assignAppPermissionsObj.customField });
|
|
197
|
+
if (!assignAppPermissionsObj.groupsToRemove.find(groupToRemove => groupToRemove._id === assignAppPermissionsObj.group._id))
|
|
198
|
+
throw new BadImplementationException("Group to must be a part of the groups to removed array");
|
|
199
|
+
await this.runInTransaction(async (transaction) => {
|
|
200
|
+
const users = await batchAction(sharedUserIds, 10, (chunked) => {
|
|
201
|
+
return transaction.query(this.collection, { where: { accountId: { $in: chunked } } });
|
|
202
|
+
});
|
|
203
|
+
if (users.length !== sharedUserIds.length)
|
|
204
|
+
throw new ApiException(404, `No permissions USER for all user ids`); // TODO mention who miss?
|
|
205
|
+
if (!assignAppPermissionsObj.customField)
|
|
206
|
+
throw new ApiException(400, `Cannot set app permissions '${assignAppPermissionsObj.projectId}--${assignAppPermissionsObj.group._id}', request must have custom fields restriction!!`);
|
|
207
|
+
const _group = await transaction.queryUnique(GroupPermissionsDB.collection, { where: { _id: groupId } });
|
|
208
|
+
if (!_group)
|
|
209
|
+
throw new ApiException(404, `No permissions GROUP for id ${groupId}`);
|
|
210
|
+
const updatedUsers = users.map(user => {
|
|
211
|
+
const newGroups = (user.groups || [])?.filter(group => !assignAppPermissionsObj.groupsToRemove.find(groupToRemove => {
|
|
212
|
+
if (GroupPermissionsDB.getPredefinedGroupId(assignAppPermissionsObj.projectId, groupToRemove._id) !== group.groupId)
|
|
213
|
+
return false;
|
|
214
|
+
return compare(group.customField, assignAppPermissionsObj.customField, assignAppPermissionsObj.assertKeys);
|
|
215
|
+
}));
|
|
216
|
+
if (!newGroups.find(nGroup => nGroup.groupId === _group._id && compare(nGroup.customField, assignAppPermissionsObj.customField))) {
|
|
217
|
+
newGroups.push({ groupId: _group._id, customField: assignAppPermissionsObj.customField });
|
|
218
|
+
}
|
|
219
|
+
user.groups = newGroups;
|
|
220
|
+
return user;
|
|
221
|
+
});
|
|
222
|
+
return this.upsertAll(updatedUsers, transaction, request);
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
async patch(instance, propsToPatch, request) {
|
|
226
|
+
return this.collection.runInTransaction(async (transaction) => {
|
|
227
|
+
const dbInstance = await this.assertExternalQueryUnique(instance, transaction);
|
|
228
|
+
// If the caller has specified props to be changed, make sure the don't conflict with the lockKeys.
|
|
229
|
+
const wrongKey = propsToPatch?.find(prop => this.config.lockKeys.includes(prop));
|
|
230
|
+
if (wrongKey)
|
|
231
|
+
throw new BadImplementationException(`Key ${wrongKey} is part of the 'lockKeys' and cannot be updated.`);
|
|
232
|
+
// If the caller has not specified props, we remove the keys from the caller's instance
|
|
233
|
+
// before merging with the original dbInstance.
|
|
234
|
+
_keys(instance).forEach(key => {
|
|
235
|
+
if (this.config.lockKeys.includes(key) || (propsToPatch && !propsToPatch.includes(key))) {
|
|
236
|
+
delete instance[key];
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
if (instance.groups && instance.groups.length < (dbInstance.groups?.length || 0)) {
|
|
240
|
+
await AccountModule.logoutAccount(dbInstance.accountId);
|
|
241
|
+
}
|
|
242
|
+
const mergedObject = merge(dbInstance, instance);
|
|
243
|
+
await validate(mergedObject, this.validator);
|
|
244
|
+
await this.assertUniqueness(transaction, mergedObject, request);
|
|
245
|
+
return this.upsertImpl(transaction, mergedObject, request);
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
export const GroupPermissionsDB = new GroupsDB_Class();
|
|
250
|
+
export const UserPermissionsDB = new UsersDB_Class();
|
|
251
|
+
//# sourceMappingURL=assign.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assign.js","sourceRoot":"","sources":["../../../../src/main/app-backend/modules/db-types/assign.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { BaseDB_ApiGenerator } from "@intuitionrobotics/db-api-generator/backend";
|
|
2
|
-
import { DB_PermissionAccessLevel, DB_PermissionApi, DB_PermissionDomain, DB_PermissionProject, Request_CreateGroup } from "../_imports";
|
|
3
|
-
import { TypeValidator } from "@intuitionrobotics/ts-common";
|
|
2
|
+
import { type DB_PermissionAccessLevel, type DB_PermissionApi, type DB_PermissionDomain, type DB_PermissionProject, type Request_CreateGroup } from "../_imports.js";
|
|
3
|
+
import { type TypeValidator } from "@intuitionrobotics/ts-common";
|
|
4
4
|
import { FirestoreTransaction } from "@intuitionrobotics/firebase/backend";
|
|
5
|
-
import { Clause_Where } from "@intuitionrobotics/firebase";
|
|
6
|
-
import { ExpressRequest, ServerApi } from "@intuitionrobotics/thunderstorm/backend";
|
|
5
|
+
import { type Clause_Where } from "@intuitionrobotics/firebase";
|
|
6
|
+
import { type ExpressRequest, ServerApi } from "@intuitionrobotics/thunderstorm/backend";
|
|
7
7
|
export declare const validateProjectName: import("@intuitionrobotics/ts-common").Validator<string>;
|
|
8
8
|
export declare const validateStringWithDashesAndSlash: import("@intuitionrobotics/ts-common").Validator<string>;
|
|
9
9
|
export declare class ProjectDB_Class extends BaseDB_ApiGenerator<DB_PermissionProject> {
|
|
@@ -40,3 +40,4 @@ export declare const ProjectPermissionsDB: ProjectDB_Class;
|
|
|
40
40
|
export declare const DomainPermissionsDB: DomainDB_Class;
|
|
41
41
|
export declare const AccessLevelPermissionsDB: LevelDB_Class;
|
|
42
42
|
export declare const ApiPermissionsDB: ApiDB_Class;
|
|
43
|
+
//# sourceMappingURL=managment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managment.d.ts","sourceRoot":"","sources":["../../../../src/main/app-backend/modules/db-types/managment.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* ts-common is the basic building blocks of our typescript projects
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2020 Intuition Robotics
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
* you may not use this file except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*/
|
|
18
|
+
import { BaseDB_ApiGenerator, ServerApi_Delete, ServerApi_Query, ServerApi_Unique, ServerApi_Update, validateNameWithDashesAndDots, validateOptionalId, validateStringWithDashes, validateUniqueId } from "@intuitionrobotics/db-api-generator/backend";
|
|
19
|
+
import { CollectionName_Api, CollectionName_Domain, CollectionName_Level, CollectionName_Projects } from "../_imports.js";
|
|
20
|
+
import { auditBy, filterDuplicates, MUSTNeverHappenException, validateArray, validateRange, validateRegexp } from "@intuitionrobotics/ts-common";
|
|
21
|
+
import { FirestoreTransaction } from "@intuitionrobotics/firebase/backend";
|
|
22
|
+
import { GroupPermissionsDB } from "./assign.js";
|
|
23
|
+
import {} from "@intuitionrobotics/firebase";
|
|
24
|
+
import { ApiException } from "@intuitionrobotics/thunderstorm/app-backend/exceptions";
|
|
25
|
+
import { ServerApi } from "@intuitionrobotics/thunderstorm/backend";
|
|
26
|
+
import { AccountModule } from "@intuitionrobotics/user-account/app-backend/modules/AccountModule";
|
|
27
|
+
const validateProjectId = validateRegexp(/^[a-z-]{3,20}$/);
|
|
28
|
+
export const validateProjectName = validateRegexp(/^[A-Za-z- ]{3,20}$/);
|
|
29
|
+
export const validateStringWithDashesAndSlash = validateRegexp(/^[0-9A-Za-z-:/]+$/);
|
|
30
|
+
export class ProjectDB_Class extends BaseDB_ApiGenerator {
|
|
31
|
+
static _validator = {
|
|
32
|
+
_id: validateProjectId,
|
|
33
|
+
name: validateProjectName,
|
|
34
|
+
customKeys: undefined,
|
|
35
|
+
_audit: undefined
|
|
36
|
+
};
|
|
37
|
+
constructor() {
|
|
38
|
+
super(CollectionName_Projects, ProjectDB_Class._validator, "project", "ProjectDB");
|
|
39
|
+
}
|
|
40
|
+
async preUpsertProcessing(transaction, dbInstance, request) {
|
|
41
|
+
if (request) {
|
|
42
|
+
const account = await AccountModule.validateSession(request, []);
|
|
43
|
+
dbInstance._audit = auditBy(account.email);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
apis(pathPart) {
|
|
47
|
+
return [
|
|
48
|
+
// new ServerApi_Delete(this, pathPart),
|
|
49
|
+
new ServerApi_Query(this, pathPart),
|
|
50
|
+
new ServerApi_Unique(this, pathPart),
|
|
51
|
+
];
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
export class DomainDB_Class extends BaseDB_ApiGenerator {
|
|
55
|
+
static _validator = {
|
|
56
|
+
_id: validateOptionalId,
|
|
57
|
+
projectId: validateProjectId,
|
|
58
|
+
namespace: validateNameWithDashesAndDots,
|
|
59
|
+
_audit: undefined
|
|
60
|
+
};
|
|
61
|
+
constructor() {
|
|
62
|
+
super(CollectionName_Domain, DomainDB_Class._validator, "domain", "DomainDB");
|
|
63
|
+
this.setLockKeys(['projectId']);
|
|
64
|
+
}
|
|
65
|
+
async assertDeletion(transaction, dbInstance) {
|
|
66
|
+
const accessLevels = await AccessLevelPermissionsDB.query({ where: { domainId: dbInstance._id } });
|
|
67
|
+
if (accessLevels.length) {
|
|
68
|
+
throw new ApiException(403, 'You trying delete domain that associated with accessLevels, you need delete the accessLevels first');
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
async preUpsertProcessing(transaction, dbInstance, request) {
|
|
72
|
+
await ProjectPermissionsDB.queryUnique({ _id: dbInstance.projectId });
|
|
73
|
+
if (request) {
|
|
74
|
+
const account = await AccountModule.validateSession(request, []);
|
|
75
|
+
dbInstance._audit = auditBy(account.email);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
export class LevelDB_Class extends BaseDB_ApiGenerator {
|
|
80
|
+
static _validator = {
|
|
81
|
+
_id: validateOptionalId,
|
|
82
|
+
domainId: validateUniqueId,
|
|
83
|
+
name: validateStringWithDashes,
|
|
84
|
+
value: validateRange([[0, 1000]]),
|
|
85
|
+
_audit: undefined
|
|
86
|
+
};
|
|
87
|
+
constructor() {
|
|
88
|
+
super(CollectionName_Level, LevelDB_Class._validator, "level", "LevelDB");
|
|
89
|
+
this.setLockKeys(['domainId']);
|
|
90
|
+
}
|
|
91
|
+
internalFilter(item) {
|
|
92
|
+
const { domainId, name, value } = item;
|
|
93
|
+
return [{ domainId, name }, { domainId, value }];
|
|
94
|
+
}
|
|
95
|
+
async preUpsertProcessing(transaction, dbInstance, request) {
|
|
96
|
+
await DomainPermissionsDB.queryUnique({ _id: dbInstance.domainId });
|
|
97
|
+
if (request) {
|
|
98
|
+
const account = await AccountModule.validateSession(request, []);
|
|
99
|
+
dbInstance._audit = auditBy(account.email);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
async upsertImpl_Read(transaction, dbInstance, request) {
|
|
103
|
+
const existDbLevel = await transaction.queryUnique(this.collection, { where: { _id: dbInstance._id } });
|
|
104
|
+
const groups = await GroupPermissionsDB.query({ where: { accessLevelIds: { $ac: dbInstance._id } } });
|
|
105
|
+
const returnWrite = await super.upsertImpl_Read(transaction, dbInstance, request);
|
|
106
|
+
if (existDbLevel) {
|
|
107
|
+
const callbackfn = (group) => {
|
|
108
|
+
const index = group.accessLevelIds?.indexOf(dbInstance._id);
|
|
109
|
+
if (index === undefined)
|
|
110
|
+
throw new MUSTNeverHappenException("Query said it does exists!!");
|
|
111
|
+
const accessLevel = group.__accessLevels?.[index];
|
|
112
|
+
if (accessLevel === undefined)
|
|
113
|
+
throw new MUSTNeverHappenException("Query said it does exists!!");
|
|
114
|
+
accessLevel.value = dbInstance.value;
|
|
115
|
+
};
|
|
116
|
+
const asyncs = [];
|
|
117
|
+
asyncs.push(...groups.map(async (group) => {
|
|
118
|
+
await GroupPermissionsDB.validateImpl(group);
|
|
119
|
+
await GroupPermissionsDB.assertUniqueness(transaction, group);
|
|
120
|
+
callbackfn(group);
|
|
121
|
+
}));
|
|
122
|
+
const upsertGroups = await transaction.upsertAll_Read(GroupPermissionsDB.collection, groups);
|
|
123
|
+
await Promise.all(asyncs);
|
|
124
|
+
// --- writes part
|
|
125
|
+
upsertGroups();
|
|
126
|
+
}
|
|
127
|
+
return returnWrite;
|
|
128
|
+
}
|
|
129
|
+
async assertDeletion(transaction, dbInstance) {
|
|
130
|
+
const groups = await GroupPermissionsDB.query({ where: { accessLevelIds: { $ac: dbInstance._id } } });
|
|
131
|
+
const apis = await ApiPermissionsDB.query({ where: { accessLevelIds: { $ac: dbInstance._id } } });
|
|
132
|
+
if (groups.length || apis.length)
|
|
133
|
+
throw new ApiException(403, 'You trying delete access level that associated with users/groups/apis, you need delete the associations first');
|
|
134
|
+
}
|
|
135
|
+
setUpdatedLevel(dbLevel, units) {
|
|
136
|
+
units.forEach(unit => {
|
|
137
|
+
let hasGroupDomainLevel = false;
|
|
138
|
+
const updatedLevels = unit.__accessLevels?.map(level => {
|
|
139
|
+
if (level.domainId === dbLevel.domainId) {
|
|
140
|
+
level.value = dbLevel.value;
|
|
141
|
+
hasGroupDomainLevel = true;
|
|
142
|
+
}
|
|
143
|
+
return level;
|
|
144
|
+
}) || [];
|
|
145
|
+
if (!hasGroupDomainLevel) {
|
|
146
|
+
updatedLevels.push({ domainId: dbLevel.domainId, value: dbLevel.value });
|
|
147
|
+
}
|
|
148
|
+
unit.__accessLevels = updatedLevels;
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
export class ApiDB_Class extends BaseDB_ApiGenerator {
|
|
153
|
+
static _validator = {
|
|
154
|
+
_id: validateOptionalId,
|
|
155
|
+
projectId: validateProjectId,
|
|
156
|
+
path: validateStringWithDashesAndSlash,
|
|
157
|
+
accessLevelIds: validateArray(validateUniqueId, false),
|
|
158
|
+
_audit: undefined,
|
|
159
|
+
deprecated: undefined,
|
|
160
|
+
onlyForApplication: undefined
|
|
161
|
+
};
|
|
162
|
+
constructor() {
|
|
163
|
+
super(CollectionName_Api, ApiDB_Class._validator, "api", "ApiDB");
|
|
164
|
+
this.setLockKeys(['projectId', "path"]);
|
|
165
|
+
}
|
|
166
|
+
externalFilter(item) {
|
|
167
|
+
const { projectId, path } = item;
|
|
168
|
+
return { projectId, path };
|
|
169
|
+
}
|
|
170
|
+
internalFilter(item) {
|
|
171
|
+
const { projectId, path } = item;
|
|
172
|
+
return [{ projectId, path }];
|
|
173
|
+
}
|
|
174
|
+
async preUpsertProcessing(transaction, dbInstance, request) {
|
|
175
|
+
if (request) {
|
|
176
|
+
const account = await AccountModule.validateSession(request, []);
|
|
177
|
+
dbInstance._audit = auditBy(account.email);
|
|
178
|
+
}
|
|
179
|
+
await ProjectPermissionsDB.queryUnique({ _id: dbInstance.projectId });
|
|
180
|
+
// need to assert that all the permissions levels exists in the db
|
|
181
|
+
const _permissionsIds = dbInstance.accessLevelIds;
|
|
182
|
+
if (!_permissionsIds || _permissionsIds.length <= 0)
|
|
183
|
+
return;
|
|
184
|
+
const permissionsIds = filterDuplicates(_permissionsIds);
|
|
185
|
+
await Promise.all(permissionsIds.map(id => AccessLevelPermissionsDB.queryUnique({ _id: id })));
|
|
186
|
+
dbInstance.accessLevelIds = permissionsIds;
|
|
187
|
+
}
|
|
188
|
+
registerApis(projectId, routes) {
|
|
189
|
+
return this.runInTransaction(async (transaction) => {
|
|
190
|
+
const existingProjectApis = await ApiPermissionsDB.query({ where: { projectId: projectId } });
|
|
191
|
+
const apisToAdd = routes
|
|
192
|
+
.filter(path => !existingProjectApis.find(api => api.path === path))
|
|
193
|
+
.map(path => ({ path, projectId: projectId }));
|
|
194
|
+
return this.upsertAll(apisToAdd, transaction);
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
apis(pathPart) {
|
|
198
|
+
return [
|
|
199
|
+
new ServerApi_Delete(this, pathPart),
|
|
200
|
+
new ServerApi_Query(this, pathPart),
|
|
201
|
+
new ServerApi_Unique(this, pathPart),
|
|
202
|
+
new ServerApi_Update(this, pathPart),
|
|
203
|
+
];
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
export const ProjectPermissionsDB = new ProjectDB_Class();
|
|
207
|
+
export const DomainPermissionsDB = new DomainDB_Class();
|
|
208
|
+
export const AccessLevelPermissionsDB = new LevelDB_Class();
|
|
209
|
+
export const ApiPermissionsDB = new ApiDB_Class();
|
|
210
|
+
//# sourceMappingURL=managment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managment.js","sourceRoot":"","sources":["../../../../src/main/app-backend/modules/db-types/managment.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Module, StringMap } from "@intuitionrobotics/ts-common";
|
|
2
|
-
import { ServerApi_Middleware } from "@intuitionrobotics/thunderstorm/backend";
|
|
3
|
-
import { Base_AccessLevels, DB_PermissionAccessLevel, DB_PermissionApi, DB_PermissionsGroup, DB_PermissionsUser, User_Group } from "
|
|
1
|
+
import { Module, type StringMap } from "@intuitionrobotics/ts-common";
|
|
2
|
+
import { type ServerApi_Middleware } from "@intuitionrobotics/thunderstorm/backend";
|
|
3
|
+
import { type Base_AccessLevels, type DB_PermissionAccessLevel, type DB_PermissionApi, type DB_PermissionsGroup, type DB_PermissionsUser, type User_Group } from "../../index.js";
|
|
4
4
|
export type UserCalculatedAccessLevel = {
|
|
5
5
|
[domainId: string]: number;
|
|
6
6
|
};
|
|
@@ -52,3 +52,4 @@ export declare class PermissionsAssert_Class extends Module<Config> {
|
|
|
52
52
|
}
|
|
53
53
|
export declare const PermissionsAssert: PermissionsAssert_Class;
|
|
54
54
|
export {};
|
|
55
|
+
//# sourceMappingURL=permissions-assert.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions-assert.d.ts","sourceRoot":"","sources":["../../../src/main/app-backend/modules/permissions-assert.ts"],"names":[],"mappings":"AAkBA,OAAO,EAKN,MAAM,EACN,KAAK,SAAS,EACd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAKN,KAAK,oBAAoB,EACzB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACN,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,MAAM,gBAAgB,CAAC;AAOxB,MAAM,MAAM,yBAAyB,GAAG;IAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AACvE,MAAM,MAAM,0BAA0B,GAAG;IAAE,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAAC,YAAY,EAAE,SAAS,EAAE,CAAA;CAAE,CAAC;AAC1G,MAAM,MAAM,wBAAwB,GAAG;IAAE,YAAY,EAAE,wBAAwB,EAAE,CAAC;IAAC,YAAY,EAAE,SAAS,EAAE,CAAA;CAAE,CAAC;AAE/G,KAAK,MAAM,GAAG;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,qBAAa,uBACZ,SAAQ,MAAM,CAAC,MAAM,CAAC;;IAMtB,QAAQ,CAAC,UAAU,GAAI,MAAM,MAAM,EAAE,KAAG,oBAAoB,CAS1D;IAEF,QAAQ,CAAC,gBAAgB,GAAI,MAAM,MAAM,EAAE,EAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,KAAG,oBAAoB,CAgCvI;IAEI,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,SAAS;IAU1G,0BAA0B,CAAC,UAAU,EAAE;QAAE,KAAK,EAAE,gBAAgB,CAAC;QAAC,kBAAkB,EAAE,wBAAwB,EAAE,CAAA;KAAE,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE;QAAE,IAAI,EAAE,kBAAkB,CAAC;QAAC,UAAU,EAAE,mBAAmB,EAAE,CAAA;KAAE,EAAE,kBAAkB,EAAE,SAAS;IAW5O,sBAAsB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU;IAQzE,yBAAyB,CAAC,UAAU,EAAE,mBAAmB,EAAE,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,EAAE,mBAAmB,EAAE,SAAS,EAAE;IAuBvI,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,kBAAkB,CAAC;QAAC,UAAU,EAAE,mBAAmB,EAAE,CAAA;KAAE,CAAC;IAW5G,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,oBAAoB;IAiBtB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;;;;IAW9C,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM;;;;YAoBxC,eAAe;IAU7B,oBAAoB,CAAC,SAAS,EAAE,0BAA0B,EAAE,WAAW,EAAE,wBAAwB;IAqBjG,OAAO,CAAC,iBAAiB;IAUzB,yBAAyB,CAAC,iBAAiB,EAAE,SAAS,EAAE,YAAK,EAAE,kBAAkB,EAAE,SAAS;IAY5F,OAAO,CAAC,wBAAwB;IAOhC,OAAO,CAAC,QAAQ;CAehB;AAED,eAAO,MAAM,iBAAiB,yBAAgC,CAAC"}
|