Migliorata login di PVM
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good
This commit is contained in:
@@ -71,7 +71,7 @@ public class UserCacheService {
|
||||
}
|
||||
}
|
||||
|
||||
public void cache(String dbName, UserDTO user) {
|
||||
private void cache(String dbName, UserDTO user) {
|
||||
cachedUsers.putIfAbsent(dbName, new ArrayList<>());
|
||||
|
||||
List<UserDTO> users = cachedUsers.get(dbName);
|
||||
|
||||
@@ -311,7 +311,34 @@ public class SystemService {
|
||||
HashMap<String, Object> userData = null;
|
||||
|
||||
if (!UtilityString.isNullOrEmpty(profileDB)) { // SELEZIONE DB DIRETTO
|
||||
userData = this.getUserdata(username, password, md5User, profileDB);
|
||||
String dbName = settingsModel.getDbNameFromProfileDb(profileDB);
|
||||
UserDTO foundUser = userCacheService.retrieveUser(dbName, username, password, requestDataDTO.getApplication());
|
||||
|
||||
if (foundUser.isAttivo()) {
|
||||
String sql = Query.format("SELECT * FROM " + StbUser.ENTITY + " WHERE user_name = {}", username);
|
||||
StbUser stbUser;
|
||||
try (MultiDBTransactionManager mdb = new MultiDBTransactionManager(profileDB)) {
|
||||
stbUser = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(mdb.getPrimaryConnection(), sql, StbUser.class);
|
||||
}
|
||||
|
||||
StbUser finalStbUser = stbUser;
|
||||
userData = new HashMap<String, Object>() {{
|
||||
put("flag_attivo", foundUser.isAttivo() ? "S" : "N");
|
||||
put("user_name", foundUser.getUsername());
|
||||
put("fullName", foundUser.getFullname());
|
||||
put("full_name", foundUser.getFullname());
|
||||
put("cod_lang", finalStbUser.getCodLang());
|
||||
put("cod_mdep", foundUser.getCodMdep());
|
||||
put("profile_db", profileDB);
|
||||
put("password_endtime", finalStbUser.getPasswordEndtime());
|
||||
put("user_code", foundUser.getUserCode());
|
||||
put("e_mail", foundUser.getEmail());
|
||||
put("flag_password_expiring", finalStbUser.getFlagPasswordExpiring());
|
||||
put("Last_access_datetime", finalStbUser.getLastAccessDatetime());
|
||||
put("key_group", foundUser.getKeyGroup());
|
||||
|
||||
}};
|
||||
}
|
||||
} else {
|
||||
|
||||
List<String> profiles = null;
|
||||
@@ -335,22 +362,35 @@ public class SystemService {
|
||||
|
||||
List<String> profilesWhereUserFound = new ArrayList<>();
|
||||
for (String profile : profiles) {
|
||||
HashMap<String, Object> tmpUserData = this.getUserdata(username, password, md5User, profile);
|
||||
if (tmpUserData != null) {
|
||||
UserDTO userDTO = new UserDTO()
|
||||
.setUsername(UtilityHashMap.getValueIfExists(tmpUserData, "user_name"))
|
||||
.setEmail(UtilityHashMap.getValueIfExists(tmpUserData, "e_mail"))
|
||||
.setFullname(UtilityHashMap.getValueIfExists(tmpUserData, "full_name"))
|
||||
.setWeb(true)
|
||||
.setAttivo("S".equalsIgnoreCase(UtilityHashMap.getValueIfExists(tmpUserData, "flag_attivo")));
|
||||
String dbName = settingsModel.getDbNameFromProfileDb(profile);
|
||||
UserDTO foundUser = userCacheService.retrieveUser(dbName, username, password, requestDataDTO.getApplication());
|
||||
|
||||
userCacheService.cache(settingsModel.getDbNameFromProfileDb(profile), userDTO);
|
||||
if ((!this.isUtenteAttivo(userData))) {
|
||||
userData = tmpUserData;
|
||||
if (foundUser.isAttivo()) {
|
||||
String sql = Query.format("SELECT * FROM " + StbUser.ENTITY + " WHERE user_name = {}", username);
|
||||
StbUser stbUser;
|
||||
try (MultiDBTransactionManager mdb = new MultiDBTransactionManager(profile)) {
|
||||
stbUser = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(mdb.getPrimaryConnection(), sql, StbUser.class);
|
||||
}
|
||||
tmpUserData.put("fullName", userDTO.getFullname());
|
||||
profilesWhereUserFound.add(profile);
|
||||
|
||||
StbUser finalStbUser = stbUser;
|
||||
userData = new HashMap<String, Object>() {{
|
||||
put("flag_attivo", foundUser.isAttivo() ? "S" : "N");
|
||||
put("user_name", foundUser.getUsername());
|
||||
put("fullName", foundUser.getFullname());
|
||||
put("full_name", foundUser.getFullname());
|
||||
put("cod_lang", finalStbUser.getCodLang());
|
||||
put("cod_mdep", foundUser.getCodMdep());
|
||||
put("profile_db", profile);
|
||||
put("password_endtime", finalStbUser.getPasswordEndtime());
|
||||
put("user_code", foundUser.getUserCode());
|
||||
put("e_mail", foundUser.getEmail());
|
||||
put("flag_password_expiring", finalStbUser.getFlagPasswordExpiring());
|
||||
put("Last_access_datetime", finalStbUser.getLastAccessDatetime());
|
||||
put("key_group", foundUser.getKeyGroup());
|
||||
|
||||
}};
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (userData != null) {
|
||||
|
||||
Reference in New Issue
Block a user