Merge branch 'dev/security/login' into prod/base

This commit is contained in:
Salman Manoe 2024-08-22 10:56:01 +07:00
commit f092607ec4
2 changed files with 42 additions and 106 deletions

View File

@ -1,14 +1,13 @@
package com.jasamedika.medifirst2000.dao;
import java.util.List;
import java.util.Map;
import com.jasamedika.medifirst2000.entities.LoginUser;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import com.jasamedika.medifirst2000.entities.LoginUser;
import java.util.List;
import java.util.Map;
@Repository("LoginUserDao")
public interface LoginUserDao extends PagingAndSortingRepository<LoginUser, Integer> {
@ -73,11 +72,11 @@ public interface LoginUserDao extends PagingAndSortingRepository<LoginUser, Inte
List<LoginUser> findAllLoginUserByIdPegawai(@Param("idPegawai") Integer idPegawai);
@Query("select NEW com.jasamedika.medifirst2000.entities.LoginUser(model.id,model.namaUser) "
+ " from LoginUser model where model.namaUser =:namaUser and model.statusEnabled = true ")
+ " from LoginUser model where model.namaUser =:namaUser")
LoginUser findLoginUserByNamaUser(@Param("namaUser") String namaUser);
@Query("select new Map(model.id as id, model.namaUser as namaUser, model.kelompokUserId as kelompokUserId, model.pegawaiId as pegawaiId) "
+ "from LoginUser model where model.id = :loginUserId and model.statusEnabled is true")
public Map<String, Object> getLoginUserById(@Param("loginUserId") Integer loginUserId);
Map<String, Object> getLoginUserById(@Param("loginUserId") Integer loginUserId);
}

View File

