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

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

@ -90,39 +90,60 @@ public class StngBean extends AbstractBean {
boolean isAdmin = userInfo.isAdmin();
List<String> taskListForServer = FimsConf.get().getTasks();
//모든 업무
List<String> taskList = codeBean.getCodeList((new CodeQuery()).setGroupIDs("FIM054"))
.stream().map(item -> item.string("CODE")).toList();
//사용가능한 업무
//서버에서 사용가능한 업무
List<String> taskListForServer = FimsConf.get().getTasks();
//사용자별 사용가능한 업무
List<String> availableTaskList = new ArrayList<String>();
if(userInfo.getInstitute().equals("ADMIN00")) { //최고관리자
if(userInfo.getInstitute().equals("ADMIN00")) { //1.최고관리자
availableTaskList = taskList;
} else if(isAdmin) { //시스템 관리자
} else {
Map<String, Object> info = userInfo.getInfo();
if(info == null || info.get("sggCd") == null || info.get("sggCd").equals("")) {
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()) {
for(Authority authority : authorities) {
String authId = authority.getId();
for(String task : taskList) {
if(authId.equals("ROLE_TASK_ADMIN") || authId.contains(task)) {
if(taskListForServer.contains(task)) {
availableTaskList.add(task);
if(userInfo.hasAuthorities("ROLE_TASK_ADMIN")) { //3.업무관리자
availableTaskList = forServerAndSgg;
} else { //4.업무사용자,일반사용자
List<Authority> authorities = userInfo.getAuthorities();
if(authorities != null && !authorities.isEmpty()) {
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;
}
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", "");
} 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