@hestia-earth/api 0.24.27 → 0.24.28
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.
|
@@ -174,7 +174,7 @@ export declare const isAuthorized: ({ authorizedUsers }: Partial<File>, user: Us
|
|
|
174
174
|
export declare const isAssigned: ({ assignedUsers }: Partial<File>, user: User) => boolean;
|
|
175
175
|
export declare const canRemove: (file: Partial<File>, user: User) => boolean;
|
|
176
176
|
export declare const validatedStatuses: FileStatus[];
|
|
177
|
-
export declare const canValidate: ({ status, isPrivate, archived }: Partial<File>, user:
|
|
177
|
+
export declare const canValidate: ({ status, isPrivate, archived }: Partial<File>, user: Pick<User, 'role'>) => boolean;
|
|
178
178
|
export declare const isValidated: ({ validatedAt, status }: Partial<File>) => boolean;
|
|
179
179
|
export declare const canSubmit: (file: Partial<File>, user: User) => boolean;
|
|
180
180
|
export declare const canFeedback: ({ status }: File) => boolean;
|
|
@@ -11,6 +11,15 @@ export declare enum UserRole {
|
|
|
11
11
|
Reviewer = "reviewer",
|
|
12
12
|
Admin = "admin"
|
|
13
13
|
}
|
|
14
|
+
export declare enum UserPermission {
|
|
15
|
+
aggregationsCreate = "aggregations-create",
|
|
16
|
+
aggregationsRead = "aggregations-read",
|
|
17
|
+
aggregationsDelete = "aggregations-delete",
|
|
18
|
+
reconciliationsCreate = "reconciliations-create",
|
|
19
|
+
reconciliationsRead = "reconciliations-view",
|
|
20
|
+
reconciliationsUpdate = "reconciliations-update",
|
|
21
|
+
reconciliationsDelete = "reconciliations-delete"
|
|
22
|
+
}
|
|
14
23
|
export declare class User extends BaseModel {
|
|
15
24
|
email: string;
|
|
16
25
|
firstName: string;
|
|
@@ -24,6 +33,7 @@ export declare class User extends BaseModel {
|
|
|
24
33
|
dataPrivate: boolean;
|
|
25
34
|
validFilesCount: number;
|
|
26
35
|
canCommitHestiaData: boolean;
|
|
36
|
+
permissions: UserPermission[];
|
|
27
37
|
emailNotificationsSuccess: boolean;
|
|
28
38
|
emailNotificationsFailure: boolean;
|
|
29
39
|
emailNotificationsFeedback: boolean;
|
|
@@ -44,9 +54,10 @@ export declare class User extends BaseModel {
|
|
|
44
54
|
readonly actorId?: string;
|
|
45
55
|
}
|
|
46
56
|
export declare const name: ({ firstName, lastName }: Partial<User>) => string;
|
|
47
|
-
export declare const isAdmin: (user?:
|
|
48
|
-
export declare const isReviewer: (user?:
|
|
49
|
-
export declare const isDeveloper: (user?:
|
|
57
|
+
export declare const isAdmin: (user?: Pick<User, 'role'>) => boolean;
|
|
58
|
+
export declare const isReviewer: (user?: Pick<User, 'role'>) => boolean;
|
|
59
|
+
export declare const isDeveloper: (user?: Pick<User, 'role'>) => boolean;
|
|
60
|
+
export declare const hasPermission: (permission: UserPermission, user?: Pick<User, 'role' | 'permissions'>) => boolean;
|
|
50
61
|
export declare const contains: (users: Partial<User>[], user: Partial<User>) => boolean;
|
|
51
62
|
export declare const actorId: (user: Partial<User>) => string;
|
|
52
63
|
export declare const userToActor: (user: Partial<User>, domain?: string) => Partial<IActorJSONLD>;
|
|
@@ -26,7 +26,7 @@ var __assign = (this && this.__assign) || function () {
|
|
|
26
26
|
return __assign.apply(this, arguments);
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.userToActor = exports.actorId = exports.contains = exports.isDeveloper = exports.isReviewer = exports.isAdmin = exports.name = exports.User = exports.UserRole = exports.MaxUploads = exports.defaultMaxApiCalls = void 0;
|
|
29
|
+
exports.userToActor = exports.actorId = exports.contains = exports.hasPermission = exports.isDeveloper = exports.isReviewer = exports.isAdmin = exports.name = exports.User = exports.UserPermission = exports.UserRole = exports.MaxUploads = exports.defaultMaxApiCalls = void 0;
|
|
30
30
|
var schema_1 = require("@hestia-earth/schema");
|
|
31
31
|
var model_base_1 = require("../../db/model.base");
|
|
32
32
|
exports.defaultMaxApiCalls = 100;
|
|
@@ -42,6 +42,16 @@ var UserRole;
|
|
|
42
42
|
UserRole["Reviewer"] = "reviewer";
|
|
43
43
|
UserRole["Admin"] = "admin";
|
|
44
44
|
})(UserRole = exports.UserRole || (exports.UserRole = {}));
|
|
45
|
+
var UserPermission;
|
|
46
|
+
(function (UserPermission) {
|
|
47
|
+
UserPermission["aggregationsCreate"] = "aggregations-create";
|
|
48
|
+
UserPermission["aggregationsRead"] = "aggregations-read";
|
|
49
|
+
UserPermission["aggregationsDelete"] = "aggregations-delete";
|
|
50
|
+
UserPermission["reconciliationsCreate"] = "reconciliations-create";
|
|
51
|
+
UserPermission["reconciliationsRead"] = "reconciliations-view";
|
|
52
|
+
UserPermission["reconciliationsUpdate"] = "reconciliations-update";
|
|
53
|
+
UserPermission["reconciliationsDelete"] = "reconciliations-delete";
|
|
54
|
+
})(UserPermission = exports.UserPermission || (exports.UserPermission = {}));
|
|
45
55
|
var User = (function (_super) {
|
|
46
56
|
__extends(User, _super);
|
|
47
57
|
function User() {
|
|
@@ -52,6 +62,7 @@ var User = (function (_super) {
|
|
|
52
62
|
_this.dataPrivate = false;
|
|
53
63
|
_this.validFilesCount = 0;
|
|
54
64
|
_this.canCommitHestiaData = false;
|
|
65
|
+
_this.permissions = [];
|
|
55
66
|
_this.emailNotificationsSuccess = false;
|
|
56
67
|
_this.emailNotificationsFailure = false;
|
|
57
68
|
_this.emailNotificationsFeedback = false;
|
|
@@ -74,6 +85,8 @@ var isDeveloper = function (user) {
|
|
|
74
85
|
return [UserRole.Developer, UserRole.Reviewer, UserRole.Admin].includes(user === null || user === void 0 ? void 0 : user.role);
|
|
75
86
|
};
|
|
76
87
|
exports.isDeveloper = isDeveloper;
|
|
88
|
+
var hasPermission = function (permission, user) { var _a; return (0, exports.isAdmin)(user) || ((_a = user === null || user === void 0 ? void 0 : user.permissions) !== null && _a !== void 0 ? _a : []).includes(permission); };
|
|
89
|
+
exports.hasPermission = hasPermission;
|
|
77
90
|
var contains = function (users, user) { return users.some(function (u) { return u.email === user.email; }); };
|
|
78
91
|
exports.contains = contains;
|
|
79
92
|
var actorId = function (user) { return "".concat((user._id || user.id).toString()); };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hestia-earth/api",
|
|
3
|
-
"version": "0.24.
|
|
3
|
+
"version": "0.24.28",
|
|
4
4
|
"description": "Hestia API definitions",
|
|
5
5
|
"main": "dist/models.js",
|
|
6
6
|
"typings": "dist/models.d.ts",
|
|
@@ -52,6 +52,7 @@
|
|
|
52
52
|
"@types/cors": "^2.8.12",
|
|
53
53
|
"@types/express": "4.17.6",
|
|
54
54
|
"@types/express-serve-static-core": "4.17.5",
|
|
55
|
+
"@types/jsonwebtoken": "^9.0.6",
|
|
55
56
|
"@types/lodash.get": "^4.4.6",
|
|
56
57
|
"@types/lodash.orderby": "^4.6.6",
|
|
57
58
|
"@types/lodash.pick": "^4.4.6",
|
|
@@ -86,6 +87,7 @@
|
|
|
86
87
|
"http2-express-bridge": "^1.0.7",
|
|
87
88
|
"husky": "^4.3.8",
|
|
88
89
|
"js-levenshtein": "^1.1.6",
|
|
90
|
+
"jsonwebtoken": "^9.0.2",
|
|
89
91
|
"lodash.get": "^4.4.2",
|
|
90
92
|
"lodash.orderby": "^4.6.0",
|
|
91
93
|
"lodash.pick": "^4.4.0",
|