@etsoo/appscript 1.6.38 → 1.6.40

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.
@@ -25,6 +25,8 @@ await ExtendUtils.sleep(50);
25
25
  // Then change the culture to the first one (here is 'zh-CN')
26
26
  await app.changeCulture(app.settings.cultures[0]);
27
27
 
28
+ await ExtendUtils.sleep(50);
29
+
28
30
  test("Test for domain substitution", () => {
29
31
  expect(app.settings.endpoint).toBe("http://admin.etsoo.com:9000/api/");
30
32
 
@@ -157,7 +159,7 @@ test("Tests for getRoleLabel", () => {
157
159
  test("Tests for getRoles", () => {
158
160
  const roles = app.getRoles(UserRole.User | UserRole.Manager | UserRole.Admin);
159
161
  expect(roles.length).toBe(3);
160
- expect(roles.map((r) => r.id)).toEqual([16, 128, 8192]);
162
+ expect(roles.map((r) => r.id)).toEqual([16, 64, 8192]);
161
163
  });
162
164
 
163
165
  test("Tests for getStatusList", () => {
@@ -596,20 +596,30 @@ export declare abstract class CoreApp<U extends IUser, S extends IAppSettings, N
596
596
  */
597
597
  hasPermission(roles: number | UserRole | number[] | UserRole[]): boolean;
598
598
  /**
599
- * Is admin user
599
+ * Is admin roles
600
600
  * @returns Result
601
601
  */
602
602
  isAdminUser(): boolean;
603
603
  /**
604
- * Is Finance user
604
+ * Is Finance roles
605
605
  * @returns Result
606
606
  */
607
607
  isFinanceUser(): boolean;
608
608
  /**
609
- * Is Manager user
609
+ * Is HR manager roles
610
+ * @returns Result
611
+ */
612
+ isHRUser(): boolean;
613
+ /**
614
+ * Is Manager roles, exclude API user from frontend
610
615
  * @returns Result
611
616
  */
612
617
  isManagerUser(): boolean;
618
+ /**
619
+ * Is user roles
620
+ * @returns Result
621
+ */
622
+ isUser(): boolean;
613
623
  /**
614
624
  * Load URL
615
625
  * @param url URL
@@ -1236,6 +1236,8 @@ class CoreApp {
1236
1236
  if (typeof id !== "number")
1237
1237
  return;
1238
1238
  const key = shared_1.DataTypes.getEnumKey(em, id);
1239
+ if (key == null)
1240
+ return;
1239
1241
  const label = this.get(getKey(key)) ?? key;
1240
1242
  list.push({ id, label });
1241
1243
  });
@@ -1416,25 +1418,48 @@ class CoreApp {
1416
1418
  return false;
1417
1419
  }
1418
1420
  /**
1419
- * Is admin user
1421
+ * Is admin roles
1420
1422
  * @returns Result
1421
1423
  */
1422
1424
  isAdminUser() {
1423
- return this.hasMinPermission(UserRole_1.UserRole.Admin);
1425
+ return this.hasPermission([
1426
+ UserRole_1.UserRole.Executive,
1427
+ UserRole_1.UserRole.Admin,
1428
+ UserRole_1.UserRole.Founder
1429
+ ]);
1424
1430
  }
1425
1431
  /**
1426
- * Is Finance user
1432
+ * Is Finance roles
1427
1433
  * @returns Result
1428
1434
  */
1429
1435
  isFinanceUser() {
1430
1436
  return this.hasPermission(UserRole_1.UserRole.Finance) || this.isAdminUser();
1431
1437
  }
1432
1438
  /**
1433
- * Is Manager user
1439
+ * Is HR manager roles
1440
+ * @returns Result
1441
+ */
1442
+ isHRUser() {
1443
+ return this.hasPermission(UserRole_1.UserRole.HRManager) || this.isAdminUser();
1444
+ }
1445
+ /**
1446
+ * Is Manager roles, exclude API user from frontend
1434
1447
  * @returns Result
1435
1448
  */
1436
1449
  isManagerUser() {
1437
- return this.hasMinPermission(UserRole_1.UserRole.Manager);
1450
+ return (this.hasPermission([
1451
+ UserRole_1.UserRole.Manager,
1452
+ UserRole_1.UserRole.HRManager,
1453
+ UserRole_1.UserRole.Director
1454
+ ]) || this.isFinanceUser());
1455
+ }
1456
+ /**
1457
+ * Is user roles
1458
+ * @returns Result
1459
+ */
1460
+ isUser() {
1461
+ return (this.hasPermission([UserRole_1.UserRole.User, UserRole_1.UserRole.Leader]) ||
1462
+ this.isManagerUser());
1438
1463
  }
1439
1464
  /**
1440
1465
  * Load URL
@@ -532,20 +532,30 @@ export interface IApp {
532
532
  */
533
533
  initCall(callback?: (result: boolean) => void, resetKeys?: boolean): Promise<void>;
534
534
  /**
535
- * Is admin user
535
+ * Is admin roles
536
536
  * @returns Result
537
537
  */
538
538
  isAdminUser(): boolean;
539
539
  /**
540
- * Is Finance user
540
+ * Is Finance roles
541
541
  * @returns Result
542
542
  */
543
543
  isFinanceUser(): boolean;
544
544
  /**
545
- * Is Manager user
545
+ * Is HR manager roles
546
+ * @returns Result
547
+ */
548
+ isHRUser(): boolean;
549
+ /**
550
+ * Is Manager roles
546
551
  * @returns Result
547
552
  */
548
553
  isManagerUser(): boolean;
554
+ /**
555
+ * Is user roles
556
+ * @returns Result
557
+ */
558
+ isUser(): boolean;
549
559
  /**
550
560
  * Is valid password, override to implement custom check
551
561
  * @param password Input password
@@ -8,11 +8,6 @@ export declare enum UserRole {
8
8
  * 访客
9
9
  */
10
10
  Guest = 1,
11
- /**
12
- * Outsourcing
13
- * 外包
14
- */
15
- Outsourcing = 2,
16
11
  /**
17
12
  * Operator
18
13
  * 操作员
@@ -32,27 +27,32 @@ export declare enum UserRole {
32
27
  * Team leader
33
28
  * 团队负责人
34
29
  */
35
- Leader = 64,
30
+ Leader = 32,
36
31
  /**
37
32
  * Manager
38
33
  * 经理
39
34
  */
40
- Manager = 128,
35
+ Manager = 64,
36
+ /**
37
+ * HR Manager
38
+ * 人事经理
39
+ */
40
+ HRManager = 128,
41
41
  /**
42
42
  * Finance
43
43
  * 财务
44
44
  */
45
45
  Finance = 256,
46
46
  /**
47
- * Executives
48
- * 高管
47
+ * Director
48
+ * 总监
49
49
  */
50
- Executive = 512,
50
+ Director = 512,
51
51
  /**
52
- * Shareholder
53
- * 股东
52
+ * Executives
53
+ * 高管
54
54
  */
55
- Shareholder = 1024,
55
+ Executive = 1024,
56
56
  /**
57
57
  * API
58
58
  * 接口
@@ -12,11 +12,6 @@ var UserRole;
12
12
  * 访客
13
13
  */
14
14
  UserRole[UserRole["Guest"] = 1] = "Guest";
15
- /**
16
- * Outsourcing
17
- * 外包
18
- */
19
- UserRole[UserRole["Outsourcing"] = 2] = "Outsourcing";
20
15
  /**
21
16
  * Operator
22
17
  * 操作员
@@ -36,27 +31,32 @@ var UserRole;
36
31
  * Team leader
37
32
  * 团队负责人
38
33
  */
39
- UserRole[UserRole["Leader"] = 64] = "Leader";
34
+ UserRole[UserRole["Leader"] = 32] = "Leader";
40
35
  /**
41
36
  * Manager
42
37
  * 经理
43
38
  */
44
- UserRole[UserRole["Manager"] = 128] = "Manager";
39
+ UserRole[UserRole["Manager"] = 64] = "Manager";
40
+ /**
41
+ * HR Manager
42
+ * 人事经理
43
+ */
44
+ UserRole[UserRole["HRManager"] = 128] = "HRManager";
45
45
  /**
46
46
  * Finance
47
47
  * 财务
48
48
  */
49
49
  UserRole[UserRole["Finance"] = 256] = "Finance";
50
50
  /**
51
- * Executives
52
- * 高管
51
+ * Director
52
+ * 总监
53
53
  */
54
- UserRole[UserRole["Executive"] = 512] = "Executive";
54
+ UserRole[UserRole["Director"] = 512] = "Director";
55
55
  /**
56
- * Shareholder
57
- * 股东
56
+ * Executives
57
+ * 高管
58
58
  */
59
- UserRole[UserRole["Shareholder"] = 1024] = "Shareholder";
59
+ UserRole[UserRole["Executive"] = 1024] = "Executive";
60
60
  /**
61
61
  * API
62
62
  * 接口
@@ -1,6 +1,5 @@
1
1
  import { DataTypes, IdType, ListType } from "@etsoo/shared";
2
2
  import { CustomCultureData } from "../def/CustomCulture";
3
- import { QueryPagingData } from "../api/rq/QueryPagingData";
4
3
  import { QueryRQ } from "../api/rq/QueryRQ";
5
4
  /**
6
5
  * Business utils
@@ -24,7 +23,7 @@ export declare namespace BusinessUtils {
24
23
  ids?: T[] | undefined;
25
24
  excludedIds?: T[] | undefined;
26
25
  keyword?: string;
27
- queryPaging: QueryPagingData | undefined;
26
+ queryPaging: import("..").QueryPagingData | undefined;
28
27
  };
29
28
  /**
30
29
  * Get 12-month items
@@ -596,20 +596,30 @@ export declare abstract class CoreApp<U extends IUser, S extends IAppSettings, N
596
596
  */
597
597
  hasPermission(roles: number | UserRole | number[] | UserRole[]): boolean;
598
598
  /**
599
- * Is admin user
599
+ * Is admin roles
600
600
  * @returns Result
601
601
  */
602
602
  isAdminUser(): boolean;
603
603
  /**
604
- * Is Finance user
604
+ * Is Finance roles
605
605
  * @returns Result
606
606
  */
607
607
  isFinanceUser(): boolean;
608
608
  /**
609
- * Is Manager user
609
+ * Is HR manager roles
610
+ * @returns Result
611
+ */
612
+ isHRUser(): boolean;
613
+ /**
614
+ * Is Manager roles, exclude API user from frontend
610
615
  * @returns Result
611
616
  */
612
617
  isManagerUser(): boolean;
618
+ /**
619
+ * Is user roles
620
+ * @returns Result
621
+ */
622
+ isUser(): boolean;
613
623
  /**
614
624
  * Load URL
615
625
  * @param url URL
@@ -1233,6 +1233,8 @@ export class CoreApp {
1233
1233
  if (typeof id !== "number")
1234
1234
  return;
1235
1235
  const key = DataTypes.getEnumKey(em, id);
1236
+ if (key == null)
1237
+ return;
1236
1238
  const label = this.get(getKey(key)) ?? key;
1237
1239
  list.push({ id, label });
1238
1240
  });
@@ -1413,25 +1415,48 @@ export class CoreApp {
1413
1415
  return false;
1414
1416
  }
1415
1417
  /**
1416
- * Is admin user
1418
+ * Is admin roles
1417
1419
  * @returns Result
1418
1420
  */
1419
1421
  isAdminUser() {
1420
- return this.hasMinPermission(UserRole.Admin);
1422
+ return this.hasPermission([
1423
+ UserRole.Executive,
1424
+ UserRole.Admin,
1425
+ UserRole.Founder
1426
+ ]);
1421
1427
  }
1422
1428
  /**
1423
- * Is Finance user
1429
+ * Is Finance roles
1424
1430
  * @returns Result
1425
1431
  */
1426
1432
  isFinanceUser() {
1427
1433
  return this.hasPermission(UserRole.Finance) || this.isAdminUser();
1428
1434
  }
1429
1435
  /**
1430
- * Is Manager user
1436
+ * Is HR manager roles
1437
+ * @returns Result
1438
+ */
1439
+ isHRUser() {
1440
+ return this.hasPermission(UserRole.HRManager) || this.isAdminUser();
1441
+ }
1442
+ /**
1443
+ * Is Manager roles, exclude API user from frontend
1431
1444
  * @returns Result
1432
1445
  */
1433
1446
  isManagerUser() {
1434
- return this.hasMinPermission(UserRole.Manager);
1447
+ return (this.hasPermission([
1448
+ UserRole.Manager,
1449
+ UserRole.HRManager,
1450
+ UserRole.Director
1451
+ ]) || this.isFinanceUser());
1452
+ }
1453
+ /**
1454
+ * Is user roles
1455
+ * @returns Result
1456
+ */
1457
+ isUser() {
1458
+ return (this.hasPermission([UserRole.User, UserRole.Leader]) ||
1459
+ this.isManagerUser());
1435
1460
  }
1436
1461
  /**
1437
1462
  * Load URL
@@ -532,20 +532,30 @@ export interface IApp {
532
532
  */
533
533
  initCall(callback?: (result: boolean) => void, resetKeys?: boolean): Promise<void>;
534
534
  /**
535
- * Is admin user
535
+ * Is admin roles
536
536
  * @returns Result
537
537
  */
538
538
  isAdminUser(): boolean;
539
539
  /**
540
- * Is Finance user
540
+ * Is Finance roles
541
541
  * @returns Result
542
542
  */
543
543
  isFinanceUser(): boolean;
544
544
  /**
545
- * Is Manager user
545
+ * Is HR manager roles
546
+ * @returns Result
547
+ */
548
+ isHRUser(): boolean;
549
+ /**
550
+ * Is Manager roles
546
551
  * @returns Result
547
552
  */
548
553
  isManagerUser(): boolean;
554
+ /**
555
+ * Is user roles
556
+ * @returns Result
557
+ */
558
+ isUser(): boolean;
549
559
  /**
550
560
  * Is valid password, override to implement custom check
551
561
  * @param password Input password
@@ -8,11 +8,6 @@ export declare enum UserRole {
8
8
  * 访客
9
9
  */
10
10
  Guest = 1,
11
- /**
12
- * Outsourcing
13
- * 外包
14
- */
15
- Outsourcing = 2,
16
11
  /**
17
12
  * Operator
18
13
  * 操作员
@@ -32,27 +27,32 @@ export declare enum UserRole {
32
27
  * Team leader
33
28
  * 团队负责人
34
29
  */
35
- Leader = 64,
30
+ Leader = 32,
36
31
  /**
37
32
  * Manager
38
33
  * 经理
39
34
  */
40
- Manager = 128,
35
+ Manager = 64,
36
+ /**
37
+ * HR Manager
38
+ * 人事经理
39
+ */
40
+ HRManager = 128,
41
41
  /**
42
42
  * Finance
43
43
  * 财务
44
44
  */
45
45
  Finance = 256,
46
46
  /**
47
- * Executives
48
- * 高管
47
+ * Director
48
+ * 总监
49
49
  */
50
- Executive = 512,
50
+ Director = 512,
51
51
  /**
52
- * Shareholder
53
- * 股东
52
+ * Executives
53
+ * 高管
54
54
  */
55
- Shareholder = 1024,
55
+ Executive = 1024,
56
56
  /**
57
57
  * API
58
58
  * 接口
@@ -9,11 +9,6 @@ export var UserRole;
9
9
  * 访客
10
10
  */
11
11
  UserRole[UserRole["Guest"] = 1] = "Guest";
12
- /**
13
- * Outsourcing
14
- * 外包
15
- */
16
- UserRole[UserRole["Outsourcing"] = 2] = "Outsourcing";
17
12
  /**
18
13
  * Operator
19
14
  * 操作员
@@ -33,27 +28,32 @@ export var UserRole;
33
28
  * Team leader
34
29
  * 团队负责人
35
30
  */
36
- UserRole[UserRole["Leader"] = 64] = "Leader";
31
+ UserRole[UserRole["Leader"] = 32] = "Leader";
37
32
  /**
38
33
  * Manager
39
34
  * 经理
40
35
  */
41
- UserRole[UserRole["Manager"] = 128] = "Manager";
36
+ UserRole[UserRole["Manager"] = 64] = "Manager";
37
+ /**
38
+ * HR Manager
39
+ * 人事经理
40
+ */
41
+ UserRole[UserRole["HRManager"] = 128] = "HRManager";
42
42
  /**
43
43
  * Finance
44
44
  * 财务
45
45
  */
46
46
  UserRole[UserRole["Finance"] = 256] = "Finance";
47
47
  /**
48
- * Executives
49
- * 高管
48
+ * Director
49
+ * 总监
50
50
  */
51
- UserRole[UserRole["Executive"] = 512] = "Executive";
51
+ UserRole[UserRole["Director"] = 512] = "Director";
52
52
  /**
53
- * Shareholder
54
- * 股东
53
+ * Executives
54
+ * 高管
55
55
  */
56
- UserRole[UserRole["Shareholder"] = 1024] = "Shareholder";
56
+ UserRole[UserRole["Executive"] = 1024] = "Executive";
57
57
  /**
58
58
  * API
59
59
  * 接口
@@ -1,6 +1,5 @@
1
1
  import { DataTypes, IdType, ListType } from "@etsoo/shared";
2
2
  import { CustomCultureData } from "../def/CustomCulture";
3
- import { QueryPagingData } from "../api/rq/QueryPagingData";
4
3
  import { QueryRQ } from "../api/rq/QueryRQ";
5
4
  /**
6
5
  * Business utils
@@ -24,7 +23,7 @@ export declare namespace BusinessUtils {
24
23
  ids?: T[] | undefined;
25
24
  excludedIds?: T[] | undefined;
26
25
  keyword?: string;
27
- queryPaging: QueryPagingData | undefined;
26
+ queryPaging: import("..").QueryPagingData | undefined;
28
27
  };
29
28
  /**
30
29
  * Get 12-month items
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etsoo/appscript",
3
- "version": "1.6.38",
3
+ "version": "1.6.40",
4
4
  "description": "Applications shared TypeScript framework",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/mjs/index.js",
@@ -35,9 +35,9 @@
35
35
  },
36
36
  "homepage": "https://github.com/ETSOO/AppScript#readme",
37
37
  "dependencies": {
38
- "@etsoo/notificationbase": "^1.1.62",
39
- "@etsoo/restclient": "^1.1.29",
40
- "@etsoo/shared": "^1.2.74",
38
+ "@etsoo/notificationbase": "^1.1.63",
39
+ "@etsoo/restclient": "^1.1.30",
40
+ "@etsoo/shared": "^1.2.75",
41
41
  "crypto-js": "^4.2.0"
42
42
  },
43
43
  "devDependencies": {
@@ -47,9 +47,9 @@
47
47
  "@babel/preset-env": "^7.27.2",
48
48
  "@babel/runtime-corejs3": "^7.27.6",
49
49
  "@types/crypto-js": "^4.2.2",
50
- "@vitejs/plugin-react": "^4.5.1",
50
+ "@vitejs/plugin-react": "^4.5.2",
51
51
  "jsdom": "^26.1.0",
52
52
  "typescript": "^5.8.3",
53
- "vitest": "^3.2.2"
53
+ "vitest": "^3.2.3"
54
54
  }
55
55
  }
@@ -1748,6 +1748,7 @@ export abstract class CoreApp<
1748
1748
  filter.forEach((id) => {
1749
1749
  if (typeof id !== "number") return;
1750
1750
  const key = DataTypes.getEnumKey(em, id);
1751
+ if (key == null) return;
1751
1752
  const label = this.get<string>(getKey(key)) ?? key;
1752
1753
  list.push({ id, label });
1753
1754
  });
@@ -1941,15 +1942,19 @@ export abstract class CoreApp<
1941
1942
  }
1942
1943
 
1943
1944
  /**
1944
- * Is admin user
1945
+ * Is admin roles
1945
1946
  * @returns Result
1946
1947
  */
1947
1948
  isAdminUser() {
1948
- return this.hasMinPermission(UserRole.Admin);
1949
+ return this.hasPermission([
1950
+ UserRole.Executive,
1951
+ UserRole.Admin,
1952
+ UserRole.Founder
1953
+ ]);
1949
1954
  }
1950
1955
 
1951
1956
  /**
1952
- * Is Finance user
1957
+ * Is Finance roles
1953
1958
  * @returns Result
1954
1959
  */
1955
1960
  isFinanceUser() {
@@ -1957,11 +1962,36 @@ export abstract class CoreApp<
1957
1962
  }
1958
1963
 
1959
1964
  /**
1960
- * Is Manager user
1965
+ * Is HR manager roles
1966
+ * @returns Result
1967
+ */
1968
+ isHRUser() {
1969
+ return this.hasPermission(UserRole.HRManager) || this.isAdminUser();
1970
+ }
1971
+
1972
+ /**
1973
+ * Is Manager roles, exclude API user from frontend
1961
1974
  * @returns Result
1962
1975
  */
1963
1976
  isManagerUser() {
1964
- return this.hasMinPermission(UserRole.Manager);
1977
+ return (
1978
+ this.hasPermission([
1979
+ UserRole.Manager,
1980
+ UserRole.HRManager,
1981
+ UserRole.Director
1982
+ ]) || this.isFinanceUser()
1983
+ );
1984
+ }
1985
+
1986
+ /**
1987
+ * Is user roles
1988
+ * @returns Result
1989
+ */
1990
+ isUser() {
1991
+ return (
1992
+ this.hasPermission([UserRole.User, UserRole.Leader]) ||
1993
+ this.isManagerUser()
1994
+ );
1965
1995
  }
1966
1996
 
1967
1997
  /**
package/src/app/IApp.ts CHANGED
@@ -705,23 +705,35 @@ export interface IApp {
705
705
  ): Promise<void>;
706
706
 
707
707
  /**
708
- * Is admin user
708
+ * Is admin roles
709
709
  * @returns Result
710
710
  */
711
711
  isAdminUser(): boolean;
712
712
 
713
713
  /**
714
- * Is Finance user
714
+ * Is Finance roles
715
715
  * @returns Result
716
716
  */
717
717
  isFinanceUser(): boolean;
718
718
 
719
719
  /**
720
- * Is Manager user
720
+ * Is HR manager roles
721
+ * @returns Result
722
+ */
723
+ isHRUser(): boolean;
724
+
725
+ /**
726
+ * Is Manager roles
721
727
  * @returns Result
722
728
  */
723
729
  isManagerUser(): boolean;
724
730
 
731
+ /**
732
+ * Is user roles
733
+ * @returns Result
734
+ */
735
+ isUser(): boolean;
736
+
725
737
  /**
726
738
  * Is valid password, override to implement custom check
727
739
  * @param password Input password
@@ -9,12 +9,6 @@ export enum UserRole {
9
9
  */
10
10
  Guest = 1,
11
11
 
12
- /**
13
- * Outsourcing
14
- * 外包
15
- */
16
- Outsourcing = 2,
17
-
18
12
  /**
19
13
  * Operator
20
14
  * 操作员
@@ -37,13 +31,19 @@ export enum UserRole {
37
31
  * Team leader
38
32
  * 团队负责人
39
33
  */
40
- Leader = 64,
34
+ Leader = 32,
41
35
 
42
36
  /**
43
37
  * Manager
44
38
  * 经理
45
39
  */
46
- Manager = 128,
40
+ Manager = 64,
41
+
42
+ /**
43
+ * HR Manager
44
+ * 人事经理
45
+ */
46
+ HRManager = 128,
47
47
 
48
48
  /**
49
49
  * Finance
@@ -52,16 +52,16 @@ export enum UserRole {
52
52
  Finance = 256,
53
53
 
54
54
  /**
55
- * Executives
56
- * 高管
55
+ * Director
56
+ * 总监
57
57
  */
58
- Executive = 512,
58
+ Director = 512,
59
59
 
60
60
  /**
61
- * Shareholder
62
- * 股东
61
+ * Executives
62
+ * 高管
63
63
  */
64
- Shareholder = 1024,
64
+ Executive = 1024,
65
65
 
66
66
  /**
67
67
  * API
@@ -1,6 +1,5 @@
1
1
  import { DataTypes, IdType, ListType } from "@etsoo/shared";
2
2
  import { CustomCultureData } from "../def/CustomCulture";
3
- import { QueryPagingData } from "../api/rq/QueryPagingData";
4
3
  import { QueryRQ } from "../api/rq/QueryRQ";
5
4
 
6
5
  /**