@tomei/sso 0.27.0 → 0.28.3
Sign up to get free protection for your applications and to get access to all the features.
- package/__tests__/unit/components/system-privilege/system-privilege.spec.ts +0 -3
- package/coverage/clover.xml +1452 -1452
- package/coverage/coverage-final.json +47 -47
- package/coverage/lcov-report/base.css +224 -224
- package/coverage/lcov-report/block-navigation.js +87 -87
- package/coverage/lcov-report/components/group/group.repository.ts.html +117 -117
- package/coverage/lcov-report/components/group/group.ts.html +327 -327
- package/coverage/lcov-report/components/group/index.html +130 -130
- package/coverage/lcov-report/components/group-object-privilege/group-object-privilege.repository.ts.html +117 -117
- package/coverage/lcov-report/components/group-object-privilege/group-object-privilege.ts.html +321 -321
- package/coverage/lcov-report/components/group-object-privilege/index.html +130 -130
- package/coverage/lcov-report/components/group-privilege/group-privilege.repository.ts.html +117 -117
- package/coverage/lcov-report/components/group-privilege/group-privilege.ts.html +303 -303
- package/coverage/lcov-report/components/group-privilege/index.html +130 -130
- package/coverage/lcov-report/components/group-reporting-user/group-reporting-user.repository.ts.html +117 -117
- package/coverage/lcov-report/components/group-reporting-user/group-reporting-user.ts.html +327 -327
- package/coverage/lcov-report/components/group-reporting-user/index.html +130 -130
- package/coverage/lcov-report/components/group-system-access/group-system-access.repository.ts.html +117 -117
- package/coverage/lcov-report/components/group-system-access/group-system-access.ts.html +309 -309
- package/coverage/lcov-report/components/group-system-access/index.html +130 -130
- package/coverage/lcov-report/components/login-history/index.html +115 -115
- package/coverage/lcov-report/components/login-history/login-history.repository.ts.html +117 -117
- package/coverage/lcov-report/components/login-user/index.html +130 -130
- package/coverage/lcov-report/components/login-user/login-user.ts.html +5007 -5007
- package/coverage/lcov-report/components/login-user/user.repository.ts.html +117 -117
- package/coverage/lcov-report/components/password-hash/index.html +115 -115
- package/coverage/lcov-report/components/password-hash/password-hash.service.ts.html +126 -126
- package/coverage/lcov-report/components/system/index.html +130 -130
- package/coverage/lcov-report/components/system/system.repository.ts.html +117 -117
- package/coverage/lcov-report/components/system/system.ts.html +909 -909
- package/coverage/lcov-report/components/system-privilege/index.html +130 -130
- package/coverage/lcov-report/components/system-privilege/system-privilege.repository.ts.html +120 -120
- package/coverage/lcov-report/components/system-privilege/system-privilege.ts.html +390 -390
- package/coverage/lcov-report/components/user-group/index.html +130 -130
- package/coverage/lcov-report/components/user-group/user-group.repository.ts.html +117 -117
- package/coverage/lcov-report/components/user-group/user-group.ts.html +354 -354
- package/coverage/lcov-report/components/user-object-privilege/index.html +130 -130
- package/coverage/lcov-report/components/user-object-privilege/user-object-privilege.repository.ts.html +117 -117
- package/coverage/lcov-report/components/user-object-privilege/user-object-privilege.ts.html +312 -312
- package/coverage/lcov-report/components/user-privilege/index.html +130 -130
- package/coverage/lcov-report/components/user-privilege/user-privilege.repository.ts.html +117 -117
- package/coverage/lcov-report/components/user-privilege/user-privilege.ts.html +306 -306
- package/coverage/lcov-report/components/user-system-access/index.html +130 -130
- package/coverage/lcov-report/components/user-system-access/user-system-access.repository.ts.html +117 -117
- package/coverage/lcov-report/components/user-system-access/user-system-access.ts.html +312 -312
- package/coverage/lcov-report/enum/group-type.enum.ts.html +108 -108
- package/coverage/lcov-report/enum/index.html +160 -160
- package/coverage/lcov-report/enum/index.ts.html +93 -93
- package/coverage/lcov-report/enum/user-status.enum.ts.html +105 -105
- package/coverage/lcov-report/enum/yn.enum.ts.html +96 -96
- package/coverage/lcov-report/index.html +370 -370
- package/coverage/lcov-report/models/group-object-privilege.entity.ts.html +333 -333
- package/coverage/lcov-report/models/group-privilege.entity.ts.html +315 -315
- package/coverage/lcov-report/models/group-reporting-user.entity.ts.html +339 -339
- package/coverage/lcov-report/models/group-system-access.entity.ts.html +324 -324
- package/coverage/lcov-report/models/group.entity.ts.html +435 -435
- package/coverage/lcov-report/models/index.html +310 -310
- package/coverage/lcov-report/models/login-history.entity.ts.html +252 -252
- package/coverage/lcov-report/models/staff.entity.ts.html +411 -411
- package/coverage/lcov-report/models/system-privilege.entity.ts.html +354 -354
- package/coverage/lcov-report/models/system.entity.ts.html +423 -423
- package/coverage/lcov-report/models/user-group.entity.ts.html +354 -354
- package/coverage/lcov-report/models/user-object-privilege.entity.ts.html +330 -330
- package/coverage/lcov-report/models/user-privilege.entity.ts.html +315 -315
- package/coverage/lcov-report/models/user-system-access.entity.ts.html +315 -315
- package/coverage/lcov-report/models/user.entity.ts.html +522 -522
- package/coverage/lcov-report/prettify.css +1 -1
- package/coverage/lcov-report/prettify.js +2 -2
- package/coverage/lcov-report/redis-client/index.html +115 -115
- package/coverage/lcov-report/redis-client/redis.service.ts.html +240 -240
- package/coverage/lcov-report/session/index.html +115 -115
- package/coverage/lcov-report/session/session.service.ts.html +246 -246
- package/coverage/lcov-report/sorter.js +196 -196
- package/coverage/lcov.info +2490 -2490
- package/coverage/test-report.xml +128 -128
- package/dist/__tests__/unit/components/system-privilege/system-privilege.spec.js +0 -3
- package/dist/__tests__/unit/components/system-privilege/system-privilege.spec.js.map +1 -1
- package/dist/src/components/login-user/interfaces/check-user-info-duplicated.interface.d.ts +1 -0
- package/dist/src/components/login-user/interfaces/user-info.interface.d.ts +1 -0
- package/dist/src/components/login-user/login-user.d.ts +4 -2
- package/dist/src/components/login-user/login-user.js +33 -7
- package/dist/src/components/login-user/login-user.js.map +1 -1
- package/dist/src/components/system-privilege/system-privilege.d.ts +0 -2
- package/dist/src/components/system-privilege/system-privilege.js +0 -8
- package/dist/src/components/system-privilege/system-privilege.js.map +1 -1
- package/dist/src/enum/index.d.ts +1 -0
- package/dist/src/enum/index.js +1 -0
- package/dist/src/enum/index.js.map +1 -1
- package/dist/src/enum/login-status.enum.d.ts +4 -0
- package/dist/src/enum/login-status.enum.js +9 -0
- package/dist/src/enum/login-status.enum.js.map +1 -0
- package/dist/src/interfaces/system-privilege.interface.d.ts +0 -1
- package/dist/src/models/login-history.entity.d.ts +2 -0
- package/dist/src/models/login-history.entity.js +8 -0
- package/dist/src/models/login-history.entity.js.map +1 -1
- package/dist/src/models/system-privilege.entity.d.ts +0 -1
- package/dist/src/models/system-privilege.entity.js +1 -9
- package/dist/src/models/system-privilege.entity.js.map +1 -1
- package/dist/src/models/user.entity.d.ts +1 -0
- package/dist/src/models/user.entity.js +7 -0
- package/dist/src/models/user.entity.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/migrations/20240314080602-create-user-table.js +4 -0
- package/migrations/20240314080605-create-login-history-table.js +4 -0
- package/migrations/20240527064926-create-system-privilege-table.js +1 -5
- package/migrations/20240528023018-user-system-access-table.js +75 -75
- package/migrations/20240528032229-user-privilege-table.js +75 -75
- package/migrations/20240528063003-create-group-privilege-table.js +75 -75
- package/migrations/20240528063107-create-user-object-privilege-table.js +83 -83
- package/package.json +1 -1
- package/src/components/login-user/interfaces/check-user-info-duplicated.interface.ts +1 -0
- package/src/components/login-user/interfaces/user-info.interface.ts +1 -0
- package/src/components/login-user/login-user.ts +39 -8
- package/src/components/system-privilege/system-privilege.ts +0 -10
- package/src/enum/index.ts +1 -0
- package/src/enum/login-status.enum.ts +4 -0
- package/src/interfaces/system-privilege.interface.ts +0 -1
- package/src/models/login-history.entity.ts +7 -0
- package/src/models/system-privilege.entity.ts +1 -8
- package/src/models/user.entity.ts +6 -0
package/coverage/test-report.xml
CHANGED
@@ -1,129 +1,129 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<testExecutions version="1">
|
3
|
-
<file path="C:\Work\sso\__tests__\unit\components\login-user\login.spec.ts">
|
4
|
-
<testCase name="LoginUser init should initialize LoginUser with valid userId" duration="5"/>
|
5
|
-
<testCase name="LoginUser init should throw an error when user is not found" duration="20"/>
|
6
|
-
<testCase name="LoginUser checkSession should throw an error if session expired" duration="20"/>
|
7
|
-
<testCase name="LoginUser checkSession should refresh the session duration if session is valid" duration="2"/>
|
8
|
-
<testCase name="LoginUser shouldReleaseLock should return true if autoReleaseYN is "Y" and time difference is greater than minuteToAutoRelease" duration="2"/>
|
9
|
-
<testCase name="LoginUser shouldReleaseLock should return false if autoReleaseYN is "Y" and time difference is less than or equal to minuteToAutoRelease" duration="1"/>
|
10
|
-
<testCase name="LoginUser shouldReleaseLock should return false if autoReleaseYN is "N"" duration="1"/>
|
11
|
-
<testCase name="LoginUser releaseLock should release the lock for a user" duration="1"/>
|
12
|
-
<testCase name="LoginUser checkUserInfoDuplicated should throw an error if duplicate user info is found" duration="1"/>
|
13
|
-
<testCase name="LoginUser checkUserInfoDuplicated should not throw an error if duplicate user info is not found" duration="0"/>
|
14
|
-
<testCase name="LoginUser generateDefaultPassword should generate a default password with the specified length" duration="2"/>
|
15
|
-
<testCase name="LoginUser generateDefaultPassword should generate a default password with at least one capital letter" duration="1"/>
|
16
|
-
<testCase name="LoginUser generateDefaultPassword should generate a default password with at least one number" duration="1"/>
|
17
|
-
<testCase name="LoginUser generateDefaultPassword should generate a default password with at least one special character" duration="1"/>
|
18
|
-
<testCase name="LoginUser generateDefaultPassword should generate a default password without any non-acceptable characters" duration="1"/>
|
19
|
-
<testCase name="LoginUser setPassword should set the password for the user" duration="159"/>
|
20
|
-
<testCase name="LoginUser setPassword should throw an error if the password does not meet the security requirements" duration="13"/>
|
21
|
-
<testCase name="LoginUser create should create a new user record" duration="5"/>
|
22
|
-
<testCase name="LoginUser create should throw an error if user dont have the privilege to create new user" duration="2"/>
|
23
|
-
<testCase name="LoginUser create should throw an error if user email is missing" duration="2"/>
|
24
|
-
<testCase name="LoginUser incrementFailedLoginAttemptCount should increment FailedLoginAttemptCount and update user status" duration="1"/>
|
25
|
-
<testCase name="LoginUser incrementFailedLoginAttemptCount should throw an error if maxFailedLoginAttempts or autoReleaseYN is missing" duration="1"/>
|
26
|
-
<testCase name="LoginUser incrementFailedLoginAttemptCount should lock the user account if the failed login attempts exceed the maximum allowed" duration="1"/>
|
27
|
-
<testCase name="LoginUser incrementFailedLoginAttemptCount should permanently lock the user account if the failed login attempts exceed the maximum allowed and autoReleaseYN is N" duration="1"/>
|
28
|
-
<testCase name="LoginUser combineSystemAccess should combine user and group system access and remove duplicates" duration="1"/>
|
29
|
-
<testCase name="LoginUser checkPrivileges should return true if user has the specified privilege" duration="1"/>
|
30
|
-
<testCase name="LoginUser checkPrivileges should return false if user does not have the specified privilege" duration="1"/>
|
31
|
-
<testCase name="LoginUser checkPrivileges should throw an error if ObjectId is not set" duration="1"/>
|
32
|
-
<testCase name="LoginUser getObjectPrivileges should return an array of privileges" duration="1"/>
|
33
|
-
<testCase name="LoginUser getObjectPrivileges should throw an error if an exception occurs" duration="1"/>
|
34
|
-
<testCase name="LoginUser getUserPersonalPrivileges should return an array of privileges" duration="2"/>
|
35
|
-
<testCase name="LoginUser getUserPersonalPrivileges should throw an error if an error occurs" duration="1"/>
|
36
|
-
<testCase name="LoginUser getInheritedSystemAccess should return group system access with its parent group system access if applicable" duration="3"/>
|
37
|
-
</file>
|
38
|
-
<file path="C:\Work\sso\__tests__\unit\components\system\system.spec.ts">
|
39
|
-
<testCase name="System init should initialize a system when SystemCode is provided" duration="3"/>
|
40
|
-
<testCase name="System init should throw an error when SystemCode is not found" duration="8"/>
|
41
|
-
<testCase name="System init should initialize a new system when SystemCode is not provided" duration="1"/>
|
42
|
-
<testCase name="System createSystem should create a new system" duration="4"/>
|
43
|
-
<testCase name="System createSystem should throw an error when user does not have permission" duration="1"/>
|
44
|
-
<testCase name="System createSystem should throw an error when SystemCode is missing" duration="1"/>
|
45
|
-
<testCase name="System createSystem should throw an error when Name is missing" duration="1"/>
|
46
|
-
<testCase name="System createSystem should throw an error when Description is missing" duration="1"/>
|
47
|
-
<testCase name="System createSystem should throw an error when failed to create system" duration="5"/>
|
48
|
-
<testCase name="System setSystemCode should set the SystemCode when there is no duplicate" duration="1"/>
|
49
|
-
<testCase name="System setSystemCode should throw an error when SystemCode already exists" duration="1"/>
|
50
|
-
<testCase name="System setSystemCode should throw an error when failed to check duplicate SystemCode" duration="1"/>
|
51
|
-
<testCase name="System findAll should find all systems based on filter" duration="2"/>
|
52
|
-
<testCase name="System findAll should find all systems without pagination when page and rows are not provided" duration="1"/>
|
53
|
-
</file>
|
54
|
-
<file path="C:\Work\sso\__tests__\unit\components\group-object-privilege\group-object-privilege.spec.ts">
|
55
|
-
<testCase name="GroupObjectPrivilege should create an instance of GroupObjectPrivilege" duration="2"/>
|
56
|
-
<testCase name="GroupObjectPrivilege should have the correct TableName" duration="0"/>
|
57
|
-
<testCase name="GroupObjectPrivilege should have the correct properties" duration="1"/>
|
58
|
-
<testCase name="GroupObjectPrivilege init should return an instance of GroupObjectPrivilege when GroupObjectPrivilegeId is provided" duration="2"/>
|
59
|
-
<testCase name="GroupObjectPrivilege init should throw an error when GroupObjectPrivilegeId is provided but no GroupObjectPrivilege is found" duration="3"/>
|
60
|
-
<testCase name="GroupObjectPrivilege init should return a new instance of GroupObjectPrivilege when GroupObjectPrivilegeId is not provided" duration="3"/>
|
61
|
-
</file>
|
62
|
-
<file path="C:\Work\sso\__tests__\unit\components\group-system-access\group-system-access.spec.ts">
|
63
|
-
<testCase name="GroupSystemAccess should create a new GroupSystemAccess instance" duration="2"/>
|
64
|
-
<testCase name="GroupSystemAccess init should initialize GroupSystemAccess without GroupSystemAccessId" duration="2"/>
|
65
|
-
<testCase name="GroupSystemAccess init should initialize GroupSystemAccess with GroupSystemAccessId" duration="3"/>
|
66
|
-
<testCase name="GroupSystemAccess init should throw an error if GroupSystemAccessId is not found" duration="5"/>
|
67
|
-
</file>
|
68
|
-
<file path="C:\Work\sso\__tests__\unit\components\group\group.spec.ts">
|
69
|
-
<testCase name="Group should initialize a group with valid GroupCode" duration="4"/>
|
70
|
-
<testCase name="Group should throw an error when initializing a group with invalid GroupCode" duration="5"/>
|
71
|
-
<testCase name="Group should throw an error when initializing a group with an error" duration="2"/>
|
72
|
-
</file>
|
73
|
-
<file path="C:\Work\sso\__tests__\unit\components\group-reporting-user\group-reporting-user.spec.ts">
|
74
|
-
<testCase name="GroupReportingUser init should initialize GroupReportingUser without GroupReportingUserId" duration="3"/>
|
75
|
-
<testCase name="GroupReportingUser init should initialize GroupReportingUser with valid GroupReportingUserId" duration="2"/>
|
76
|
-
<testCase name="GroupReportingUser init should throw ClassError when GroupReportingUser is not found" duration="8"/>
|
77
|
-
<testCase name="GroupReportingUser init should throw ClassError when failed to initialize GroupReportingUser" duration="1"/>
|
78
|
-
</file>
|
79
|
-
<file path="C:\Work\sso\__tests__\unit\components\system-privilege\system-privilege.spec.ts">
|
80
|
-
<testCase name="SystemPrivilege constructor should create a new SystemPrivilege instance" duration="2"/>
|
81
|
-
<testCase name="SystemPrivilege init should initialize SystemPrivilege without PrivilegeCode" duration="1"/>
|
82
|
-
<testCase name="SystemPrivilege init should initialize SystemPrivilege with PrivilegeCode" duration="2"/>
|
83
|
-
<testCase name="SystemPrivilege init should throw an error if PrivilegeCode is not found" duration="4"/>
|
84
|
-
</file>
|
85
|
-
<file path="C:\Work\sso\__tests__\unit\components\user-group\user-group.spec.ts">
|
86
|
-
<testCase name="UserGroup constructor should create a new UserGroup instance" duration="3"/>
|
87
|
-
<testCase name="UserGroup init should initialize UserGroup with valid UserGroupId" duration="2"/>
|
88
|
-
<testCase name="UserGroup init should throw ClassError when UserGroupId is not found" duration="5"/>
|
89
|
-
</file>
|
90
|
-
<file path="C:\Work\sso\__tests__\unit\components\user-object-privilege\user-object-privilege.spec.ts">
|
91
|
-
<testCase name="UserObjectPrivilege constructor should create a new UserObjectPrivilege instance" duration="2"/>
|
92
|
-
<testCase name="UserObjectPrivilege init should initialize UserObjectPrivilege with valid ObjectPrivilegeId" duration="5"/>
|
93
|
-
<testCase name="UserObjectPrivilege init should throw ClassError when ObjectPrivilegeId is not found" duration="4"/>
|
94
|
-
</file>
|
95
|
-
<file path="C:\Work\sso\__tests__\unit\components\group-privilege\group-privilege.spec.ts">
|
96
|
-
<testCase name="GroupPrivilege should initialize with GroupPrivilegeAttr" duration="6"/>
|
97
|
-
<testCase name="GroupPrivilege should throw ClassError when GroupPrivilegeAttr is not found" duration="4"/>
|
98
|
-
<testCase name="GroupPrivilege should initialize with default values" duration="1"/>
|
99
|
-
</file>
|
100
|
-
<file path="C:\Work\sso\__tests__\unit\components\user-system-access\user-system-access.spec.ts">
|
101
|
-
<testCase name="UserSystemAccess constructor should create a new UserSystemAccess instance" duration="2"/>
|
102
|
-
<testCase name="UserSystemAccess init should initialize UserSystemAccess with valid UserSystemAccessId" duration="2"/>
|
103
|
-
<testCase name="UserSystemAccess init should throw ClassError when UserSystemAccessId is not found" duration="1"/>
|
104
|
-
</file>
|
105
|
-
<file path="C:\Work\sso\__tests__\unit\components\user-privilege\user-privilege.spec.ts">
|
106
|
-
<testCase name="UserPrivilege constructor should create a new UserPrivilege instance" duration="2"/>
|
107
|
-
<testCase name="UserPrivilege init should initialize UserPrivilege with valid UserPrivilegeId" duration="2"/>
|
108
|
-
<testCase name="UserPrivilege init should throw ClassError when UserPrivilegeId is not found" duration="4"/>
|
109
|
-
</file>
|
110
|
-
<file path="C:\Work\sso\__tests__\unit\session\session.service.spec.ts">
|
111
|
-
<testCase name="session.service should return session service when instansiated" duration="2"/>
|
112
|
-
<testCase name="session.service should able to write session data" duration="3"/>
|
113
|
-
<testCase name="session.service should able to refresh session data" duration="3"/>
|
114
|
-
</file>
|
115
|
-
<file path="C:\Work\sso\__tests__\unit\system-privilege\system-privilage.spec.ts">
|
116
|
-
<testCase name="SystemPrivilege should be true" duration="2"/>
|
117
|
-
</file>
|
118
|
-
<file path="C:\Work\sso\__tests__\unit\components\password-hash\password-hash.service.spec.ts">
|
119
|
-
<testCase name="password-hash.service should return hash password" duration="2"/>
|
120
|
-
<testCase name="password-hash.service should return true when verify password" duration="1"/>
|
121
|
-
</file>
|
122
|
-
<file path="C:\Work\sso\__tests__\unit\redis-client\redis.service.spec.ts">
|
123
|
-
<testCase name="redis.service should return redis service when instansiated" duration="1"/>
|
124
|
-
<testCase name="redis.service should able to write and read redis" duration="2"/>
|
125
|
-
</file>
|
126
|
-
<file path="C:\Work\sso\__tests__\unit\components\login-user\l.spec.ts">
|
127
|
-
<testCase name="SystemPrivilege should be true" duration="1"/>
|
128
|
-
</file>
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<testExecutions version="1">
|
3
|
+
<file path="C:\Work\sso\__tests__\unit\components\login-user\login.spec.ts">
|
4
|
+
<testCase name="LoginUser init should initialize LoginUser with valid userId" duration="5"/>
|
5
|
+
<testCase name="LoginUser init should throw an error when user is not found" duration="20"/>
|
6
|
+
<testCase name="LoginUser checkSession should throw an error if session expired" duration="20"/>
|
7
|
+
<testCase name="LoginUser checkSession should refresh the session duration if session is valid" duration="2"/>
|
8
|
+
<testCase name="LoginUser shouldReleaseLock should return true if autoReleaseYN is "Y" and time difference is greater than minuteToAutoRelease" duration="2"/>
|
9
|
+
<testCase name="LoginUser shouldReleaseLock should return false if autoReleaseYN is "Y" and time difference is less than or equal to minuteToAutoRelease" duration="1"/>
|
10
|
+
<testCase name="LoginUser shouldReleaseLock should return false if autoReleaseYN is "N"" duration="1"/>
|
11
|
+
<testCase name="LoginUser releaseLock should release the lock for a user" duration="1"/>
|
12
|
+
<testCase name="LoginUser checkUserInfoDuplicated should throw an error if duplicate user info is found" duration="1"/>
|
13
|
+
<testCase name="LoginUser checkUserInfoDuplicated should not throw an error if duplicate user info is not found" duration="0"/>
|
14
|
+
<testCase name="LoginUser generateDefaultPassword should generate a default password with the specified length" duration="2"/>
|
15
|
+
<testCase name="LoginUser generateDefaultPassword should generate a default password with at least one capital letter" duration="1"/>
|
16
|
+
<testCase name="LoginUser generateDefaultPassword should generate a default password with at least one number" duration="1"/>
|
17
|
+
<testCase name="LoginUser generateDefaultPassword should generate a default password with at least one special character" duration="1"/>
|
18
|
+
<testCase name="LoginUser generateDefaultPassword should generate a default password without any non-acceptable characters" duration="1"/>
|
19
|
+
<testCase name="LoginUser setPassword should set the password for the user" duration="159"/>
|
20
|
+
<testCase name="LoginUser setPassword should throw an error if the password does not meet the security requirements" duration="13"/>
|
21
|
+
<testCase name="LoginUser create should create a new user record" duration="5"/>
|
22
|
+
<testCase name="LoginUser create should throw an error if user dont have the privilege to create new user" duration="2"/>
|
23
|
+
<testCase name="LoginUser create should throw an error if user email is missing" duration="2"/>
|
24
|
+
<testCase name="LoginUser incrementFailedLoginAttemptCount should increment FailedLoginAttemptCount and update user status" duration="1"/>
|
25
|
+
<testCase name="LoginUser incrementFailedLoginAttemptCount should throw an error if maxFailedLoginAttempts or autoReleaseYN is missing" duration="1"/>
|
26
|
+
<testCase name="LoginUser incrementFailedLoginAttemptCount should lock the user account if the failed login attempts exceed the maximum allowed" duration="1"/>
|
27
|
+
<testCase name="LoginUser incrementFailedLoginAttemptCount should permanently lock the user account if the failed login attempts exceed the maximum allowed and autoReleaseYN is N" duration="1"/>
|
28
|
+
<testCase name="LoginUser combineSystemAccess should combine user and group system access and remove duplicates" duration="1"/>
|
29
|
+
<testCase name="LoginUser checkPrivileges should return true if user has the specified privilege" duration="1"/>
|
30
|
+
<testCase name="LoginUser checkPrivileges should return false if user does not have the specified privilege" duration="1"/>
|
31
|
+
<testCase name="LoginUser checkPrivileges should throw an error if ObjectId is not set" duration="1"/>
|
32
|
+
<testCase name="LoginUser getObjectPrivileges should return an array of privileges" duration="1"/>
|
33
|
+
<testCase name="LoginUser getObjectPrivileges should throw an error if an exception occurs" duration="1"/>
|
34
|
+
<testCase name="LoginUser getUserPersonalPrivileges should return an array of privileges" duration="2"/>
|
35
|
+
<testCase name="LoginUser getUserPersonalPrivileges should throw an error if an error occurs" duration="1"/>
|
36
|
+
<testCase name="LoginUser getInheritedSystemAccess should return group system access with its parent group system access if applicable" duration="3"/>
|
37
|
+
</file>
|
38
|
+
<file path="C:\Work\sso\__tests__\unit\components\system\system.spec.ts">
|
39
|
+
<testCase name="System init should initialize a system when SystemCode is provided" duration="3"/>
|
40
|
+
<testCase name="System init should throw an error when SystemCode is not found" duration="8"/>
|
41
|
+
<testCase name="System init should initialize a new system when SystemCode is not provided" duration="1"/>
|
42
|
+
<testCase name="System createSystem should create a new system" duration="4"/>
|
43
|
+
<testCase name="System createSystem should throw an error when user does not have permission" duration="1"/>
|
44
|
+
<testCase name="System createSystem should throw an error when SystemCode is missing" duration="1"/>
|
45
|
+
<testCase name="System createSystem should throw an error when Name is missing" duration="1"/>
|
46
|
+
<testCase name="System createSystem should throw an error when Description is missing" duration="1"/>
|
47
|
+
<testCase name="System createSystem should throw an error when failed to create system" duration="5"/>
|
48
|
+
<testCase name="System setSystemCode should set the SystemCode when there is no duplicate" duration="1"/>
|
49
|
+
<testCase name="System setSystemCode should throw an error when SystemCode already exists" duration="1"/>
|
50
|
+
<testCase name="System setSystemCode should throw an error when failed to check duplicate SystemCode" duration="1"/>
|
51
|
+
<testCase name="System findAll should find all systems based on filter" duration="2"/>
|
52
|
+
<testCase name="System findAll should find all systems without pagination when page and rows are not provided" duration="1"/>
|
53
|
+
</file>
|
54
|
+
<file path="C:\Work\sso\__tests__\unit\components\group-object-privilege\group-object-privilege.spec.ts">
|
55
|
+
<testCase name="GroupObjectPrivilege should create an instance of GroupObjectPrivilege" duration="2"/>
|
56
|
+
<testCase name="GroupObjectPrivilege should have the correct TableName" duration="0"/>
|
57
|
+
<testCase name="GroupObjectPrivilege should have the correct properties" duration="1"/>
|
58
|
+
<testCase name="GroupObjectPrivilege init should return an instance of GroupObjectPrivilege when GroupObjectPrivilegeId is provided" duration="2"/>
|
59
|
+
<testCase name="GroupObjectPrivilege init should throw an error when GroupObjectPrivilegeId is provided but no GroupObjectPrivilege is found" duration="3"/>
|
60
|
+
<testCase name="GroupObjectPrivilege init should return a new instance of GroupObjectPrivilege when GroupObjectPrivilegeId is not provided" duration="3"/>
|
61
|
+
</file>
|
62
|
+
<file path="C:\Work\sso\__tests__\unit\components\group-system-access\group-system-access.spec.ts">
|
63
|
+
<testCase name="GroupSystemAccess should create a new GroupSystemAccess instance" duration="2"/>
|
64
|
+
<testCase name="GroupSystemAccess init should initialize GroupSystemAccess without GroupSystemAccessId" duration="2"/>
|
65
|
+
<testCase name="GroupSystemAccess init should initialize GroupSystemAccess with GroupSystemAccessId" duration="3"/>
|
66
|
+
<testCase name="GroupSystemAccess init should throw an error if GroupSystemAccessId is not found" duration="5"/>
|
67
|
+
</file>
|
68
|
+
<file path="C:\Work\sso\__tests__\unit\components\group\group.spec.ts">
|
69
|
+
<testCase name="Group should initialize a group with valid GroupCode" duration="4"/>
|
70
|
+
<testCase name="Group should throw an error when initializing a group with invalid GroupCode" duration="5"/>
|
71
|
+
<testCase name="Group should throw an error when initializing a group with an error" duration="2"/>
|
72
|
+
</file>
|
73
|
+
<file path="C:\Work\sso\__tests__\unit\components\group-reporting-user\group-reporting-user.spec.ts">
|
74
|
+
<testCase name="GroupReportingUser init should initialize GroupReportingUser without GroupReportingUserId" duration="3"/>
|
75
|
+
<testCase name="GroupReportingUser init should initialize GroupReportingUser with valid GroupReportingUserId" duration="2"/>
|
76
|
+
<testCase name="GroupReportingUser init should throw ClassError when GroupReportingUser is not found" duration="8"/>
|
77
|
+
<testCase name="GroupReportingUser init should throw ClassError when failed to initialize GroupReportingUser" duration="1"/>
|
78
|
+
</file>
|
79
|
+
<file path="C:\Work\sso\__tests__\unit\components\system-privilege\system-privilege.spec.ts">
|
80
|
+
<testCase name="SystemPrivilege constructor should create a new SystemPrivilege instance" duration="2"/>
|
81
|
+
<testCase name="SystemPrivilege init should initialize SystemPrivilege without PrivilegeCode" duration="1"/>
|
82
|
+
<testCase name="SystemPrivilege init should initialize SystemPrivilege with PrivilegeCode" duration="2"/>
|
83
|
+
<testCase name="SystemPrivilege init should throw an error if PrivilegeCode is not found" duration="4"/>
|
84
|
+
</file>
|
85
|
+
<file path="C:\Work\sso\__tests__\unit\components\user-group\user-group.spec.ts">
|
86
|
+
<testCase name="UserGroup constructor should create a new UserGroup instance" duration="3"/>
|
87
|
+
<testCase name="UserGroup init should initialize UserGroup with valid UserGroupId" duration="2"/>
|
88
|
+
<testCase name="UserGroup init should throw ClassError when UserGroupId is not found" duration="5"/>
|
89
|
+
</file>
|
90
|
+
<file path="C:\Work\sso\__tests__\unit\components\user-object-privilege\user-object-privilege.spec.ts">
|
91
|
+
<testCase name="UserObjectPrivilege constructor should create a new UserObjectPrivilege instance" duration="2"/>
|
92
|
+
<testCase name="UserObjectPrivilege init should initialize UserObjectPrivilege with valid ObjectPrivilegeId" duration="5"/>
|
93
|
+
<testCase name="UserObjectPrivilege init should throw ClassError when ObjectPrivilegeId is not found" duration="4"/>
|
94
|
+
</file>
|
95
|
+
<file path="C:\Work\sso\__tests__\unit\components\group-privilege\group-privilege.spec.ts">
|
96
|
+
<testCase name="GroupPrivilege should initialize with GroupPrivilegeAttr" duration="6"/>
|
97
|
+
<testCase name="GroupPrivilege should throw ClassError when GroupPrivilegeAttr is not found" duration="4"/>
|
98
|
+
<testCase name="GroupPrivilege should initialize with default values" duration="1"/>
|
99
|
+
</file>
|
100
|
+
<file path="C:\Work\sso\__tests__\unit\components\user-system-access\user-system-access.spec.ts">
|
101
|
+
<testCase name="UserSystemAccess constructor should create a new UserSystemAccess instance" duration="2"/>
|
102
|
+
<testCase name="UserSystemAccess init should initialize UserSystemAccess with valid UserSystemAccessId" duration="2"/>
|
103
|
+
<testCase name="UserSystemAccess init should throw ClassError when UserSystemAccessId is not found" duration="1"/>
|
104
|
+
</file>
|
105
|
+
<file path="C:\Work\sso\__tests__\unit\components\user-privilege\user-privilege.spec.ts">
|
106
|
+
<testCase name="UserPrivilege constructor should create a new UserPrivilege instance" duration="2"/>
|
107
|
+
<testCase name="UserPrivilege init should initialize UserPrivilege with valid UserPrivilegeId" duration="2"/>
|
108
|
+
<testCase name="UserPrivilege init should throw ClassError when UserPrivilegeId is not found" duration="4"/>
|
109
|
+
</file>
|
110
|
+
<file path="C:\Work\sso\__tests__\unit\session\session.service.spec.ts">
|
111
|
+
<testCase name="session.service should return session service when instansiated" duration="2"/>
|
112
|
+
<testCase name="session.service should able to write session data" duration="3"/>
|
113
|
+
<testCase name="session.service should able to refresh session data" duration="3"/>
|
114
|
+
</file>
|
115
|
+
<file path="C:\Work\sso\__tests__\unit\system-privilege\system-privilage.spec.ts">
|
116
|
+
<testCase name="SystemPrivilege should be true" duration="2"/>
|
117
|
+
</file>
|
118
|
+
<file path="C:\Work\sso\__tests__\unit\components\password-hash\password-hash.service.spec.ts">
|
119
|
+
<testCase name="password-hash.service should return hash password" duration="2"/>
|
120
|
+
<testCase name="password-hash.service should return true when verify password" duration="1"/>
|
121
|
+
</file>
|
122
|
+
<file path="C:\Work\sso\__tests__\unit\redis-client\redis.service.spec.ts">
|
123
|
+
<testCase name="redis.service should return redis service when instansiated" duration="1"/>
|
124
|
+
<testCase name="redis.service should able to write and read redis" duration="2"/>
|
125
|
+
</file>
|
126
|
+
<file path="C:\Work\sso\__tests__\unit\components\login-user\l.spec.ts">
|
127
|
+
<testCase name="SystemPrivilege should be true" duration="1"/>
|
128
|
+
</file>
|
129
129
|
</testExecutions>
|
@@ -35,7 +35,6 @@ describe('SystemPrivilege', () => {
|
|
35
35
|
expect(systemPrivilege).toBeInstanceOf(system_privilege_1.SystemPrivilege);
|
36
36
|
expect(systemPrivilege.PrivilegeCode).toBe(systemPrivilegeAttr.PrivilegeCode);
|
37
37
|
expect(systemPrivilege.SystemCode).toBe(systemPrivilegeAttr.SystemCode);
|
38
|
-
expect(systemPrivilege.Name).toBe(systemPrivilegeAttr.Name);
|
39
38
|
expect(systemPrivilege.Description).toBe(systemPrivilegeAttr.Description);
|
40
39
|
expect(systemPrivilege.Status).toBe(systemPrivilegeAttr.Status);
|
41
40
|
expect(systemPrivilege.CreatedById).toBe(systemPrivilegeAttr.CreatedById);
|
@@ -51,7 +50,6 @@ describe('SystemPrivilege', () => {
|
|
51
50
|
expect(systemPrivilege).toBeInstanceOf(system_privilege_1.SystemPrivilege);
|
52
51
|
expect(systemPrivilege.PrivilegeCode).toBeUndefined();
|
53
52
|
expect(systemPrivilege.SystemCode).toBeUndefined();
|
54
|
-
expect(systemPrivilege.Name).toBeUndefined();
|
55
53
|
expect(systemPrivilege.Description).toBeUndefined();
|
56
54
|
expect(systemPrivilege.Status).toBeUndefined();
|
57
55
|
expect(systemPrivilege.CreatedById).toBeUndefined();
|
@@ -71,7 +69,6 @@ describe('SystemPrivilege', () => {
|
|
71
69
|
expect(systemPrivilege).toBeInstanceOf(system_privilege_1.SystemPrivilege);
|
72
70
|
expect(systemPrivilege.PrivilegeCode).toBe(systemPrivilegeAttr.PrivilegeCode);
|
73
71
|
expect(systemPrivilege.SystemCode).toBe(systemPrivilegeAttr.SystemCode);
|
74
|
-
expect(systemPrivilege.Name).toBe(systemPrivilegeAttr.Name);
|
75
72
|
expect(systemPrivilege.Description).toBe(systemPrivilegeAttr.Description);
|
76
73
|
expect(systemPrivilege.Status).toBe(systemPrivilegeAttr.Status);
|
77
74
|
expect(systemPrivilege.CreatedById).toBe(systemPrivilegeAttr.CreatedById);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"system-privilege.spec.js","sourceRoot":"","sources":["../../../../../__tests__/unit/components/system-privilege/system-privilege.spec.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,mGAA+F;AAC/F,yHAAoH;AACpH,4CAA4C;AAE5C,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,IAAI,eAAgC,CAAC;IACrC,MAAM,mBAAmB,GAAG;QAC1B,aAAa,EAAE,MAAM;QACrB,UAAU,EAAE,MAAM;QAClB,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,MAAM;QACnB,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,CAAC;QACd,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,WAAW,EAAE,CAAC;QACd,SAAS,EAAE,IAAI,IAAI,EAAE;KACtB,CAAC;IAEF,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,eAAe,GAAG,IAAK,kCAAuB,CAAC,mBAAmB,CAAC,CAAC;YAEpE,MAAM,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC;YACtC,MAAM,CAAC,eAAe,CAAC,CAAC,cAAc,CAAC,kCAAe,CAAC,CAAC;YACxD,MAAM,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;YAC9E,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;YACxE,MAAM,CAAC,eAAe,CAAC,
|
1
|
+
{"version":3,"file":"system-privilege.spec.js","sourceRoot":"","sources":["../../../../../__tests__/unit/components/system-privilege/system-privilege.spec.ts"],"names":[],"mappings":"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"}
|
@@ -1,12 +1,12 @@
|
|
1
1
|
import { LoginUserBase } from '@tomei/general';
|
2
2
|
import { ISessionService } from '../../session/interfaces/session-service.interface';
|
3
3
|
import { ISystemLogin } from '../../../src/interfaces/system-login.interface';
|
4
|
-
import UserGroup from '../../models/user-group.entity';
|
5
4
|
import { YN } from '../../enum/yn.enum';
|
6
5
|
import { UserStatus } from '../../enum';
|
7
6
|
export declare class LoginUser extends LoginUserBase {
|
8
7
|
ObjectId: string;
|
9
8
|
Email: string;
|
9
|
+
private _UserName;
|
10
10
|
private _Password;
|
11
11
|
private _Status;
|
12
12
|
private _DefaultPasswordChangedYN;
|
@@ -47,6 +47,8 @@ export declare class LoginUser extends LoginUserBase {
|
|
47
47
|
private set Password(value);
|
48
48
|
get Status(): UserStatus;
|
49
49
|
private set Status(value);
|
50
|
+
get UserName(): string;
|
51
|
+
set UserName(value: string);
|
50
52
|
get DefaultPasswordChangedYN(): YN;
|
51
53
|
private set DefaultPasswordChangedYN(value);
|
52
54
|
get FirstLoginAt(): Date;
|
@@ -101,7 +103,7 @@ export declare class LoginUser extends LoginUserBase {
|
|
101
103
|
private incrementFailedLoginAttemptCount;
|
102
104
|
static shouldReleaseLock(LastFailedLoginAt: any): boolean;
|
103
105
|
private static releaseLock;
|
104
|
-
static getGroups(loginUser: LoginUser, dbTransaction: any): Promise<
|
106
|
+
static getGroups(loginUser: LoginUser, dbTransaction: any): Promise<import("../../models/user-group.entity").default[]>;
|
105
107
|
private static getInheritedSystemAccess;
|
106
108
|
private static combineSystemAccess;
|
107
109
|
static getSystems(loginUser: LoginUser, dbTransaction: any): Promise<any[]>;
|
@@ -35,6 +35,7 @@ const user_object_privilege_repository_1 = require("../user-object-privilege/use
|
|
35
35
|
const group_privilege_entity_1 = require("../../models/group-privilege.entity");
|
36
36
|
const group_object_privilege_repository_1 = require("../group-object-privilege/group-object-privilege.repository");
|
37
37
|
const speakeasy = require("speakeasy");
|
38
|
+
const login_status_enum_1 = require("../../enum/login-status.enum");
|
38
39
|
class LoginUser extends general_1.LoginUserBase {
|
39
40
|
get SessionService() {
|
40
41
|
return this._SessionService;
|
@@ -57,6 +58,12 @@ class LoginUser extends general_1.LoginUserBase {
|
|
57
58
|
set Status(value) {
|
58
59
|
this._Status = value;
|
59
60
|
}
|
61
|
+
get UserName() {
|
62
|
+
return this._UserName;
|
63
|
+
}
|
64
|
+
set UserName(value) {
|
65
|
+
this._UserName = value;
|
66
|
+
}
|
60
67
|
get DefaultPasswordChangedYN() {
|
61
68
|
return this._DefaultPasswordChangedYN;
|
62
69
|
}
|
@@ -163,6 +170,7 @@ class LoginUser extends general_1.LoginUserBase {
|
|
163
170
|
}
|
164
171
|
if (userInfo) {
|
165
172
|
this.UserId = userInfo.UserId;
|
173
|
+
this.UserName = userInfo.FullName;
|
166
174
|
this.FullName = userInfo.FullName;
|
167
175
|
this.IDNo = userInfo.IDNo;
|
168
176
|
this.Email = userInfo.Email;
|
@@ -208,6 +216,7 @@ class LoginUser extends general_1.LoginUserBase {
|
|
208
216
|
if (user) {
|
209
217
|
const userAttr = {
|
210
218
|
UserId: user.UserId,
|
219
|
+
UserName: user.UserName,
|
211
220
|
FullName: user.Staff.FullName,
|
212
221
|
IDNo: user.Staff.IdNo,
|
213
222
|
ContactNo: user.Staff.Mobile,
|
@@ -260,6 +269,7 @@ class LoginUser extends general_1.LoginUserBase {
|
|
260
269
|
if (user) {
|
261
270
|
const userAttr = {
|
262
271
|
UserId: user.UserId,
|
272
|
+
UserName: user.UserName,
|
263
273
|
FullName: user.Staff.FullName,
|
264
274
|
IDNo: user.Staff.IdNo,
|
265
275
|
ContactNo: user.Staff.Mobile,
|
@@ -356,6 +366,7 @@ class LoginUser extends general_1.LoginUserBase {
|
|
356
366
|
}
|
357
367
|
yield LoginUser._Repository.update({
|
358
368
|
FullName: this.FullName,
|
369
|
+
UserName: this.UserName,
|
359
370
|
IDNo: this.IDNo,
|
360
371
|
Email: this.Email,
|
361
372
|
ContactNo: this.ContactNo,
|
@@ -400,6 +411,7 @@ class LoginUser extends general_1.LoginUserBase {
|
|
400
411
|
SystemCode: system.SystemCode,
|
401
412
|
OriginIp: ipAddress,
|
402
413
|
CreatedAt: new Date(),
|
414
|
+
LoginStatus: login_status_enum_1.LoginStatusEnum.SUCCESS,
|
403
415
|
dbTransaction,
|
404
416
|
});
|
405
417
|
const is2FAEnabledYN = config_1.ComponentConfig.getComponentConfigValue('@tomei/sso', 'is2FAEnabledYN');
|
@@ -409,6 +421,14 @@ class LoginUser extends general_1.LoginUserBase {
|
|
409
421
|
return `${this.UserId}:${sessionId}`;
|
410
422
|
}
|
411
423
|
catch (error) {
|
424
|
+
yield LoginUser._LoginHistoryRepository.create({
|
425
|
+
UserId: this.UserId,
|
426
|
+
SystemCode: systemCode,
|
427
|
+
OriginIp: ipAddress,
|
428
|
+
LoginStatus: login_status_enum_1.LoginStatusEnum.FAILURE,
|
429
|
+
CreatedAt: new Date(),
|
430
|
+
dbTransaction,
|
431
|
+
});
|
412
432
|
throw error;
|
413
433
|
}
|
414
434
|
});
|
@@ -581,11 +601,11 @@ class LoginUser extends general_1.LoginUserBase {
|
|
581
601
|
let privileges = [];
|
582
602
|
const groupPrivileges = [];
|
583
603
|
for (const groupPrivilege of group.GroupPrivileges) {
|
584
|
-
groupPrivileges.push(groupPrivilege.Privilege.
|
604
|
+
groupPrivileges.push(groupPrivilege.Privilege.PrivilegeCode);
|
585
605
|
}
|
586
606
|
const ops = [];
|
587
607
|
for (const objectPrivilege of objectPrivileges) {
|
588
|
-
ops.push(objectPrivilege.Privilege.
|
608
|
+
ops.push(objectPrivilege.Privilege.PrivilegeCode);
|
589
609
|
}
|
590
610
|
privileges = [...privileges, ...groupPrivileges, ...ops];
|
591
611
|
if (group.ParentGroupCode && group.InheritParentPrivilegeYN === 'Y') {
|
@@ -616,7 +636,7 @@ class LoginUser extends general_1.LoginUserBase {
|
|
616
636
|
},
|
617
637
|
transaction: dbTransaction,
|
618
638
|
});
|
619
|
-
const privileges = userPrivileges.map((u) => u.Privilege.
|
639
|
+
const privileges = userPrivileges.map((u) => u.Privilege.PrivilegeCode);
|
620
640
|
return privileges;
|
621
641
|
}
|
622
642
|
catch (error) {
|
@@ -640,7 +660,7 @@ class LoginUser extends general_1.LoginUserBase {
|
|
640
660
|
},
|
641
661
|
transaction: dbTransaction,
|
642
662
|
});
|
643
|
-
const privilegesCodes = userObjectPrivileges.map((u) => u.Privilege.
|
663
|
+
const privilegesCodes = userObjectPrivileges.map((u) => u.Privilege.PrivilegeCode);
|
644
664
|
return privilegesCodes;
|
645
665
|
}
|
646
666
|
catch (error) {
|
@@ -709,13 +729,16 @@ class LoginUser extends general_1.LoginUserBase {
|
|
709
729
|
static checkUserInfoDuplicated(dbTransaction, query) {
|
710
730
|
return __awaiter(this, void 0, void 0, function* () {
|
711
731
|
try {
|
712
|
-
const { Email, IdType, IdNo, ContactNo } = query;
|
732
|
+
const { Email, UserName, IdType, IdNo, ContactNo } = query;
|
713
733
|
const where = {
|
714
734
|
[sequelize_1.Op.or]: {},
|
715
735
|
};
|
716
736
|
if (Email) {
|
717
737
|
where[sequelize_1.Op.or]['Email'] = Email;
|
718
738
|
}
|
739
|
+
if (UserName) {
|
740
|
+
where[sequelize_1.Op.or]['UserName'] = UserName;
|
741
|
+
}
|
719
742
|
if (IdType && IdNo) {
|
720
743
|
where[sequelize_1.Op.or]['IdType'] = IdType;
|
721
744
|
where[sequelize_1.Op.or]['IdNo'] = IdNo;
|
@@ -876,11 +899,12 @@ class LoginUser extends general_1.LoginUserBase {
|
|
876
899
|
if (!isPrivileged) {
|
877
900
|
throw new general_1.ClassError('LoginUser', 'LoginUserErrMsg0X', 'You do not have the privilege to create user');
|
878
901
|
}
|
879
|
-
if (!user.Email) {
|
880
|
-
throw new general_1.ClassError('LoginUser', 'LoginUserErrMsg0X', 'Email is required');
|
902
|
+
if (!user.Email && !user.UserName) {
|
903
|
+
throw new general_1.ClassError('LoginUser', 'LoginUserErrMsg0X', 'Email and Username is required');
|
881
904
|
}
|
882
905
|
yield LoginUser.checkUserInfoDuplicated(dbTransaction, {
|
883
906
|
Email: user.Email,
|
907
|
+
UserName: user.UserName,
|
884
908
|
IdType: user.IDType,
|
885
909
|
IdNo: user.IDNo,
|
886
910
|
ContactNo: user.ContactNo,
|
@@ -888,6 +912,7 @@ class LoginUser extends general_1.LoginUserBase {
|
|
888
912
|
const defaultPassword = LoginUser.generateDefaultPassword();
|
889
913
|
user = yield LoginUser.setPassword(dbTransaction, user, defaultPassword);
|
890
914
|
const userInfo = {
|
915
|
+
UserName: user.UserName,
|
891
916
|
FullName: user.FullName,
|
892
917
|
IDNo: user.IDNo,
|
893
918
|
Email: user.Email,
|
@@ -912,6 +937,7 @@ class LoginUser extends general_1.LoginUserBase {
|
|
912
937
|
};
|
913
938
|
const newUser = yield LoginUser._Repository.create({
|
914
939
|
Email: userInfo.Email,
|
940
|
+
UserName: userInfo.UserName,
|
915
941
|
Password: userInfo.Password,
|
916
942
|
Status: userInfo.Status,
|
917
943
|
DefaultPasswordChangedYN: userInfo.DefaultPasswordChangedYN,
|