@tomei/sso 0.61.0 → 0.61.1
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/__tests__/unit/components/group-privilege/group-privilege.test.d.ts +1 -0
- package/dist/__tests__/unit/components/group-privilege/group-privilege.test.js +71 -0
- package/dist/__tests__/unit/components/group-privilege/group-privilege.test.js.map +1 -0
- package/dist/__tests__/unit/components/login-user/login-user.spec.d.ts +0 -0
- package/dist/__tests__/unit/components/login-user/login-user.spec.js +6 -0
- package/dist/__tests__/unit/components/login-user/login-user.spec.js.map +1 -0
- package/dist/src/components/login-history/login-history.d.ts +23 -0
- package/dist/src/components/login-history/login-history.js +88 -0
- package/dist/src/components/login-history/login-history.js.map +1 -0
- package/dist/src/components/login-user/user.js +3 -2
- package/dist/src/components/login-user/user.js.map +1 -1
- package/dist/src/interfaces/login-history-search-attr.interface.d.ts +8 -0
- package/dist/src/interfaces/login-history-search-attr.interface.js +3 -0
- package/dist/src/interfaces/login-history-search-attr.interface.js.map +1 -0
- package/dist/src/interfaces/login-history.interface.d.ts +11 -0
- package/dist/src/interfaces/login-history.interface.js +3 -0
- package/dist/src/interfaces/login-history.interface.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/components/api-key/api-key.repository.ts +15 -15
- package/src/components/api-key/api-key.ts +448 -448
- package/src/components/api-key/index.ts +4 -4
- package/src/components/building/building.repository.ts +27 -27
- package/src/components/building/index.ts +2 -2
- package/src/components/group/group.repository.ts +26 -26
- package/src/components/group/group.ts +2284 -2284
- package/src/components/group/index.ts +3 -3
- package/src/components/group-object-privilege/group-object-privilege.repository.ts +25 -25
- package/src/components/group-object-privilege/group-object-privilege.ts +278 -278
- package/src/components/group-object-privilege/index.ts +2 -2
- package/src/components/group-privilege/group-privilege.repository.ts +29 -29
- package/src/components/group-privilege/group-privilege.ts +84 -84
- package/src/components/group-privilege/index.ts +2 -2
- package/src/components/group-reporting-user/group-reporting-user.repository.ts +23 -23
- package/src/components/group-reporting-user/group-reporting-user.ts +506 -506
- package/src/components/group-reporting-user/index.ts +3 -3
- package/src/components/group-system-access/group-system-access.repository.ts +43 -43
- package/src/components/group-system-access/group-system-access.ts +90 -90
- package/src/components/group-system-access/index.ts +2 -2
- package/src/components/index.ts +20 -20
- package/src/components/login-user/index.ts +5 -5
- package/src/components/login-user/interfaces/check-user-info-duplicated.interface.ts +7 -7
- package/src/components/login-user/interfaces/index.ts +1 -1
- package/src/components/login-user/interfaces/system-access.interface.ts +13 -13
- package/src/components/login-user/interfaces/user-info.interface.ts +34 -34
- package/src/components/login-user/login-user.ts +362 -362
- package/src/components/login-user/user.repository.ts +11 -11
- package/src/components/login-user/user.ts +3 -2
- package/src/components/password-hash/index.ts +2 -2
- package/src/components/password-hash/interfaces/index.ts +1 -1
- package/src/components/password-hash/interfaces/password-hash-service.interface.ts +4 -4
- package/src/components/password-hash/password-hash.service.ts +14 -14
- package/src/components/staff/index.ts +2 -2
- package/src/components/staff/staff.repository.ts +27 -27
- package/src/components/system/index.ts +3 -3
- package/src/components/system/system.repository.ts +11 -11
- package/src/components/system/system.ts +456 -456
- package/src/components/system-privilege/index.ts +4 -4
- package/src/components/system-privilege/system-privilege.repository.ts +18 -18
- package/src/components/system-privilege/system-privilege.ts +541 -541
- package/src/components/user-group/index.ts +2 -2
- package/src/components/user-group/user-group.repository.ts +19 -19
- package/src/components/user-group/user-group.ts +764 -764
- package/src/components/user-object-privilege/index.ts +2 -2
- package/src/components/user-object-privilege/user-object-privilege.repository.ts +11 -11
- package/src/components/user-object-privilege/user-object-privilege.ts +79 -79
- package/src/components/user-password-history/index.ts +2 -2
- package/src/components/user-password-history/user-password-history.repository.ts +39 -39
- package/src/components/user-password-history/user-password-history.ts +187 -187
- package/src/components/user-privilege/index.ts +2 -2
- package/src/components/user-privilege/user-privilege.repository.ts +25 -25
- package/src/components/user-privilege/user-privilege.ts +662 -662
- package/src/components/user-reporting-hierarchy/index.ts +2 -2
- package/src/components/user-reporting-hierarchy/user-reporting-hierarchy.repository.ts +30 -30
- package/src/components/user-reporting-hierarchy/user-reporting-hierarchy.ts +505 -505
- package/src/components/user-system-access/index.ts +2 -2
- package/src/components/user-system-access/user-system-access.repository.ts +41 -41
- package/src/database.ts +15 -15
- package/src/enum/api-key.enum.ts +5 -5
- package/src/enum/building-type.enum.ts +6 -6
- package/src/enum/group-type.enum.ts +8 -8
- package/src/enum/index.ts +6 -6
- package/src/enum/login-status.enum.ts +4 -4
- package/src/enum/object-status.enum.ts +4 -4
- package/src/enum/user-status.enum.ts +7 -7
- package/src/enum/yn.enum.ts +4 -4
- package/src/index.ts +8 -8
- package/src/interfaces/api-key-attr.interface.ts +16 -16
- package/src/interfaces/group-object-privilege.interface.ts +14 -14
- package/src/interfaces/group-privilege.interface.ts +10 -10
- package/src/interfaces/group-reporting-user.interface.ts +11 -11
- package/src/interfaces/group-search-attr.interface.ts +9 -9
- package/src/interfaces/group-system-access.interface.ts +10 -10
- package/src/interfaces/group.interface.ts +17 -17
- package/src/interfaces/index.ts +13 -13
- package/src/interfaces/system-login.interface.ts +6 -6
- package/src/interfaces/system-privilege-search.interface.ts +5 -5
- package/src/interfaces/system-privilege.interface.ts +11 -11
- package/src/interfaces/system-search-attr.interface.ts +5 -5
- package/src/interfaces/system.interface.ts +15 -15
- package/src/interfaces/user-group.interface.ts +12 -12
- package/src/interfaces/user-object-privilege.interface.ts +14 -14
- package/src/interfaces/user-password-history.interface.ts +6 -6
- package/src/interfaces/user-privilege.interface.ts +10 -10
- package/src/interfaces/user-reporting-hierarchy.interface.ts +11 -11
- package/src/interfaces/user-session.interface.ts +5 -5
- package/src/interfaces/user-system-access.interface.ts +10 -10
- package/src/models/api-key-entity.ts +101 -101
- package/src/models/building.entity.ts +103 -103
- package/src/models/group-object-privilege.entity.ts +91 -91
- package/src/models/group-privilege.entity.ts +78 -78
- package/src/models/group-reporting-user.entity.ts +95 -95
- package/src/models/group-system-access.entity.ts +81 -81
- package/src/models/group.entity.ts +127 -127
- package/src/models/staff.entity.ts +91 -91
- package/src/models/system-privilege.entity.ts +90 -90
- package/src/models/system.entity.ts +113 -113
- package/src/models/user-group.entity.ts +91 -91
- package/src/models/user-object-privilege.entity.ts +90 -90
- package/src/models/user-password-history.ts +51 -51
- package/src/models/user-privilege.entity.ts +78 -78
- package/src/models/user-reporting-hierarchy.entity.ts +102 -102
- package/src/models/user-system-access.entity.ts +87 -87
- package/src/models/user.entity.ts +193 -193
- package/src/redis-client/__mocks__/jest-initial-setup.ts +2 -2
- package/src/redis-client/__mocks__/redis-mock.ts +28 -28
- package/src/redis-client/index.ts +1 -1
- package/src/redis-client/redis.service.ts +75 -75
- package/src/session/index.ts +2 -2
- package/src/session/interfaces/index.ts +1 -1
- package/src/session/interfaces/session-service.interface.ts +26 -26
- package/src/session/session.service.ts +96 -96
- package/src/types/auth-context.ts +10 -10
- package/src/types/index.ts +1 -1
@@ -1,96 +1,96 @@
|
|
1
|
-
import { RedisService } from '../redis-client/redis.service';
|
2
|
-
import { ISessionService } from './interfaces/session-service.interface';
|
3
|
-
import { IUserSession } from '../interfaces/user-session.interface';
|
4
|
-
|
5
|
-
export class SessionService implements ISessionService {
|
6
|
-
private static _RedisService: RedisService;
|
7
|
-
private environment: string = '';
|
8
|
-
|
9
|
-
private constructor() {}
|
10
|
-
|
11
|
-
static async init(redisClient?: any): Promise<SessionService> {
|
12
|
-
const sessionService = new SessionService();
|
13
|
-
SessionService._RedisService = await RedisService.init(redisClient);
|
14
|
-
if (process.env.NODE_ENV == 'test') {
|
15
|
-
sessionService.environment = 'test:';
|
16
|
-
} else if (process.env.NODE_ENV == 'staging') {
|
17
|
-
sessionService.environment = 'staging:';
|
18
|
-
}
|
19
|
-
return sessionService;
|
20
|
-
}
|
21
|
-
|
22
|
-
async setUserSession(
|
23
|
-
userId: string,
|
24
|
-
sessionData: IUserSession,
|
25
|
-
sessionName: string = 'tomei-sid',
|
26
|
-
duration: number = 60 * 60, //1 hour
|
27
|
-
): Promise<void> {
|
28
|
-
try {
|
29
|
-
const key = `${this.environment}${sessionName}:${userId}`;
|
30
|
-
await SessionService._RedisService.set(key, sessionData, duration);
|
31
|
-
} catch (error) {
|
32
|
-
throw error;
|
33
|
-
}
|
34
|
-
}
|
35
|
-
|
36
|
-
async retrieveUserSession(
|
37
|
-
userId: string,
|
38
|
-
sessionName: string = 'tomei-sid',
|
39
|
-
): Promise<IUserSession> {
|
40
|
-
try {
|
41
|
-
const key = `${this.environment}${sessionName}:${userId}`;
|
42
|
-
const stringData = await SessionService._RedisService.get(key);
|
43
|
-
if (!stringData)
|
44
|
-
return {
|
45
|
-
systemLogins: [],
|
46
|
-
};
|
47
|
-
return JSON.parse(stringData);
|
48
|
-
} catch (error) {
|
49
|
-
throw error;
|
50
|
-
}
|
51
|
-
}
|
52
|
-
|
53
|
-
async refreshDuration(
|
54
|
-
userid: string,
|
55
|
-
sessionName: string = 'tomei-sid',
|
56
|
-
duration: number = 60 * 60,
|
57
|
-
): Promise<void> {
|
58
|
-
try {
|
59
|
-
const userSession = await this.retrieveUserSession(userid, sessionName);
|
60
|
-
await this.setUserSession(userid, userSession, sessionName, duration);
|
61
|
-
} catch (error) {
|
62
|
-
throw error;
|
63
|
-
}
|
64
|
-
}
|
65
|
-
|
66
|
-
async setAuthorizationCode(
|
67
|
-
token: string,
|
68
|
-
value: string,
|
69
|
-
expire: number,
|
70
|
-
): Promise<void> {
|
71
|
-
try {
|
72
|
-
const key = `${this.environment}tomei-auth-code:${token}`;
|
73
|
-
await SessionService._RedisService.set(key, value, expire);
|
74
|
-
} catch (error) {
|
75
|
-
throw error;
|
76
|
-
}
|
77
|
-
}
|
78
|
-
|
79
|
-
async retrieveAuthorizationCode(token: string): Promise<string> {
|
80
|
-
try {
|
81
|
-
const key = `${this.environment}tomei-auth-code:${token}`;
|
82
|
-
return await SessionService._RedisService.get(key);
|
83
|
-
} catch (error) {
|
84
|
-
throw error;
|
85
|
-
}
|
86
|
-
}
|
87
|
-
|
88
|
-
async deleteAuthorizationCode(token: string): Promise<void> {
|
89
|
-
try {
|
90
|
-
const key = `${this.environment}tomei-auth-code:${token}`;
|
91
|
-
await SessionService._RedisService.del(key);
|
92
|
-
} catch (error) {
|
93
|
-
throw error;
|
94
|
-
}
|
95
|
-
}
|
96
|
-
}
|
1
|
+
import { RedisService } from '../redis-client/redis.service';
|
2
|
+
import { ISessionService } from './interfaces/session-service.interface';
|
3
|
+
import { IUserSession } from '../interfaces/user-session.interface';
|
4
|
+
|
5
|
+
export class SessionService implements ISessionService {
|
6
|
+
private static _RedisService: RedisService;
|
7
|
+
private environment: string = '';
|
8
|
+
|
9
|
+
private constructor() {}
|
10
|
+
|
11
|
+
static async init(redisClient?: any): Promise<SessionService> {
|
12
|
+
const sessionService = new SessionService();
|
13
|
+
SessionService._RedisService = await RedisService.init(redisClient);
|
14
|
+
if (process.env.NODE_ENV == 'test') {
|
15
|
+
sessionService.environment = 'test:';
|
16
|
+
} else if (process.env.NODE_ENV == 'staging') {
|
17
|
+
sessionService.environment = 'staging:';
|
18
|
+
}
|
19
|
+
return sessionService;
|
20
|
+
}
|
21
|
+
|
22
|
+
async setUserSession(
|
23
|
+
userId: string,
|
24
|
+
sessionData: IUserSession,
|
25
|
+
sessionName: string = 'tomei-sid',
|
26
|
+
duration: number = 60 * 60, //1 hour
|
27
|
+
): Promise<void> {
|
28
|
+
try {
|
29
|
+
const key = `${this.environment}${sessionName}:${userId}`;
|
30
|
+
await SessionService._RedisService.set(key, sessionData, duration);
|
31
|
+
} catch (error) {
|
32
|
+
throw error;
|
33
|
+
}
|
34
|
+
}
|
35
|
+
|
36
|
+
async retrieveUserSession(
|
37
|
+
userId: string,
|
38
|
+
sessionName: string = 'tomei-sid',
|
39
|
+
): Promise<IUserSession> {
|
40
|
+
try {
|
41
|
+
const key = `${this.environment}${sessionName}:${userId}`;
|
42
|
+
const stringData = await SessionService._RedisService.get(key);
|
43
|
+
if (!stringData)
|
44
|
+
return {
|
45
|
+
systemLogins: [],
|
46
|
+
};
|
47
|
+
return JSON.parse(stringData);
|
48
|
+
} catch (error) {
|
49
|
+
throw error;
|
50
|
+
}
|
51
|
+
}
|
52
|
+
|
53
|
+
async refreshDuration(
|
54
|
+
userid: string,
|
55
|
+
sessionName: string = 'tomei-sid',
|
56
|
+
duration: number = 60 * 60,
|
57
|
+
): Promise<void> {
|
58
|
+
try {
|
59
|
+
const userSession = await this.retrieveUserSession(userid, sessionName);
|
60
|
+
await this.setUserSession(userid, userSession, sessionName, duration);
|
61
|
+
} catch (error) {
|
62
|
+
throw error;
|
63
|
+
}
|
64
|
+
}
|
65
|
+
|
66
|
+
async setAuthorizationCode(
|
67
|
+
token: string,
|
68
|
+
value: string,
|
69
|
+
expire: number,
|
70
|
+
): Promise<void> {
|
71
|
+
try {
|
72
|
+
const key = `${this.environment}tomei-auth-code:${token}`;
|
73
|
+
await SessionService._RedisService.set(key, value, expire);
|
74
|
+
} catch (error) {
|
75
|
+
throw error;
|
76
|
+
}
|
77
|
+
}
|
78
|
+
|
79
|
+
async retrieveAuthorizationCode(token: string): Promise<string> {
|
80
|
+
try {
|
81
|
+
const key = `${this.environment}tomei-auth-code:${token}`;
|
82
|
+
return await SessionService._RedisService.get(key);
|
83
|
+
} catch (error) {
|
84
|
+
throw error;
|
85
|
+
}
|
86
|
+
}
|
87
|
+
|
88
|
+
async deleteAuthorizationCode(token: string): Promise<void> {
|
89
|
+
try {
|
90
|
+
const key = `${this.environment}tomei-auth-code:${token}`;
|
91
|
+
await SessionService._RedisService.del(key);
|
92
|
+
} catch (error) {
|
93
|
+
throw error;
|
94
|
+
}
|
95
|
+
}
|
96
|
+
}
|
@@ -1,10 +1,10 @@
|
|
1
|
-
import { IAPIKeyAttr } from '../interfaces/api-key-attr.interface';
|
2
|
-
import { LoginUser } from '../components/login-user/login-user';
|
3
|
-
|
4
|
-
export type AuthContext =
|
5
|
-
| {
|
6
|
-
loginUser: LoginUser;
|
7
|
-
}
|
8
|
-
| {
|
9
|
-
apiKey: IAPIKeyAttr;
|
10
|
-
};
|
1
|
+
import { IAPIKeyAttr } from '../interfaces/api-key-attr.interface';
|
2
|
+
import { LoginUser } from '../components/login-user/login-user';
|
3
|
+
|
4
|
+
export type AuthContext =
|
5
|
+
| {
|
6
|
+
loginUser: LoginUser;
|
7
|
+
}
|
8
|
+
| {
|
9
|
+
apiKey: IAPIKeyAttr;
|
10
|
+
};
|
package/src/types/index.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export * from './auth-context';
|
1
|
+
export * from './auth-context';
|