@budibase/backend-core 2.8.30 → 2.8.31-alpha.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/dist/jest.config.js +10 -4
- package/dist/jest.config.js.map +1 -1
- package/dist/package.json +14 -26
- package/dist/src/auth/auth.js.map +1 -1
- package/dist/src/cache/appMetadata.d.ts +7 -1
- package/dist/src/cache/appMetadata.js +5 -8
- package/dist/src/cache/appMetadata.js.map +1 -1
- package/dist/src/cache/user.js.map +1 -1
- package/dist/src/constants/db.d.ts +1 -39
- package/dist/src/constants/db.js +8 -43
- package/dist/src/constants/db.js.map +1 -1
- package/dist/src/constants/misc.d.ts +2 -0
- package/dist/src/constants/misc.js +2 -0
- package/dist/src/constants/misc.js.map +1 -1
- package/dist/src/db/constants.d.ts +2 -0
- package/dist/src/db/constants.js +13 -0
- package/dist/src/db/constants.js.map +1 -0
- package/dist/src/db/couch/index.d.ts +1 -0
- package/dist/src/db/couch/index.js +1 -0
- package/dist/src/db/couch/index.js.map +1 -1
- package/dist/src/db/searchIndexes/searchIndexes.js.map +1 -1
- package/dist/src/db/utils.js +7 -2
- package/dist/src/db/utils.js.map +1 -1
- package/dist/src/db/views.d.ts +0 -1
- package/dist/src/db/views.js +1 -12
- package/dist/src/db/views.js.map +1 -1
- package/dist/src/environment.d.ts +11 -4
- package/dist/src/environment.js +21 -70
- package/dist/src/environment.js.map +1 -1
- package/dist/src/events/identification.js +3 -3
- package/dist/src/events/identification.js.map +1 -1
- package/dist/src/logging/index.d.ts +1 -1
- package/dist/src/logging/index.js +2 -3
- package/dist/src/logging/index.js.map +1 -1
- package/dist/src/logging/pino/logger.js +40 -24
- package/dist/src/logging/pino/logger.js.map +1 -1
- package/dist/src/logging/system.d.ts +9 -0
- package/dist/src/logging/system.js +101 -0
- package/dist/src/logging/system.js.map +1 -0
- package/dist/src/middleware/adminOnly.d.ts +2 -2
- package/dist/src/middleware/adminOnly.js +2 -2
- package/dist/src/middleware/adminOnly.js.map +1 -1
- package/dist/src/middleware/builderOnly.d.ts +2 -2
- package/dist/src/middleware/builderOnly.js +16 -2
- package/dist/src/middleware/builderOnly.js.map +1 -1
- package/dist/src/middleware/builderOrAdmin.d.ts +2 -2
- package/dist/src/middleware/builderOrAdmin.js +17 -4
- package/dist/src/middleware/builderOrAdmin.js.map +1 -1
- package/dist/src/security/permissions.d.ts +31 -18
- package/dist/src/security/permissions.js +46 -57
- package/dist/src/security/permissions.js.map +1 -1
- package/dist/src/security/roles.js +7 -4
- package/dist/src/security/roles.js.map +1 -1
- package/dist/src/users/db.d.ts +38 -0
- package/dist/src/users/db.js +407 -0
- package/dist/src/users/db.js.map +1 -0
- package/dist/src/users/events.d.ts +5 -0
- package/dist/src/users/events.js +169 -0
- package/dist/src/users/events.js.map +1 -0
- package/dist/src/users/index.d.ts +4 -0
- package/dist/src/users/index.js +23 -0
- package/dist/src/users/index.js.map +1 -0
- package/dist/src/users/lookup.d.ts +13 -0
- package/dist/src/users/lookup.js +112 -0
- package/dist/src/users/lookup.js.map +1 -0
- package/dist/src/{users.d.ts → users/users.d.ts} +4 -2
- package/dist/src/{users.js → users/users.js} +24 -4
- package/dist/src/users/users.js.map +1 -0
- package/dist/src/users/utils.d.ts +14 -0
- package/dist/src/users/utils.js +92 -0
- package/dist/src/users/utils.js.map +1 -0
- package/dist/tests/core/utilities/jestUtils.d.ts +7 -0
- package/dist/tests/core/utilities/jestUtils.js +14 -1
- package/dist/tests/core/utilities/jestUtils.js.map +1 -1
- package/dist/tests/core/utilities/mocks/events.d.ts +0 -1
- package/dist/tests/core/utilities/mocks/events.js +0 -1
- package/dist/tests/core/utilities/mocks/events.js.map +1 -1
- package/dist/tests/core/utilities/mocks/licenses.d.ts +1 -0
- package/dist/tests/core/utilities/mocks/licenses.js +8 -4
- package/dist/tests/core/utilities/mocks/licenses.js.map +1 -1
- package/dist/tests/core/utilities/structures/accounts.js +3 -3
- package/dist/tests/core/utilities/structures/accounts.js.map +1 -1
- package/dist/tests/core/utilities/structures/scim.js +1 -5
- package/dist/tests/core/utilities/structures/scim.js.map +1 -1
- package/dist/tests/core/utilities/structures/sso.js +2 -2
- package/dist/tests/core/utilities/structures/sso.js.map +1 -1
- package/dist/tests/core/utilities/structures/users.d.ts +3 -1
- package/dist/tests/core/utilities/structures/users.js +13 -1
- package/dist/tests/core/utilities/structures/users.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/jest.config.ts +1 -2
- package/package.json +14 -26
- package/scripts/test.sh +2 -2
- package/src/auth/auth.ts +1 -1
- package/src/cache/appMetadata.ts +10 -8
- package/src/cache/tests/writethrough.spec.ts +7 -7
- package/src/cache/user.ts +1 -1
- package/src/constants/db.ts +4 -42
- package/src/constants/misc.ts +2 -0
- package/src/db/constants.ts +10 -0
- package/src/db/couch/index.ts +1 -0
- package/src/db/searchIndexes/searchIndexes.ts +1 -1
- package/src/db/utils.ts +9 -3
- package/src/db/views.ts +0 -11
- package/src/environment.ts +24 -4
- package/src/events/identification.ts +3 -2
- package/src/logging/index.ts +1 -3
- package/src/logging/pino/logger.ts +45 -24
- package/src/logging/system.ts +81 -0
- package/src/logging/tests/system.spec.ts +61 -0
- package/src/middleware/adminOnly.ts +4 -6
- package/src/middleware/builderOnly.ts +15 -6
- package/src/middleware/builderOrAdmin.ts +16 -8
- package/src/middleware/tests/builder.spec.ts +180 -0
- package/src/security/permissions.ts +5 -21
- package/src/security/roles.ts +1 -1
- package/src/security/tests/permissions.spec.ts +1 -1
- package/src/users/db.ts +460 -0
- package/src/users/events.ts +176 -0
- package/src/users/index.ts +4 -0
- package/src/users/lookup.ts +102 -0
- package/src/{users.ts → users/users.ts} +33 -7
- package/src/users/utils.ts +55 -0
- package/tests/core/utilities/jestUtils.ts +21 -0
- package/tests/core/utilities/mocks/events.ts +0 -2
- package/tests/core/utilities/mocks/licenses.ts +7 -3
- package/tests/core/utilities/structures/accounts.ts +3 -5
- package/tests/core/utilities/structures/scim.ts +4 -5
- package/tests/core/utilities/structures/sso.ts +2 -2
- package/tests/core/utilities/structures/users.ts +19 -0
- package/tsconfig.json +2 -2
- package/dist/src/users.js.map +0 -1
|
@@ -1,28 +1,14 @@
|
|
|
1
|
+
import { PermissionType, PermissionLevel } from "@budibase/types";
|
|
2
|
+
export { PermissionType, PermissionLevel } from "@budibase/types";
|
|
1
3
|
export declare type RoleHierarchy = {
|
|
2
4
|
permissionId: string;
|
|
3
5
|
}[];
|
|
4
|
-
export declare enum PermissionLevel {
|
|
5
|
-
READ = "read",
|
|
6
|
-
WRITE = "write",
|
|
7
|
-
EXECUTE = "execute",
|
|
8
|
-
ADMIN = "admin"
|
|
9
|
-
}
|
|
10
|
-
export declare enum PermissionType {
|
|
11
|
-
APP = "app",
|
|
12
|
-
TABLE = "table",
|
|
13
|
-
USER = "user",
|
|
14
|
-
AUTOMATION = "automation",
|
|
15
|
-
WEBHOOK = "webhook",
|
|
16
|
-
BUILDER = "builder",
|
|
17
|
-
VIEW = "view",
|
|
18
|
-
QUERY = "query"
|
|
19
|
-
}
|
|
20
6
|
export declare class Permission {
|
|
21
7
|
type: PermissionType;
|
|
22
8
|
level: PermissionLevel;
|
|
23
9
|
constructor(type: PermissionType, level: PermissionLevel);
|
|
24
10
|
}
|
|
25
|
-
export declare function levelToNumber(perm: PermissionLevel):
|
|
11
|
+
export declare function levelToNumber(perm: PermissionLevel): 2 | 1 | 0 | -1 | 3;
|
|
26
12
|
/**
|
|
27
13
|
* Given the specified permission level for the user return the levels they are allowed to carry out.
|
|
28
14
|
* @param {string} userPermLevel The permission level of the user.
|
|
@@ -63,7 +49,33 @@ export declare const BUILTIN_PERMISSIONS: {
|
|
|
63
49
|
permissions: Permission[];
|
|
64
50
|
};
|
|
65
51
|
};
|
|
66
|
-
export declare function getBuiltinPermissions():
|
|
52
|
+
export declare function getBuiltinPermissions(): {
|
|
53
|
+
PUBLIC: {
|
|
54
|
+
_id: BuiltinPermissionID;
|
|
55
|
+
name: string;
|
|
56
|
+
permissions: Permission[];
|
|
57
|
+
};
|
|
58
|
+
READ_ONLY: {
|
|
59
|
+
_id: BuiltinPermissionID;
|
|
60
|
+
name: string;
|
|
61
|
+
permissions: Permission[];
|
|
62
|
+
};
|
|
63
|
+
WRITE: {
|
|
64
|
+
_id: BuiltinPermissionID;
|
|
65
|
+
name: string;
|
|
66
|
+
permissions: Permission[];
|
|
67
|
+
};
|
|
68
|
+
POWER: {
|
|
69
|
+
_id: BuiltinPermissionID;
|
|
70
|
+
name: string;
|
|
71
|
+
permissions: Permission[];
|
|
72
|
+
};
|
|
73
|
+
ADMIN: {
|
|
74
|
+
_id: BuiltinPermissionID;
|
|
75
|
+
name: string;
|
|
76
|
+
permissions: Permission[];
|
|
77
|
+
};
|
|
78
|
+
};
|
|
67
79
|
export declare function getBuiltinPermissionByID(id: string): {
|
|
68
80
|
_id: BuiltinPermissionID;
|
|
69
81
|
name: string;
|
|
@@ -88,3 +100,4 @@ export declare function getBuiltinPermissionByID(id: string): {
|
|
|
88
100
|
export declare function doesHaveBasePermission(permType: PermissionType, permLevel: PermissionLevel, rolesHierarchy: RoleHierarchy): boolean;
|
|
89
101
|
export declare function isPermissionLevelHigherThanRead(level: PermissionLevel): boolean;
|
|
90
102
|
export declare const BUILDER = PermissionType.BUILDER;
|
|
103
|
+
export declare const GLOBAL_BUILDER = PermissionType.GLOBAL_BUILDER;
|
|
@@ -1,27 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BUILDER = exports.isPermissionLevelHigherThanRead = exports.doesHaveBasePermission = exports.getBuiltinPermissionByID = exports.getBuiltinPermissions = exports.BUILTIN_PERMISSIONS = exports.BuiltinPermissionID = exports.getAllowedLevels = exports.levelToNumber = exports.Permission = exports.
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
(function (
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
PermissionLevel["EXECUTE"] = "execute";
|
|
11
|
-
PermissionLevel["ADMIN"] = "admin";
|
|
12
|
-
})(PermissionLevel = exports.PermissionLevel || (exports.PermissionLevel = {}));
|
|
13
|
-
// these are the global types, that govern the underlying default behaviour
|
|
14
|
-
var PermissionType;
|
|
15
|
-
(function (PermissionType) {
|
|
16
|
-
PermissionType["APP"] = "app";
|
|
17
|
-
PermissionType["TABLE"] = "table";
|
|
18
|
-
PermissionType["USER"] = "user";
|
|
19
|
-
PermissionType["AUTOMATION"] = "automation";
|
|
20
|
-
PermissionType["WEBHOOK"] = "webhook";
|
|
21
|
-
PermissionType["BUILDER"] = "builder";
|
|
22
|
-
PermissionType["VIEW"] = "view";
|
|
23
|
-
PermissionType["QUERY"] = "query";
|
|
24
|
-
})(PermissionType = exports.PermissionType || (exports.PermissionType = {}));
|
|
6
|
+
exports.GLOBAL_BUILDER = exports.BUILDER = exports.isPermissionLevelHigherThanRead = exports.doesHaveBasePermission = exports.getBuiltinPermissionByID = exports.getBuiltinPermissions = exports.BUILTIN_PERMISSIONS = exports.BuiltinPermissionID = exports.getAllowedLevels = exports.levelToNumber = exports.Permission = exports.PermissionLevel = exports.PermissionType = void 0;
|
|
7
|
+
const types_1 = require("@budibase/types");
|
|
8
|
+
var types_2 = require("@budibase/types");
|
|
9
|
+
Object.defineProperty(exports, "PermissionType", { enumerable: true, get: function () { return types_2.PermissionType; } });
|
|
10
|
+
Object.defineProperty(exports, "PermissionLevel", { enumerable: true, get: function () { return types_2.PermissionLevel; } });
|
|
11
|
+
const flatten_1 = __importDefault(require("lodash/flatten"));
|
|
12
|
+
const cloneDeep_1 = __importDefault(require("lodash/fp/cloneDeep"));
|
|
25
13
|
class Permission {
|
|
26
14
|
constructor(type, level) {
|
|
27
15
|
this.type = type;
|
|
@@ -32,13 +20,13 @@ exports.Permission = Permission;
|
|
|
32
20
|
function levelToNumber(perm) {
|
|
33
21
|
switch (perm) {
|
|
34
22
|
// not everything has execute privileges
|
|
35
|
-
case PermissionLevel.EXECUTE:
|
|
23
|
+
case types_1.PermissionLevel.EXECUTE:
|
|
36
24
|
return 0;
|
|
37
|
-
case PermissionLevel.READ:
|
|
25
|
+
case types_1.PermissionLevel.READ:
|
|
38
26
|
return 1;
|
|
39
|
-
case PermissionLevel.WRITE:
|
|
27
|
+
case types_1.PermissionLevel.WRITE:
|
|
40
28
|
return 2;
|
|
41
|
-
case PermissionLevel.ADMIN:
|
|
29
|
+
case types_1.PermissionLevel.ADMIN:
|
|
42
30
|
return 3;
|
|
43
31
|
default:
|
|
44
32
|
return -1;
|
|
@@ -52,16 +40,16 @@ exports.levelToNumber = levelToNumber;
|
|
|
52
40
|
*/
|
|
53
41
|
function getAllowedLevels(userPermLevel) {
|
|
54
42
|
switch (userPermLevel) {
|
|
55
|
-
case PermissionLevel.EXECUTE:
|
|
56
|
-
return [PermissionLevel.EXECUTE];
|
|
57
|
-
case PermissionLevel.READ:
|
|
58
|
-
return [PermissionLevel.EXECUTE, PermissionLevel.READ];
|
|
59
|
-
case PermissionLevel.WRITE:
|
|
60
|
-
case PermissionLevel.ADMIN:
|
|
43
|
+
case types_1.PermissionLevel.EXECUTE:
|
|
44
|
+
return [types_1.PermissionLevel.EXECUTE];
|
|
45
|
+
case types_1.PermissionLevel.READ:
|
|
46
|
+
return [types_1.PermissionLevel.EXECUTE, types_1.PermissionLevel.READ];
|
|
47
|
+
case types_1.PermissionLevel.WRITE:
|
|
48
|
+
case types_1.PermissionLevel.ADMIN:
|
|
61
49
|
return [
|
|
62
|
-
PermissionLevel.EXECUTE,
|
|
63
|
-
PermissionLevel.READ,
|
|
64
|
-
PermissionLevel.WRITE,
|
|
50
|
+
types_1.PermissionLevel.EXECUTE,
|
|
51
|
+
types_1.PermissionLevel.READ,
|
|
52
|
+
types_1.PermissionLevel.WRITE,
|
|
65
53
|
];
|
|
66
54
|
default:
|
|
67
55
|
return [];
|
|
@@ -81,54 +69,54 @@ exports.BUILTIN_PERMISSIONS = {
|
|
|
81
69
|
_id: BuiltinPermissionID.PUBLIC,
|
|
82
70
|
name: "Public",
|
|
83
71
|
permissions: [
|
|
84
|
-
new Permission(PermissionType.WEBHOOK, PermissionLevel.EXECUTE),
|
|
72
|
+
new Permission(types_1.PermissionType.WEBHOOK, types_1.PermissionLevel.EXECUTE),
|
|
85
73
|
],
|
|
86
74
|
},
|
|
87
75
|
READ_ONLY: {
|
|
88
76
|
_id: BuiltinPermissionID.READ_ONLY,
|
|
89
77
|
name: "Read only",
|
|
90
78
|
permissions: [
|
|
91
|
-
new Permission(PermissionType.QUERY, PermissionLevel.READ),
|
|
92
|
-
new Permission(PermissionType.TABLE, PermissionLevel.READ),
|
|
93
|
-
new Permission(PermissionType.VIEW, PermissionLevel.READ),
|
|
79
|
+
new Permission(types_1.PermissionType.QUERY, types_1.PermissionLevel.READ),
|
|
80
|
+
new Permission(types_1.PermissionType.TABLE, types_1.PermissionLevel.READ),
|
|
81
|
+
new Permission(types_1.PermissionType.VIEW, types_1.PermissionLevel.READ),
|
|
94
82
|
],
|
|
95
83
|
},
|
|
96
84
|
WRITE: {
|
|
97
85
|
_id: BuiltinPermissionID.WRITE,
|
|
98
86
|
name: "Read/Write",
|
|
99
87
|
permissions: [
|
|
100
|
-
new Permission(PermissionType.QUERY, PermissionLevel.WRITE),
|
|
101
|
-
new Permission(PermissionType.TABLE, PermissionLevel.WRITE),
|
|
102
|
-
new Permission(PermissionType.VIEW, PermissionLevel.READ),
|
|
103
|
-
new Permission(PermissionType.AUTOMATION, PermissionLevel.EXECUTE),
|
|
88
|
+
new Permission(types_1.PermissionType.QUERY, types_1.PermissionLevel.WRITE),
|
|
89
|
+
new Permission(types_1.PermissionType.TABLE, types_1.PermissionLevel.WRITE),
|
|
90
|
+
new Permission(types_1.PermissionType.VIEW, types_1.PermissionLevel.READ),
|
|
91
|
+
new Permission(types_1.PermissionType.AUTOMATION, types_1.PermissionLevel.EXECUTE),
|
|
104
92
|
],
|
|
105
93
|
},
|
|
106
94
|
POWER: {
|
|
107
95
|
_id: BuiltinPermissionID.POWER,
|
|
108
96
|
name: "Power",
|
|
109
97
|
permissions: [
|
|
110
|
-
new Permission(PermissionType.TABLE, PermissionLevel.WRITE),
|
|
111
|
-
new Permission(PermissionType.USER, PermissionLevel.READ),
|
|
112
|
-
new Permission(PermissionType.AUTOMATION, PermissionLevel.EXECUTE),
|
|
113
|
-
new Permission(PermissionType.VIEW, PermissionLevel.READ),
|
|
114
|
-
new Permission(PermissionType.WEBHOOK, PermissionLevel.READ),
|
|
98
|
+
new Permission(types_1.PermissionType.TABLE, types_1.PermissionLevel.WRITE),
|
|
99
|
+
new Permission(types_1.PermissionType.USER, types_1.PermissionLevel.READ),
|
|
100
|
+
new Permission(types_1.PermissionType.AUTOMATION, types_1.PermissionLevel.EXECUTE),
|
|
101
|
+
new Permission(types_1.PermissionType.VIEW, types_1.PermissionLevel.READ),
|
|
102
|
+
new Permission(types_1.PermissionType.WEBHOOK, types_1.PermissionLevel.READ),
|
|
115
103
|
],
|
|
116
104
|
},
|
|
117
105
|
ADMIN: {
|
|
118
106
|
_id: BuiltinPermissionID.ADMIN,
|
|
119
107
|
name: "Admin",
|
|
120
108
|
permissions: [
|
|
121
|
-
new Permission(PermissionType.TABLE, PermissionLevel.ADMIN),
|
|
122
|
-
new Permission(PermissionType.USER, PermissionLevel.ADMIN),
|
|
123
|
-
new Permission(PermissionType.AUTOMATION, PermissionLevel.ADMIN),
|
|
124
|
-
new Permission(PermissionType.VIEW, PermissionLevel.ADMIN),
|
|
125
|
-
new Permission(PermissionType.WEBHOOK, PermissionLevel.READ),
|
|
126
|
-
new Permission(PermissionType.QUERY, PermissionLevel.ADMIN),
|
|
109
|
+
new Permission(types_1.PermissionType.TABLE, types_1.PermissionLevel.ADMIN),
|
|
110
|
+
new Permission(types_1.PermissionType.USER, types_1.PermissionLevel.ADMIN),
|
|
111
|
+
new Permission(types_1.PermissionType.AUTOMATION, types_1.PermissionLevel.ADMIN),
|
|
112
|
+
new Permission(types_1.PermissionType.VIEW, types_1.PermissionLevel.ADMIN),
|
|
113
|
+
new Permission(types_1.PermissionType.WEBHOOK, types_1.PermissionLevel.READ),
|
|
114
|
+
new Permission(types_1.PermissionType.QUERY, types_1.PermissionLevel.ADMIN),
|
|
127
115
|
],
|
|
128
116
|
},
|
|
129
117
|
};
|
|
130
118
|
function getBuiltinPermissions() {
|
|
131
|
-
return
|
|
119
|
+
return (0, cloneDeep_1.default)(exports.BUILTIN_PERMISSIONS);
|
|
132
120
|
}
|
|
133
121
|
exports.getBuiltinPermissions = getBuiltinPermissions;
|
|
134
122
|
function getBuiltinPermissionByID(id) {
|
|
@@ -141,7 +129,7 @@ function doesHaveBasePermission(permType, permLevel, rolesHierarchy) {
|
|
|
141
129
|
...new Set(rolesHierarchy.map(role => role.permissionId)),
|
|
142
130
|
];
|
|
143
131
|
const builtins = Object.values(exports.BUILTIN_PERMISSIONS);
|
|
144
|
-
let permissions =
|
|
132
|
+
let permissions = (0, flatten_1.default)(builtins
|
|
145
133
|
.filter(builtin => basePermissions.indexOf(builtin._id) !== -1)
|
|
146
134
|
.map(builtin => builtin.permissions));
|
|
147
135
|
for (let permission of permissions) {
|
|
@@ -158,5 +146,6 @@ function isPermissionLevelHigherThanRead(level) {
|
|
|
158
146
|
}
|
|
159
147
|
exports.isPermissionLevelHigherThanRead = isPermissionLevelHigherThanRead;
|
|
160
148
|
// utility as a lot of things need simply the builder permission
|
|
161
|
-
exports.BUILDER = PermissionType.BUILDER;
|
|
149
|
+
exports.BUILDER = types_1.PermissionType.BUILDER;
|
|
150
|
+
exports.GLOBAL_BUILDER = types_1.PermissionType.GLOBAL_BUILDER;
|
|
162
151
|
//# sourceMappingURL=permissions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/security/permissions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/security/permissions.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,13 +8,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
15
|
exports.getExternalRoleID = exports.getDBRoleID = exports.AccessController = exports.getRequiredResourceRole = exports.getAllRoles = exports.checkForRoleResourceArray = exports.getUserRoleHierarchy = exports.getRole = exports.lowerBuiltinRoleID = exports.roleToNumber = exports.builtinRoleToNumber = exports.isBuiltin = exports.BUILTIN_ROLE_NAME_ARRAY = exports.BUILTIN_ROLE_ID_ARRAY = exports.getBuiltinRoles = exports.Role = exports.RoleIDVersion = exports.BUILTIN_ROLE_IDS = void 0;
|
|
13
16
|
const permissions_1 = require("./permissions");
|
|
14
17
|
const db_1 = require("../db");
|
|
15
18
|
const context_1 = require("../context");
|
|
16
19
|
const db_2 = require("../db");
|
|
17
|
-
const
|
|
20
|
+
const cloneDeep_1 = __importDefault(require("lodash/fp/cloneDeep"));
|
|
18
21
|
exports.BUILTIN_ROLE_IDS = {
|
|
19
22
|
ADMIN: "ADMIN",
|
|
20
23
|
POWER: "POWER",
|
|
@@ -58,7 +61,7 @@ const BUILTIN_ROLES = {
|
|
|
58
61
|
BUILDER: new Role(BUILTIN_IDS.BUILDER, "Builder", permissions_1.BuiltinPermissionID.ADMIN),
|
|
59
62
|
};
|
|
60
63
|
function getBuiltinRoles() {
|
|
61
|
-
return
|
|
64
|
+
return (0, cloneDeep_1.default)(BUILTIN_ROLES);
|
|
62
65
|
}
|
|
63
66
|
exports.getBuiltinRoles = getBuiltinRoles;
|
|
64
67
|
exports.BUILTIN_ROLE_ID_ARRAY = Object.values(BUILTIN_ROLES).map(role => role._id);
|
|
@@ -139,7 +142,7 @@ function getRole(roleId, opts) {
|
|
|
139
142
|
// built in roles mostly come from the in-code implementation,
|
|
140
143
|
// but can be extended by a doc stored about them (e.g. permissions)
|
|
141
144
|
if (isBuiltin(roleId)) {
|
|
142
|
-
role =
|
|
145
|
+
role = (0, cloneDeep_1.default)(Object.values(BUILTIN_ROLES).find(role => role._id === roleId));
|
|
143
146
|
}
|
|
144
147
|
else {
|
|
145
148
|
// make sure has the prefix (if it has it then it won't be added)
|
|
@@ -154,7 +157,7 @@ function getRole(roleId, opts) {
|
|
|
154
157
|
}
|
|
155
158
|
catch (err) {
|
|
156
159
|
if (!isBuiltin(roleId) && (opts === null || opts === void 0 ? void 0 : opts.defaultPublic)) {
|
|
157
|
-
return
|
|
160
|
+
return (0, cloneDeep_1.default)(BUILTIN_ROLES.PUBLIC);
|
|
158
161
|
}
|
|
159
162
|
// only throw an error if there is no role at all
|
|
160
163
|
if (Object.keys(role).length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roles.js","sourceRoot":"","sources":["../../../src/security/roles.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"roles.js","sourceRoot":"","sources":["../../../src/security/roles.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { BulkUserCreated, BulkUserDeleted, SaveUserOpts, User, Account } from "@budibase/types";
|
|
2
|
+
declare type QuotaUpdateFn = (change: number, cb?: () => Promise<any>) => Promise<any>;
|
|
3
|
+
declare type GroupUpdateFn = (groupId: string, userIds: string[]) => Promise<any>;
|
|
4
|
+
declare type FeatureFn = () => Promise<Boolean>;
|
|
5
|
+
declare type QuotaFns = {
|
|
6
|
+
addUsers: QuotaUpdateFn;
|
|
7
|
+
removeUsers: QuotaUpdateFn;
|
|
8
|
+
};
|
|
9
|
+
declare type GroupFns = {
|
|
10
|
+
addUsers: GroupUpdateFn;
|
|
11
|
+
};
|
|
12
|
+
declare type FeatureFns = {
|
|
13
|
+
isSSOEnforced: FeatureFn;
|
|
14
|
+
isAppBuildersEnabled: FeatureFn;
|
|
15
|
+
};
|
|
16
|
+
export declare class UserDB {
|
|
17
|
+
static quotas: QuotaFns;
|
|
18
|
+
static groups: GroupFns;
|
|
19
|
+
static features: FeatureFns;
|
|
20
|
+
static init(quotaFns: QuotaFns, groupFns: GroupFns, featureFns: FeatureFns): void;
|
|
21
|
+
static isPreventPasswordActions(user: User, account?: Account): Promise<boolean>;
|
|
22
|
+
static buildUser(user: User, opts: SaveUserOpts | undefined, tenantId: string, dbUser?: any, account?: Account): Promise<User>;
|
|
23
|
+
static allUsers(): Promise<any[]>;
|
|
24
|
+
static countUsersByApp(appId: string): Promise<{
|
|
25
|
+
userCount: any;
|
|
26
|
+
}>;
|
|
27
|
+
static getUsersByAppAccess(appId?: string): Promise<User[]>;
|
|
28
|
+
static getUserByEmail(email: string): Promise<User | undefined>;
|
|
29
|
+
/**
|
|
30
|
+
* Gets a user by ID from the global database, based on the current tenancy.
|
|
31
|
+
*/
|
|
32
|
+
static getUser(userId: string): Promise<User>;
|
|
33
|
+
static save(user: User, opts?: SaveUserOpts): Promise<User>;
|
|
34
|
+
static bulkCreate(newUsersRequested: User[], groups: string[]): Promise<BulkUserCreated>;
|
|
35
|
+
static bulkDelete(userIds: string[]): Promise<BulkUserDeleted>;
|
|
36
|
+
static destroy(id: string): Promise<void>;
|
|
37
|
+
}
|
|
38
|
+
export {};
|