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