@etsoo/appscript 1.1.49 → 1.1.50
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/lib/cjs/app/CoreApp.d.ts +13 -0
- package/lib/cjs/app/CoreApp.js +18 -0
- package/lib/cjs/app/UserRole.d.ts +42 -0
- package/lib/cjs/app/UserRole.js +46 -0
- package/lib/cjs/index.d.ts +1 -0
- package/lib/cjs/index.js +1 -0
- package/lib/mjs/app/CoreApp.d.ts +13 -0
- package/lib/mjs/app/CoreApp.js +18 -0
- package/lib/mjs/app/UserRole.d.ts +42 -0
- package/lib/mjs/app/UserRole.js +43 -0
- package/lib/mjs/index.d.ts +1 -0
- package/lib/mjs/index.js +1 -0
- package/package.json +4 -4
- package/src/app/CoreApp.ts +27 -0
- package/src/app/UserRole.ts +50 -0
- package/src/index.ts +1 -0
package/lib/cjs/app/CoreApp.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import { AddressRegion } from '../address/AddressRegion';
|
|
|
5
5
|
import { IActionResult } from '../result/IActionResult';
|
|
6
6
|
import { IUserData } from '../state/User';
|
|
7
7
|
import { IAppSettings } from './AppSettings';
|
|
8
|
+
import { UserRole } from './UserRole';
|
|
8
9
|
/**
|
|
9
10
|
* Detect IP callback interface
|
|
10
11
|
*/
|
|
@@ -158,6 +159,12 @@ export interface ICoreApp<S extends IAppSettings, N, C extends NotificationCallP
|
|
|
158
159
|
* @returns Time zone
|
|
159
160
|
*/
|
|
160
161
|
getTimeZone(): string | undefined;
|
|
162
|
+
/**
|
|
163
|
+
* Check use has the specific role permission or not
|
|
164
|
+
* @param roles Roles to check
|
|
165
|
+
* @returns Result
|
|
166
|
+
*/
|
|
167
|
+
hasPermission(roles: number | UserRole | number[] | UserRole[]): boolean;
|
|
161
168
|
/**
|
|
162
169
|
* Callback where exit a page
|
|
163
170
|
*/
|
|
@@ -376,6 +383,12 @@ export declare abstract class CoreApp<S extends IAppSettings, N, C extends Notif
|
|
|
376
383
|
* @returns Time zone
|
|
377
384
|
*/
|
|
378
385
|
getTimeZone(): string | undefined;
|
|
386
|
+
/**
|
|
387
|
+
* Check use has the specific role permission or not
|
|
388
|
+
* @param roles Roles to check
|
|
389
|
+
* @returns Result
|
|
390
|
+
*/
|
|
391
|
+
hasPermission(roles: number | UserRole | number[] | UserRole[]): boolean;
|
|
379
392
|
/**
|
|
380
393
|
* Callback where exit a page
|
|
381
394
|
*/
|
package/lib/cjs/app/CoreApp.js
CHANGED
|
@@ -338,6 +338,24 @@ class CoreApp {
|
|
|
338
338
|
// settings.timeZone = Utils.getTimeZone()
|
|
339
339
|
return (_a = this.settings.timeZone) !== null && _a !== void 0 ? _a : (_b = this.ipData) === null || _b === void 0 ? void 0 : _b.timezone;
|
|
340
340
|
}
|
|
341
|
+
/**
|
|
342
|
+
* Check use has the specific role permission or not
|
|
343
|
+
* @param roles Roles to check
|
|
344
|
+
* @returns Result
|
|
345
|
+
*/
|
|
346
|
+
hasPermission(roles) {
|
|
347
|
+
var _a;
|
|
348
|
+
const userRole = (_a = this.userData) === null || _a === void 0 ? void 0 : _a.role;
|
|
349
|
+
if (userRole == null)
|
|
350
|
+
return false;
|
|
351
|
+
if (Array.isArray(roles)) {
|
|
352
|
+
return roles.some((role) => (userRole & role) === role);
|
|
353
|
+
}
|
|
354
|
+
// One role check
|
|
355
|
+
if ((userRole & roles) === roles)
|
|
356
|
+
return true;
|
|
357
|
+
return false;
|
|
358
|
+
}
|
|
341
359
|
/**
|
|
342
360
|
* Callback where exit a page
|
|
343
361
|
*/
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standard user roles
|
|
3
|
+
* @see com.etsoo.CoreFramework.Authentication.UserRole
|
|
4
|
+
*/
|
|
5
|
+
export declare enum UserRole {
|
|
6
|
+
/**
|
|
7
|
+
* Guest
|
|
8
|
+
*/
|
|
9
|
+
Guest = 1,
|
|
10
|
+
/**
|
|
11
|
+
* Outsourcing
|
|
12
|
+
*/
|
|
13
|
+
Outsourcing = 2,
|
|
14
|
+
/**
|
|
15
|
+
* Operator
|
|
16
|
+
*/
|
|
17
|
+
Operator = 4,
|
|
18
|
+
/**
|
|
19
|
+
* User
|
|
20
|
+
*/
|
|
21
|
+
User = 8,
|
|
22
|
+
/**
|
|
23
|
+
* Manager
|
|
24
|
+
*/
|
|
25
|
+
Manager = 128,
|
|
26
|
+
/**
|
|
27
|
+
* Finance
|
|
28
|
+
*/
|
|
29
|
+
Finance = 256,
|
|
30
|
+
/**
|
|
31
|
+
* HR Manager
|
|
32
|
+
*/
|
|
33
|
+
HRManager = 512,
|
|
34
|
+
/**
|
|
35
|
+
* Administrator
|
|
36
|
+
*/
|
|
37
|
+
Admin = 8192,
|
|
38
|
+
/**
|
|
39
|
+
* Founder, takes all ownership
|
|
40
|
+
*/
|
|
41
|
+
Founder = 16384
|
|
42
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UserRole = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Standard user roles
|
|
6
|
+
* @see com.etsoo.CoreFramework.Authentication.UserRole
|
|
7
|
+
*/
|
|
8
|
+
var UserRole;
|
|
9
|
+
(function (UserRole) {
|
|
10
|
+
/**
|
|
11
|
+
* Guest
|
|
12
|
+
*/
|
|
13
|
+
UserRole[UserRole["Guest"] = 1] = "Guest";
|
|
14
|
+
/**
|
|
15
|
+
* Outsourcing
|
|
16
|
+
*/
|
|
17
|
+
UserRole[UserRole["Outsourcing"] = 2] = "Outsourcing";
|
|
18
|
+
/**
|
|
19
|
+
* Operator
|
|
20
|
+
*/
|
|
21
|
+
UserRole[UserRole["Operator"] = 4] = "Operator";
|
|
22
|
+
/**
|
|
23
|
+
* User
|
|
24
|
+
*/
|
|
25
|
+
UserRole[UserRole["User"] = 8] = "User";
|
|
26
|
+
/**
|
|
27
|
+
* Manager
|
|
28
|
+
*/
|
|
29
|
+
UserRole[UserRole["Manager"] = 128] = "Manager";
|
|
30
|
+
/**
|
|
31
|
+
* Finance
|
|
32
|
+
*/
|
|
33
|
+
UserRole[UserRole["Finance"] = 256] = "Finance";
|
|
34
|
+
/**
|
|
35
|
+
* HR Manager
|
|
36
|
+
*/
|
|
37
|
+
UserRole[UserRole["HRManager"] = 512] = "HRManager";
|
|
38
|
+
/**
|
|
39
|
+
* Administrator
|
|
40
|
+
*/
|
|
41
|
+
UserRole[UserRole["Admin"] = 8192] = "Admin";
|
|
42
|
+
/**
|
|
43
|
+
* Founder, takes all ownership
|
|
44
|
+
*/
|
|
45
|
+
UserRole[UserRole["Founder"] = 16384] = "Founder";
|
|
46
|
+
})(UserRole = exports.UserRole || (exports.UserRole = {}));
|
package/lib/cjs/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export * from './address/AddressUtils';
|
|
|
4
4
|
export * from './app/AppSettings';
|
|
5
5
|
export * from './app/CoreApp';
|
|
6
6
|
export * from './app/ExternalSettings';
|
|
7
|
+
export * from './app/UserRole';
|
|
7
8
|
export * from './bridges/ElectronBridge';
|
|
8
9
|
export * from './bridges/IAppData';
|
|
9
10
|
export * from './bridges/IBridge';
|
package/lib/cjs/index.js
CHANGED
|
@@ -19,6 +19,7 @@ __exportStar(require("./address/AddressUtils"), exports);
|
|
|
19
19
|
__exportStar(require("./app/AppSettings"), exports);
|
|
20
20
|
__exportStar(require("./app/CoreApp"), exports);
|
|
21
21
|
__exportStar(require("./app/ExternalSettings"), exports);
|
|
22
|
+
__exportStar(require("./app/UserRole"), exports);
|
|
22
23
|
// bridges
|
|
23
24
|
__exportStar(require("./bridges/ElectronBridge"), exports);
|
|
24
25
|
__exportStar(require("./bridges/IAppData"), exports);
|
package/lib/mjs/app/CoreApp.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import { AddressRegion } from '../address/AddressRegion';
|
|
|
5
5
|
import { IActionResult } from '../result/IActionResult';
|
|
6
6
|
import { IUserData } from '../state/User';
|
|
7
7
|
import { IAppSettings } from './AppSettings';
|
|
8
|
+
import { UserRole } from './UserRole';
|
|
8
9
|
/**
|
|
9
10
|
* Detect IP callback interface
|
|
10
11
|
*/
|
|
@@ -158,6 +159,12 @@ export interface ICoreApp<S extends IAppSettings, N, C extends NotificationCallP
|
|
|
158
159
|
* @returns Time zone
|
|
159
160
|
*/
|
|
160
161
|
getTimeZone(): string | undefined;
|
|
162
|
+
/**
|
|
163
|
+
* Check use has the specific role permission or not
|
|
164
|
+
* @param roles Roles to check
|
|
165
|
+
* @returns Result
|
|
166
|
+
*/
|
|
167
|
+
hasPermission(roles: number | UserRole | number[] | UserRole[]): boolean;
|
|
161
168
|
/**
|
|
162
169
|
* Callback where exit a page
|
|
163
170
|
*/
|
|
@@ -376,6 +383,12 @@ export declare abstract class CoreApp<S extends IAppSettings, N, C extends Notif
|
|
|
376
383
|
* @returns Time zone
|
|
377
384
|
*/
|
|
378
385
|
getTimeZone(): string | undefined;
|
|
386
|
+
/**
|
|
387
|
+
* Check use has the specific role permission or not
|
|
388
|
+
* @param roles Roles to check
|
|
389
|
+
* @returns Result
|
|
390
|
+
*/
|
|
391
|
+
hasPermission(roles: number | UserRole | number[] | UserRole[]): boolean;
|
|
379
392
|
/**
|
|
380
393
|
* Callback where exit a page
|
|
381
394
|
*/
|
package/lib/mjs/app/CoreApp.js
CHANGED
|
@@ -335,6 +335,24 @@ export class CoreApp {
|
|
|
335
335
|
// settings.timeZone = Utils.getTimeZone()
|
|
336
336
|
return (_a = this.settings.timeZone) !== null && _a !== void 0 ? _a : (_b = this.ipData) === null || _b === void 0 ? void 0 : _b.timezone;
|
|
337
337
|
}
|
|
338
|
+
/**
|
|
339
|
+
* Check use has the specific role permission or not
|
|
340
|
+
* @param roles Roles to check
|
|
341
|
+
* @returns Result
|
|
342
|
+
*/
|
|
343
|
+
hasPermission(roles) {
|
|
344
|
+
var _a;
|
|
345
|
+
const userRole = (_a = this.userData) === null || _a === void 0 ? void 0 : _a.role;
|
|
346
|
+
if (userRole == null)
|
|
347
|
+
return false;
|
|
348
|
+
if (Array.isArray(roles)) {
|
|
349
|
+
return roles.some((role) => (userRole & role) === role);
|
|
350
|
+
}
|
|
351
|
+
// One role check
|
|
352
|
+
if ((userRole & roles) === roles)
|
|
353
|
+
return true;
|
|
354
|
+
return false;
|
|
355
|
+
}
|
|
338
356
|
/**
|
|
339
357
|
* Callback where exit a page
|
|
340
358
|
*/
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standard user roles
|
|
3
|
+
* @see com.etsoo.CoreFramework.Authentication.UserRole
|
|
4
|
+
*/
|
|
5
|
+
export declare enum UserRole {
|
|
6
|
+
/**
|
|
7
|
+
* Guest
|
|
8
|
+
*/
|
|
9
|
+
Guest = 1,
|
|
10
|
+
/**
|
|
11
|
+
* Outsourcing
|
|
12
|
+
*/
|
|
13
|
+
Outsourcing = 2,
|
|
14
|
+
/**
|
|
15
|
+
* Operator
|
|
16
|
+
*/
|
|
17
|
+
Operator = 4,
|
|
18
|
+
/**
|
|
19
|
+
* User
|
|
20
|
+
*/
|
|
21
|
+
User = 8,
|
|
22
|
+
/**
|
|
23
|
+
* Manager
|
|
24
|
+
*/
|
|
25
|
+
Manager = 128,
|
|
26
|
+
/**
|
|
27
|
+
* Finance
|
|
28
|
+
*/
|
|
29
|
+
Finance = 256,
|
|
30
|
+
/**
|
|
31
|
+
* HR Manager
|
|
32
|
+
*/
|
|
33
|
+
HRManager = 512,
|
|
34
|
+
/**
|
|
35
|
+
* Administrator
|
|
36
|
+
*/
|
|
37
|
+
Admin = 8192,
|
|
38
|
+
/**
|
|
39
|
+
* Founder, takes all ownership
|
|
40
|
+
*/
|
|
41
|
+
Founder = 16384
|
|
42
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standard user roles
|
|
3
|
+
* @see com.etsoo.CoreFramework.Authentication.UserRole
|
|
4
|
+
*/
|
|
5
|
+
export var UserRole;
|
|
6
|
+
(function (UserRole) {
|
|
7
|
+
/**
|
|
8
|
+
* Guest
|
|
9
|
+
*/
|
|
10
|
+
UserRole[UserRole["Guest"] = 1] = "Guest";
|
|
11
|
+
/**
|
|
12
|
+
* Outsourcing
|
|
13
|
+
*/
|
|
14
|
+
UserRole[UserRole["Outsourcing"] = 2] = "Outsourcing";
|
|
15
|
+
/**
|
|
16
|
+
* Operator
|
|
17
|
+
*/
|
|
18
|
+
UserRole[UserRole["Operator"] = 4] = "Operator";
|
|
19
|
+
/**
|
|
20
|
+
* User
|
|
21
|
+
*/
|
|
22
|
+
UserRole[UserRole["User"] = 8] = "User";
|
|
23
|
+
/**
|
|
24
|
+
* Manager
|
|
25
|
+
*/
|
|
26
|
+
UserRole[UserRole["Manager"] = 128] = "Manager";
|
|
27
|
+
/**
|
|
28
|
+
* Finance
|
|
29
|
+
*/
|
|
30
|
+
UserRole[UserRole["Finance"] = 256] = "Finance";
|
|
31
|
+
/**
|
|
32
|
+
* HR Manager
|
|
33
|
+
*/
|
|
34
|
+
UserRole[UserRole["HRManager"] = 512] = "HRManager";
|
|
35
|
+
/**
|
|
36
|
+
* Administrator
|
|
37
|
+
*/
|
|
38
|
+
UserRole[UserRole["Admin"] = 8192] = "Admin";
|
|
39
|
+
/**
|
|
40
|
+
* Founder, takes all ownership
|
|
41
|
+
*/
|
|
42
|
+
UserRole[UserRole["Founder"] = 16384] = "Founder";
|
|
43
|
+
})(UserRole || (UserRole = {}));
|
package/lib/mjs/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export * from './address/AddressUtils';
|
|
|
4
4
|
export * from './app/AppSettings';
|
|
5
5
|
export * from './app/CoreApp';
|
|
6
6
|
export * from './app/ExternalSettings';
|
|
7
|
+
export * from './app/UserRole';
|
|
7
8
|
export * from './bridges/ElectronBridge';
|
|
8
9
|
export * from './bridges/IAppData';
|
|
9
10
|
export * from './bridges/IBridge';
|
package/lib/mjs/index.js
CHANGED
|
@@ -6,6 +6,7 @@ export * from './address/AddressUtils';
|
|
|
6
6
|
export * from './app/AppSettings';
|
|
7
7
|
export * from './app/CoreApp';
|
|
8
8
|
export * from './app/ExternalSettings';
|
|
9
|
+
export * from './app/UserRole';
|
|
9
10
|
// bridges
|
|
10
11
|
export * from './bridges/ElectronBridge';
|
|
11
12
|
export * from './bridges/IAppData';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@etsoo/appscript",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.50",
|
|
4
4
|
"description": "Applications shared TypeScript framework",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"module": "lib/mjs/index.js",
|
|
@@ -63,12 +63,12 @@
|
|
|
63
63
|
"@babel/preset-env": "^7.16.4",
|
|
64
64
|
"@babel/runtime-corejs3": "^7.16.3",
|
|
65
65
|
"@types/jest": "^27.0.3",
|
|
66
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
|
67
|
-
"@typescript-eslint/parser": "^5.
|
|
66
|
+
"@typescript-eslint/eslint-plugin": "^5.5.0",
|
|
67
|
+
"@typescript-eslint/parser": "^5.5.0",
|
|
68
68
|
"eslint": "^8.3.0",
|
|
69
69
|
"eslint-config-airbnb-base": "^15.0.0",
|
|
70
70
|
"eslint-plugin-import": "^2.25.3",
|
|
71
|
-
"jest": "^27.
|
|
71
|
+
"jest": "^27.4.2",
|
|
72
72
|
"ts-jest": "^27.0.7",
|
|
73
73
|
"typescript": "^4.5.2"
|
|
74
74
|
}
|
package/src/app/CoreApp.ts
CHANGED
|
@@ -20,6 +20,7 @@ import { ActionResultError } from '../result/ActionResultError';
|
|
|
20
20
|
import { IActionResult } from '../result/IActionResult';
|
|
21
21
|
import { IUserData } from '../state/User';
|
|
22
22
|
import { IAppSettings } from './AppSettings';
|
|
23
|
+
import { UserRole } from './UserRole';
|
|
23
24
|
|
|
24
25
|
/**
|
|
25
26
|
* Detect IP callback interface
|
|
@@ -216,6 +217,13 @@ export interface ICoreApp<
|
|
|
216
217
|
*/
|
|
217
218
|
getTimeZone(): string | undefined;
|
|
218
219
|
|
|
220
|
+
/**
|
|
221
|
+
* Check use has the specific role permission or not
|
|
222
|
+
* @param roles Roles to check
|
|
223
|
+
* @returns Result
|
|
224
|
+
*/
|
|
225
|
+
hasPermission(roles: number | UserRole | number[] | UserRole[]): boolean;
|
|
226
|
+
|
|
219
227
|
/**
|
|
220
228
|
* Callback where exit a page
|
|
221
229
|
*/
|
|
@@ -727,6 +735,25 @@ export abstract class CoreApp<
|
|
|
727
735
|
return this.settings.timeZone ?? this.ipData?.timezone;
|
|
728
736
|
}
|
|
729
737
|
|
|
738
|
+
/**
|
|
739
|
+
* Check use has the specific role permission or not
|
|
740
|
+
* @param roles Roles to check
|
|
741
|
+
* @returns Result
|
|
742
|
+
*/
|
|
743
|
+
hasPermission(roles: number | UserRole | number[] | UserRole[]): boolean {
|
|
744
|
+
const userRole = this.userData?.role;
|
|
745
|
+
if (userRole == null) return false;
|
|
746
|
+
|
|
747
|
+
if (Array.isArray(roles)) {
|
|
748
|
+
return roles.some((role) => (userRole & role) === role);
|
|
749
|
+
}
|
|
750
|
+
|
|
751
|
+
// One role check
|
|
752
|
+
if ((userRole & roles) === roles) return true;
|
|
753
|
+
|
|
754
|
+
return false;
|
|
755
|
+
}
|
|
756
|
+
|
|
730
757
|
/**
|
|
731
758
|
* Callback where exit a page
|
|
732
759
|
*/
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standard user roles
|
|
3
|
+
* @see com.etsoo.CoreFramework.Authentication.UserRole
|
|
4
|
+
*/
|
|
5
|
+
export enum UserRole {
|
|
6
|
+
/**
|
|
7
|
+
* Guest
|
|
8
|
+
*/
|
|
9
|
+
Guest = 1,
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Outsourcing
|
|
13
|
+
*/
|
|
14
|
+
Outsourcing = 2,
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Operator
|
|
18
|
+
*/
|
|
19
|
+
Operator = 4,
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* User
|
|
23
|
+
*/
|
|
24
|
+
User = 8,
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Manager
|
|
28
|
+
*/
|
|
29
|
+
Manager = 128,
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Finance
|
|
33
|
+
*/
|
|
34
|
+
Finance = 256,
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* HR Manager
|
|
38
|
+
*/
|
|
39
|
+
HRManager = 512,
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Administrator
|
|
43
|
+
*/
|
|
44
|
+
Admin = 8192,
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Founder, takes all ownership
|
|
48
|
+
*/
|
|
49
|
+
Founder = 16384
|
|
50
|
+
}
|
package/src/index.ts
CHANGED