사용자별 사용 가능한 업무 목록 조회 수정

최고관리자 = 모든업무
시스템관리자 = WAS서버에서 사용가능한 업무 또는 소속시군구에서 사용가능한 업무
업무관리자 = WAS서버에서 사용가능한 업무 이면서 소속시군구에서 사용가능한 업무
업무사용자 = WAS서버에서 사용가능한 업무 이면서 소속시군구에서 사용가능한 업무 이면서 부여한 권한명에 업무명포함될경우
main
이범준 12 months ago
parent 0b3109e021
commit a83e076952

@ -90,39 +90,60 @@ public class StngBean extends AbstractBean {
boolean isAdmin = userInfo.isAdmin(); boolean isAdmin = userInfo.isAdmin();
List<String> taskListForServer = FimsConf.get().getTasks();
//모든 업무 //모든 업무
List<String> taskList = codeBean.getCodeList((new CodeQuery()).setGroupIDs("FIM054")) List<String> taskList = codeBean.getCodeList((new CodeQuery()).setGroupIDs("FIM054"))
.stream().map(item -> item.string("CODE")).toList(); .stream().map(item -> item.string("CODE")).toList();
//사용가능한 업무 //서버에서 사용가능한 업무
List<String> taskListForServer = FimsConf.get().getTasks();
//사용자별 사용가능한 업무
List<String> availableTaskList = new ArrayList<String>(); List<String> availableTaskList = new ArrayList<String>();
if(userInfo.getInstitute().equals("ADMIN00")) { //최고관리자 if(userInfo.getInstitute().equals("ADMIN00")) { //1.최고관리자
availableTaskList = taskList; availableTaskList = taskList;
} else if(isAdmin) { //시스템 관리자 } else {
Map<String, Object> info = userInfo.getInfo(); Map<String, Object> info = userInfo.getInfo();
if(info == null || info.get("sggCd") == null || info.get("sggCd").equals("")) { if(info == null || info.get("sggCd") == null || info.get("sggCd").equals("")) {
ogdpBean.initUserInfo(userInfo); ogdpBean.initUserInfo(userInfo);
} }
availableTaskList = taskBean.getTasks((new CmmnQuery()).setSggCd((String)userInfo.getInfo().get("sggCd")).setUseYn("Y")) //사용자의 시군구에서 사용가능한 업무
.stream().map(item -> item.string("TASK_SE_CD")).toList(); List<String> taskListForSgg = taskBean.getTasks((new CmmnQuery()).setSggCd((String)userInfo.getInfo().get("sggCd")).setUseYn("Y"))
.stream().map(item -> item.string("TASK_SE_CD")).toList();
} else { //업무관리자,업무사용자,일반사용자 if(isAdmin) { //2.시스템관리자
for(String forSgg : taskListForSgg) {
availableTaskList.add(forSgg);
}
for(String forServer : taskListForServer) {
availableTaskList.add(forServer);
}
} else {
List<Authority> authorities = userInfo.getAuthorities(); List<String> forServerAndSgg = new ArrayList<String>();
for(String forServer : taskListForServer) {
for(String forSgg : taskListForSgg) {
if(forServer.equals(forSgg)) {
forServerAndSgg.add(forSgg);
}
}
}
if(authorities != null && !authorities.isEmpty()) { if(userInfo.hasAuthorities("ROLE_TASK_ADMIN")) { //3.업무관리자
for(Authority authority : authorities) { availableTaskList = forServerAndSgg;
String authId = authority.getId(); } else { //4.업무사용자,일반사용자
for(String task : taskList) {
if(authId.equals("ROLE_TASK_ADMIN") || authId.contains(task)) { List<Authority> authorities = userInfo.getAuthorities();
if(taskListForServer.contains(task)) { if(authorities != null && !authorities.isEmpty()) {
availableTaskList.add(task); for(String task : forServerAndSgg) {
for(Authority authority : authorities) {
String authId = authority.getId();
if(authId.contains(task)) {
availableTaskList.add(task);
}
} }
} }
} }
@ -142,12 +163,17 @@ public class StngBean extends AbstractBean {
return; return;
} }
DataObject defaultTask = stngMapper.selectDefaultTask(userInfo.getId()); DataObject defaultTaskInfo = stngMapper.selectDefaultTask(userInfo.getId());
if(defaultTask == null) { if(defaultTaskInfo == null || defaultTaskInfo.string("TASK_SE_CD").equals("")) {
userInfo.getInfo().put("defaultTask", ""); userInfo.getInfo().put("defaultTask", "");
} else { } else {
userInfo.getInfo().put("defaultTask", defaultTask.string("TASK_SE_CD")); String defaultTask = defaultTaskInfo.string("TASK_SE_CD");
if(!availableTaskList.contains(defaultTask)) {
userInfo.getInfo().put("defaultTask", "");
} else {
userInfo.getInfo().put("defaultTask", defaultTask);
}
} }
} }

Loading…
Cancel
Save