@ -1,16 +1,18 @@
package com.jasamedika.medifirst2000.service.impl;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
import com.jasamedika.medifirst2000.converter.LoginUserAuthConverter;
import com.jasamedika.medifirst2000.converter.LoginUserConverter;
import com.jasamedika.medifirst2000.dao.HistoryLoginModulAplikasiDao;
import com.jasamedika.medifirst2000.dao.LoginUserDao;
import com.jasamedika.medifirst2000.dao.MapPegawaiToModulAplikasiDao;
import com.jasamedika.medifirst2000.entities.*;
import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.LoginUserService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.util.PasswordUtil;
import com.jasamedika.medifirst2000.vo.*;
import com.jasamedika.medifirst2000.vo.custom.AuthVO;
import org.apache.commons.collections.IteratorUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -21,32 +23,10 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
import com.jasamedika.medifirst2000.converter.LoginUserAuthConverter;
import com.jasamedika.medifirst2000.converter.LoginUserConverter;
import com.jasamedika.medifirst2000.dao.HistoryLoginModulAplikasiDao;
import com.jasamedika.medifirst2000.dao.LoginUserDao;
import com.jasamedika.medifirst2000.dao.MapPegawaiToModulAplikasiDao;
import com.jasamedika.medifirst2000.entities.HistoryLoginModulAplikasi;
import com.jasamedika.medifirst2000.entities.KelompokUser;
import com.jasamedika.medifirst2000.entities.LoginUser;
import com.jasamedika.medifirst2000.entities.MapLoginUserToRuangan;
import com.jasamedika.medifirst2000.entities.MapPegawaiToModulAplikasi;
import com.jasamedika.medifirst2000.entities.ModulAplikasi;
import com.jasamedika.medifirst2000.entities.Pegawai;
import com.jasamedika.medifirst2000.entities.Ruangan;
import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.LoginUserService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.util.PasswordUtil;
import com.jasamedika.medifirst2000.vo.KelompokUserVO;
import com.jasamedika.medifirst2000.vo.LoginUserVO;
import com.jasamedika.medifirst2000.vo.MapLoginUserToRuanganVO;
import com.jasamedika.medifirst2000.vo.MapPegawaiToModulAplikasiVO;
import com.jasamedika.medifirst2000.vo.ModulAplikasiVO;
import com.jasamedika.medifirst2000.vo.PegawaiVO;
import com.jasamedika.medifirst2000.vo.RuanganVO;
import com.jasamedika.medifirst2000.vo.custom.AuthVO;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.security.NoSuchAlgorithmException;
import java.util.*;
@Service("LoginUserService")
public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUserService {
@ -123,7 +103,7 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
}
@Override
@Transactional(readOnly = false)
@Transactional
public LoginUserVO add(LoginUserVO vo) throws JpaSystemException, ServiceVOException {
// convert to model and call repository
LoginUser loginUser = new LoginUser();
@ -146,7 +126,7 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
}
@Override
@Transactional(readOnly = false)
@Transactional
public LoginUserVO update(LoginUserVO vo) throws JpaSystemException, ServiceVOException {
// Alter Syamsu
@ -172,7 +152,7 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
}
@Override
@Transactional(readOnly = false)
@Transactional
public Boolean delete(Integer key) throws JpaSystemException {
if (loginUserDao.exists(key)) {
loginUserDao.delete(key);
@ -200,7 +180,7 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
List<LoginUser> loginUserList = IteratorUtils.toList(loginUserDao.findAll().iterator());
List<LoginUserVO> loginUserVOList = new ArrayList<LoginUserVO>();
List<LoginUserVO> loginUserVOList = new ArrayList<>();
loginUserConverter.transferListOfModelToListOfVO(loginUserList, loginUserVOList);
return loginUserVOList;
@ -222,11 +202,11 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
LoginUser loginUser = loginUsers.get(0);
PasswordUtil passwordUtil = new PasswordUtil();
Boolean isValidPassword = false;
boolean isValidPassword;
try {
isValidPassword = passwordUtil.isPasswordEqual(authVO.getKataSandi(), loginUser.getKataSandi());
} catch (IOException ioe) {
LOGGER.error("Password not match : " + ioe.getMessage());
LOGGER.error("Password not match : {}", ioe.getMessage());
return null;
}
@ -246,22 +226,23 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
@Override
public LoginUser getLoginUser() {
List<LoginUser> loginUser = null;
try {
Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
String namaUser = principal.toString();
loginUser = loginUserDao.findByNamaUser(namaUser);
List<LoginUser> loginUser = loginUserDao.findByNamaUser(namaUser);
if (CommonUtil.isNotNullOrEmpty(loginUser) && !loginUser.isEmpty()
&& CommonUtil.isNotNullOrEmpty(loginUser.get(0)))
return loginUser.get(0);
} catch (Exception e) {
e.printStackTrace();
}
return loginUser.get(0);
return null;
}
@Override
public Map<String, Object> getAllUser() {
Map<String, Object> result = new HashMap<String, Object>();
List<LoginUser> list = new ArrayList<LoginUser>();
list = (List<LoginUser>) loginUserDao.findAllUser();
Map<String, Object> result = new HashMap<>();
List<LoginUser> list = loginUserDao.findAllUser();
if (CommonUtil.isNotNullOrEmpty(list)) {
result.put("data", list);
result.put("dataFound", true);
@ -271,12 +252,9 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
return result;
}
// Reza
// -----------------------------------------------------------------------------------------------
@Override
public Map<String, Object> getLoadData() {
Map<String, Object> result = new HashMap<String, Object>();
Map<String, Object> result = new HashMap<>();
// --------------------------------------------------------------------------
List<Map<String, Object>> listPegawai = loginUserDao.listPegawai();
if (CommonUtil.isNotNullOrEmpty(listPegawai)) {
@ -387,7 +365,7 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
LoginUser loginUser = new LoginUser();
if (CommonUtil.isNotNullOrEmpty(vo)) {
loginUser = loginUserConverters.transferVOToModel(vo, new LoginUser());
loginUser.setKdProfile((short) 0);
loginUser.setKdProfile(CommonUtil.isNotNullOrEmpty(vo.getKdProfile()) ? vo.getKdProfile() : (short) 0);
loginUser.setStatusEnabled(true);
loginUser.setKodeExternal("");
loginUser.setNamaExternal(vo.getNamaUser());
@ -479,54 +457,15 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
@Override
public List<Map<String, Object>> getListObjectModulAplikasi(Integer modulAplikasiId) {
List<Map<String, Object>> result = new ArrayList<>();
// for(Map<String, Object> objectModulHead :
// loginUserDao.getObjectModulHeadByModul(modulAplikasiId)){
// Map<String, Object> parent = new HashMap<>();
//
// if(CommonUtil.isNotNullOrEmpty(objectModulHead)){
// parent.put("name", objectModulHead.get("objekModulAplikasi"));
// parent.put("noUrut", objectModulHead.get("objekModulNoUrut"));
//
// List<Map<String, Object>> listObjectModul =
// loginUserDao.getModulByModulHead((Integer)objectModulHead.get("id"));
// if(CommonUtil.isNullOrEmpty(listObjectModul)){
// parent.put("link", objectModulHead.get("alamatUrlForm"));
// }
//
// List<Map<String, Object>> listChildren = new ArrayList<>();
// for(Map<String, Object> objectModul: listObjectModul){
// Map<String, Object> children = new HashMap<>();
//
// if(CommonUtil.isNotNullOrEmpty(objectModul)){
// children.put("name", objectModul.get("objekModulAplikasi"));
// children.put("link", objectModul.get("alamatUrlForm"));
// children.put("noUrut", objectModul.get("objekModulNoUrut"));
// }
// if(CommonUtil.isNotNullOrEmpty(children)){
// listChildren.add(children);
// }
// }
// if(CommonUtil.isNotNullOrEmpty(listChildren)){
// parent.put("children", listChildren);
// }
// }
// if(CommonUtil.isNotNullOrEmpty(parent)){
// result.add(parent);
// }
// }
return result;
return new ArrayList<>();
}
@Override
public Map<String, Object> saveUpdateLoginUser(LoginUserVO vo) {
Map<String, Object> result = new HashMap<>();
if (CommonUtil.isNotNullOrEmpty(vo)) {
LoginUser loginUser = new LoginUser();
if (CommonUtil.isNotNullOrEmpty(vo))
if (CommonUtil.isNotNullOrEmpty(vo.getId())) {
loginUser = setLoginUser(vo);
LoginUser loginUser = setLoginUser(vo);
if (CommonUtil.isNotNullOrEmpty(loginUser)) {
LoginUser loginUserResult = loginUserDao.save(loginUser);
result.put("namaUser", loginUserResult.getNamaUser());
@ -534,11 +473,10 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
}
} else {
List<LoginUser> users = loginUserDao.findByNamaUser(vo.getNamaUser());
if (CommonUtil.isNotNullOrEmpty(users)) {
result.put("statusError", "Nama user sudah ada, silahkan input nama user lainya");
} else {
loginUser = setLoginUser(vo);
LoginUser loginUser = setLoginUser(vo);
if (CommonUtil.isNotNullOrEmpty(loginUser)) {
LoginUser loginUserResult = loginUserDao.save(loginUser);
result.put("namaUser", loginUserResult.getNamaUser());
@ -546,7 +484,6 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
}
}
}
}
return result;
}
@ -560,7 +497,7 @@ public class LoginUserServiceImpl extends BaseVoServiceImpl implements LoginUser
loginUser = loginUserConverter.transferVOToModel(vo, new LoginUser());
}
if (CommonUtil.isNotNullOrEmpty(vo)) {
loginUser.setKdProfile((short) 0);
loginUser.setKdProfile(CommonUtil.isNotNullOrEmpty(vo.getKdProfile()) ? vo.getKdProfile() : (short) 0);
loginUser.setStatusEnabled(true);
loginUser.setKodeExternal("");
}