From 4d06a7593fba3df556fc3728c142554907c6b157 Mon Sep 17 00:00:00 2001 From: 이민희 <mhlee@maprex.co.kr> Date: 수, 15 12월 2021 10:46:45 +0900 Subject: [PATCH] '전체 이슈 프로젝트 보기' 권한 '이슈 관리' 권한으로 변경 - 이슈관리: 모든 이슈 수정 가능 --- src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java | 42 ++++++++++++++++++++++++++++++++++-------- 1 files changed, 34 insertions(+), 8 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java index eb33e80..55a5b18 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java @@ -3,6 +3,7 @@ import com.google.common.collect.Lists; import kr.wisestone.owl.common.ExcelConditionCheck; import kr.wisestone.owl.constant.Constants; +import kr.wisestone.owl.constant.MngPermission; import kr.wisestone.owl.constant.MsgConstants; import kr.wisestone.owl.domain.*; import kr.wisestone.owl.domain.enumType.EmailType; @@ -63,6 +64,9 @@ @Autowired private UserWorkspaceService userWorkspaceService; + + @Autowired + private UserLevelService userLevelService; @Autowired private SystemEmailService systemEmailService; @@ -362,7 +366,9 @@ if (condition.getWorkspaceManager()) { // �뾽臾닿났媛� 愿�由ъ옄�씪 寃쎌슦 紐⑤뱺 �봽濡쒖젥�듃媛� �몴�떆�릺�뼱�빞 �븳�떎. // 愿�由ъ옄�씪 �븣 - if (this.userWorkspaceService.checkWorkspaceManager(user)) { + UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId()); + if (this.userWorkspaceService.checkWorkspaceManager(user) + || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_PROJECT)) { results = this.projectMapper.findByWorkspaceManager(condition); totalCount = this.projectMapper.countByWorkspaceManager(condition); } @@ -420,18 +426,20 @@ // �봽濡쒖젥�듃 議고쉶 寃곌낵瑜� ProjectVos 濡� 蹂��솚�븳�떎. - 愿�由ъ옄, �씪諛� �궗�슜�옄 �젙蹂� 異붽� private List<ProjectVo> makeProjectVos(List<Map<String, Object>> results, User user) { List<ProjectVo> projectVos = Lists.newArrayList(); + UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId()); for (Map<String, Object> result : results) { ProjectVo projectVo = ConvertUtil.convertMapToClass(result, ProjectVo.class); // �봽濡쒖젥�듃�뿉 李몄뿬�븯�뒗 �궗�슜�옄瑜� �뀑�똿�븳�떎. - 愿�由ъ옄 / �씪諛� �궗�슜�옄 this.setProjectUser(projectVo, true); this.setProjectUser(projectVo, false); - + // �봽濡쒖젥�듃�뿉 李몄뿬�븯�뒗 遺��꽌 �꽭�똿 this.setProjectDepartment(projectVo); // �뾽臾닿났媛� �떞�떦�옄�뒗 紐⑤뱺 �봽濡쒖젥�듃瑜� �닔�젙/�궘�젣�븷 �닔 �엳�뼱�빞 �븳�떎. - if (this.userWorkspaceService.checkWorkspaceManager(user)) { + if (this.userWorkspaceService.checkWorkspaceManager(user) + || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_PROJECT)) { projectVo.setModifyPermissionCheck(true); } projectVos.add(projectVo); @@ -693,11 +701,13 @@ projectRoleUserMap.put("statuses", Lists.newArrayList("02")); // 愿�由ъ옄 議고쉶 List<Map<String, Object>> projectUsers = this.projectRoleUserService.findProjectRoleUser(projectRoleUserMap); + UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId()); // �쁽�옱 濡쒓렇�씤 �궗�슜�옄媛� 愿�由ъ옄�씤吏� �솗�씤 if (projectUsers != null && !projectUsers.isEmpty()) { for (Map<String, Object> projectUser : projectUsers) { UserVo userVo = ConvertUtil.convertMapToClass(projectUser, UserVo.class); - if (userVo.getId().equals(this.webAppUtil.getLoginId())) { + if (userVo.getId().equals(this.webAppUtil.getLoginId()) + || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_PROJECT)) { hasPermission = true; break; } @@ -1115,6 +1125,7 @@ @Transactional(readOnly = true) public List<ProjectVo> findByIncludeProject(List<String> statuses, String projectType) { User user = this.webAppUtil.getLoginUserObject(); + UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId()); ProjectCondition projectCondition = new ProjectCondition(); projectCondition.setLoginUserId(user.getId()); @@ -1124,7 +1135,8 @@ List<Map<String, Object>> results; - if (this.userWorkspaceService.checkWorkspaceManager(user)) { + if (this.userWorkspaceService.checkWorkspaceManager(user) + || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_PROJECT)) { results = this.projectMapper.findByWorkspaceManager(projectCondition); } else { results = this.projectMapper.findByWorkspaceIdAndIncludeProject(projectCondition); @@ -1155,7 +1167,19 @@ ProjectCondition projectCondition = ProjectCondition.make(conditions); projectCondition.setLoginUserId(this.webAppUtil.getLoginId()); projectCondition.setWorkspaceId(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId()); - List<Map<String, Object>> results = this.projectMapper.find(projectCondition); + + User user = this.webAppUtil.getLoginUserObject(); + List<Map<String, Object>> results; + UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId()); + + if (this.userWorkspaceService.checkWorkspaceManager(user) + || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_PROJECT)) { + results = this.projectMapper.findByWorkspaceManager(projectCondition); + } + else { + this.SetMyDepartmentId(projectCondition); + results = this.projectMapper.find(projectCondition); + } // �봽濡쒖젥�듃 議고쉶 寃곌낵瑜� ProjectVos 濡� 蹂��솚�븳�떎. - 愿�由ъ옄, �씪諛� �궗�슜�옄 �젙蹂� 異붽� List<ProjectVo> projectVos = this.makeProjectVos(results, this.webAppUtil.getLoginUserObject()); ExportExcelVo excelInfo = new ExportExcelVo(); @@ -1163,7 +1187,8 @@ excelInfo.addAttrInfos(new ExportExcelAttrVo("statusName", this.messageAccessor.message("common.status"), 6, ExportExcelAttrVo.ALIGN_CENTER)); // �긽�깭 excelInfo.addAttrInfos(new ExportExcelAttrVo("name", this.messageAccessor.message("common.project"), 40, ExportExcelAttrVo.ALIGN_LEFT)); // �봽濡쒖젥�듃 excelInfo.addAttrInfos(new ExportExcelAttrVo("manager", this.messageAccessor.message("common.admin"), 20, ExportExcelAttrVo.ALIGN_CENTER)); // 愿�由ъ옄 - excelInfo.addAttrInfos(new ExportExcelAttrVo("members", this.messageAccessor.message("common.teamMember"), 20, ExportExcelAttrVo.ALIGN_CENTER)); // ���썝 + //excelInfo.addAttrInfos(new ExportExcelAttrVo("members", this.messageAccessor.message("common.teamMember"), 20, ExportExcelAttrVo.ALIGN_CENTER)); // ���썝 + excelInfo.addAttrInfos(new ExportExcelAttrVo("departments", this.messageAccessor.message("common.teamDepartment"), 20, ExportExcelAttrVo.ALIGN_CENTER)); // ���썝 excelInfo.addAttrInfos(new ExportExcelAttrVo("period", this.messageAccessor.message("common.period"), 20, ExportExcelAttrVo.ALIGN_CENTER)); // 湲곌컙 excelInfo.addAttrInfos(new ExportExcelAttrVo("projectKey", this.messageAccessor.message("common.projectKey"), 6, ExportExcelAttrVo.ALIGN_CENTER)); // �봽濡쒖젥�듃 �궎 // �뿊���뿉 �꽔�쓣 �뜲�씠�꽣 - ProjectVos �뜲�씠�꽣瑜� �뿊���뿉�꽌 �몴�떆�븷 �닔 �엳�뒗 �뜲�씠�꽣濡� 蹂�寃쏀븳�떎. @@ -1207,7 +1232,8 @@ } result.put("manager", stringBuilderManager.toString()); - result.put("members", CommonUtil.convertUserVosToString(projectVo.getProjectUserVos())); + //result.put("members", CommonUtil.convertUserVosToString(projectVo.getProjectUserVos())); + result.put("departments", CommonUtil.convertDepartmentVosToString(projectVo.getProjectDepartmentVos())); result.put("projectKey", projectVo.getProjectKey()); result.put("period", projectVo.getStartDate() + " - " + projectVo.getEndDate()); results.add(result); -- Gitblit v1.8.0