rez_core 2.1.31 → 2.1.32
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/module/user/service/login.service.d.ts +6 -4
- package/dist/module/user/service/login.service.js +36 -27
- package/dist/module/user/service/login.service.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/module/user/service/login.service.ts +59 -43
|
@@ -2,7 +2,7 @@ import { UserSessionService } from './user-session.service';
|
|
|
2
2
|
import { UserService } from './user.service';
|
|
3
3
|
import { ConfigService } from '@nestjs/config';
|
|
4
4
|
import { UserRoleMapping } from '../entity/user-role-mapping.entity';
|
|
5
|
-
import { Repository } from 'typeorm';
|
|
5
|
+
import { DataSource, Repository } from 'typeorm';
|
|
6
6
|
import { Role } from '../entity/role.entity';
|
|
7
7
|
export declare class LoginService {
|
|
8
8
|
private readonly userService;
|
|
@@ -10,7 +10,8 @@ export declare class LoginService {
|
|
|
10
10
|
private configService;
|
|
11
11
|
private readonly userRoleMappingRepository;
|
|
12
12
|
private readonly roleRepo;
|
|
13
|
-
|
|
13
|
+
private readonly dataSource;
|
|
14
|
+
constructor(userService: UserService, userSessionService: UserSessionService, configService: ConfigService, userRoleMappingRepository: Repository<UserRoleMapping>, roleRepo: Repository<Role>, dataSource: DataSource);
|
|
14
15
|
masterKey: string;
|
|
15
16
|
masterIv: string;
|
|
16
17
|
login(email: string, password: string): Promise<{
|
|
@@ -25,11 +26,12 @@ export declare class LoginService {
|
|
|
25
26
|
success: boolean;
|
|
26
27
|
accessToken: string;
|
|
27
28
|
appcode: string;
|
|
28
|
-
level_type:
|
|
29
|
-
level_id:
|
|
29
|
+
level_type: string;
|
|
30
|
+
level_id: string;
|
|
30
31
|
message?: undefined;
|
|
31
32
|
type?: undefined;
|
|
32
33
|
}>;
|
|
34
|
+
private getDefaultAccess;
|
|
33
35
|
loginWithGoogle(email: string, name: any): Promise<string>;
|
|
34
36
|
logout(sessionKey: string): Promise<{
|
|
35
37
|
message: string;
|
|
@@ -24,12 +24,13 @@ const user_role_mapping_entity_1 = require("../entity/user-role-mapping.entity")
|
|
|
24
24
|
const typeorm_2 = require("typeorm");
|
|
25
25
|
const role_entity_1 = require("../entity/role.entity");
|
|
26
26
|
let LoginService = class LoginService {
|
|
27
|
-
constructor(userService, userSessionService, configService, userRoleMappingRepository, roleRepo) {
|
|
27
|
+
constructor(userService, userSessionService, configService, userRoleMappingRepository, roleRepo, dataSource) {
|
|
28
28
|
this.userService = userService;
|
|
29
29
|
this.userSessionService = userSessionService;
|
|
30
30
|
this.configService = configService;
|
|
31
31
|
this.userRoleMappingRepository = userRoleMappingRepository;
|
|
32
32
|
this.roleRepo = roleRepo;
|
|
33
|
+
this.dataSource = dataSource;
|
|
33
34
|
this.masterKey = this.configService.get('MASTER_KEY') || '';
|
|
34
35
|
this.masterIv = this.configService.get('MASTER_IV') || '';
|
|
35
36
|
}
|
|
@@ -57,38 +58,19 @@ let LoginService = class LoginService {
|
|
|
57
58
|
type: 'password',
|
|
58
59
|
};
|
|
59
60
|
}
|
|
60
|
-
let
|
|
61
|
-
|
|
62
|
-
if (!appcode) {
|
|
63
|
-
appcode = 'ADM';
|
|
61
|
+
let appcode = user.last_app_access || 'ADM';
|
|
62
|
+
if (!user.last_app_access) {
|
|
64
63
|
await this.userService.setDefaultLastAccess(user.id, appcode);
|
|
65
64
|
}
|
|
66
65
|
const roleMappings = await this.userRoleMappingRepository.find({
|
|
67
|
-
where: {
|
|
68
|
-
user_id: user.id,
|
|
69
|
-
appcode,
|
|
70
|
-
},
|
|
66
|
+
where: { user_id: user.id, appcode },
|
|
71
67
|
});
|
|
72
68
|
if (!roleMappings.length) {
|
|
73
69
|
throw new common_1.BadRequestException('User does not have any access mapped for this app.');
|
|
74
70
|
}
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
defaultAccess = {
|
|
79
|
-
level_type: user.last_level_type,
|
|
80
|
-
level_id: user.last_level_id,
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
const priority = { org: 1, sch: 2, brn: 3 };
|
|
85
|
-
defaultAccess = roleMappings.sort((a, b) => priority[a.level_type] - priority[b.level_type])[0];
|
|
86
|
-
await this.userService.setLastLevelTypeAndId(user.id, defaultAccess.level_type, defaultAccess.level_id);
|
|
87
|
-
}
|
|
88
|
-
const token = await this.userSessionService.createSession(user, appcode, {
|
|
89
|
-
level_type: defaultAccess.level_type,
|
|
90
|
-
level_id: defaultAccess.level_id,
|
|
91
|
-
});
|
|
71
|
+
const defaultAccess = await this.getDefaultAccess(user, roleMappings);
|
|
72
|
+
await this.userService.setLastLevelTypeAndId(user.id, defaultAccess.level_type, defaultAccess.level_id);
|
|
73
|
+
const token = await this.userSessionService.createSession(user, appcode, defaultAccess);
|
|
92
74
|
if (user.is_firstlogin === 1) {
|
|
93
75
|
user.invitation_status = 'ACCEPTED';
|
|
94
76
|
user.is_firstlogin = 0;
|
|
@@ -103,6 +85,32 @@ let LoginService = class LoginService {
|
|
|
103
85
|
level_id: defaultAccess.level_id,
|
|
104
86
|
};
|
|
105
87
|
}
|
|
88
|
+
async getDefaultAccess(user, roleMappings) {
|
|
89
|
+
const orgAccess = roleMappings.find(r => r.level_type === 'ORG');
|
|
90
|
+
const brnAccesses = roleMappings.filter(r => r.level_type === 'BRN');
|
|
91
|
+
const schAccesses = roleMappings.filter(r => r.level_type === 'SCH');
|
|
92
|
+
const validURM = roleMappings.find(r => r.level_type === user.last_level_type && r.level_id === user.last_level_id);
|
|
93
|
+
if (user.last_level_type && user.last_level_id && validURM) {
|
|
94
|
+
return { level_type: user.last_level_type, level_id: user.last_level_id };
|
|
95
|
+
}
|
|
96
|
+
if (orgAccess) {
|
|
97
|
+
return { level_type: 'ORG', level_id: orgAccess.level_id };
|
|
98
|
+
}
|
|
99
|
+
if (brnAccesses.length) {
|
|
100
|
+
const brandId = brnAccesses[0].level_id;
|
|
101
|
+
const rows = await this.dataSource.query(`SELECT id FROM cr_school WHERE brand_id = ? ORDER BY id ASC LIMIT 1`, [brandId]);
|
|
102
|
+
if (rows.length) {
|
|
103
|
+
return { level_type: 'SCH', level_id: rows[0].id };
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
throw new common_1.BadRequestException('User has BRN access but no schools found under that brand.');
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
if (schAccesses.length) {
|
|
110
|
+
return { level_type: 'SCH', level_id: schAccesses[0].level_id };
|
|
111
|
+
}
|
|
112
|
+
throw new common_1.BadRequestException('User does not have ORG, BRN, or SCH access for this app.');
|
|
113
|
+
}
|
|
106
114
|
async loginWithGoogle(email, name) {
|
|
107
115
|
let user = await this.userService.findByEmailId(email);
|
|
108
116
|
if (!user) {
|
|
@@ -141,6 +149,7 @@ exports.LoginService = LoginService = __decorate([
|
|
|
141
149
|
user_session_service_1.UserSessionService,
|
|
142
150
|
config_1.ConfigService,
|
|
143
151
|
typeorm_2.Repository,
|
|
144
|
-
typeorm_2.Repository
|
|
152
|
+
typeorm_2.Repository,
|
|
153
|
+
typeorm_2.DataSource])
|
|
145
154
|
], LoginService);
|
|
146
155
|
//# sourceMappingURL=login.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.service.js","sourceRoot":"","sources":["../../../../src/module/user/service/login.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAyE;AACzE,oFAAgF;AAChF,uDAAiD;AACjD,iEAA4D;AAC5D,iDAA6C;AAC7C,2CAA+C;
|
|
1
|
+
{"version":3,"file":"login.service.js","sourceRoot":"","sources":["../../../../src/module/user/service/login.service.ts"],"names":[],"mappings":"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"}
|