From 799d8178d5bf8256c2334d2ff95a24f326a68534 Mon Sep 17 00:00:00 2001 From: 이민희 <mhlee@maprex.co.kr> Date: 화, 14 12월 2021 19:23:42 +0900 Subject: [PATCH] - 이슈 수정시 사용자가 담당부서에 속해있으면 수정 가능 - 프로젝트 관리 권한이 있는데 프로젝트 수정 항목이 표시 안되는 문제 수정 --- src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java | 4 +++- src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java | 12 +++++++++--- src/main/webapp/views/issue/issueDetail.html | 10 +++++++--- src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js | 2 +- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java index aff1d15..bcff046 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java @@ -1136,7 +1136,9 @@ // �봽濡쒖젥�듃瑜� �꽑�깮�븯吏� �븡�븯�쑝硫� �빐�떦 �뾽臾� 怨듦컙�뿉�꽌 李몄뿬�븯怨� �엳�뒗 �봽濡쒖젥�듃瑜� 李얜뒗�떎. if (condition.getProjectIds().size() < 1) { List<Map<String, Object>> projects = null; - 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_ISSUE_PROJECT_ALL)) { projects = this.projectMapper.findByWorkspaceManagerAll(projectCondition); } else { projects = this.projectService.findByWorkspaceIdAndIncludeProjectAll(projectCondition); 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 ef50823..69f9136 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java @@ -368,6 +368,7 @@ // 愿�由ъ옄�씪 �븣 UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId()); if (this.userWorkspaceService.checkWorkspaceManager(user) + || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_PROJECT) || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_ISSUE_PROJECT_ALL)) { results = this.projectMapper.findByWorkspaceManager(condition); totalCount = this.projectMapper.countByWorkspaceManager(condition); @@ -426,18 +427,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); @@ -699,11 +702,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; } @@ -1132,6 +1137,7 @@ List<Map<String, Object>> results; if (this.userWorkspaceService.checkWorkspaceManager(user) + || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_PROJECT) || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_ISSUE_PROJECT_ALL)) { results = this.projectMapper.findByWorkspaceManager(projectCondition); } else { diff --git a/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js b/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js index d78036d..3451da1 100644 --- a/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js +++ b/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js @@ -312,7 +312,7 @@ // �븯�쐞 �씠�뒋 �궘�젣 case "ISSUE_DOWN_DELETE": - makeTag += '<img class="cursor" src="/assets/images/delete-icon.png" ng-click="event.removeDownIssue(data.id)">'; + makeTag += '<img class="cursor" src="/assets/images/delete-icon.png" ng-if="scope.data.modifyPermissionCheck" ng-click="event.removeDownIssue(data.id)">'; break; // �븯�쐞 �씠�뒋 �슦�꽑 �닚�쐞 diff --git a/src/main/webapp/views/issue/issueDetail.html b/src/main/webapp/views/issue/issueDetail.html index 27e2501..3ae9f15 100644 --- a/src/main/webapp/views/issue/issueDetail.html +++ b/src/main/webapp/views/issue/issueDetail.html @@ -103,7 +103,7 @@ </span> <a class="show-ticket-info cursor"> - <i class="os-icon os-icon-email-forward mr-20" ng-click="fn.sendMailAll()" data-toggle="tooltip" data-placement="right" title="�떎瑜� �궗�슜�옄�뿉寃� �씠�뒋 蹂대궡湲�"></i> + <i class="os-icon os-icon-email-forward mr-20" ng-if="vm.viewer.modifyPermissionCheck" ng-click="fn.sendMailAll()" data-toggle="tooltip" data-placement="right" title="�떎瑜� �궗�슜�옄�뿉寃� �씠�뒋 蹂대궡湲�"></i> <i class="os-icon os-icon-airplay mr-20" ng-click="fn.versionView(vm.viewer.id)" data-toggle="tooltip" data-placement="right" title="�씠�뒋 蹂�寃� �씠�젰 �긽�꽭 蹂닿린"></i> <i class="os-icon os-icon-calendar-time mr-20" ng-if="vm.viewer.modifyPermissionCheck" ng-click="fn.reservation(vm.viewer.id)" data-toggle="tooltip" data-placement="right" title="�씠�뒋 諛쒖깮 �삁�빟 �븯湲�"></i> @@ -139,6 +139,7 @@ <span ng-if="vm.viewer.departmentVos.length < 1" translate="common.noDepartment">�떞�떦遺��꽌媛� �뾾�뒿�땲�떎.</span> <i class="fa fa-edit fa-2x issue-status-edit cursor" + ng-if="vm.viewer.modifyPermissionCheck" ng-click="fn.modifyIssueDepartment()" data-toggle="tooltip" data-placement="right" title="�떞�떦�옄 蹂�寃� �븯湲�"></i> </div> </div> @@ -494,9 +495,11 @@ </div> <div class="col-auto vertical-middle" style="display: flex"> <button type="button" class="btn btn-primary" + ng-if="vm.viewer.modifyPermissionCheck" ng-click="fn.addRelationIssue()" translate="issue.addRelationIssue">�뿰愿� �씠�뒋 異붽�</button> <button type="button" class="btn btn-sm btn-primary btn-roundRel offset-1" + ng-if="vm.viewer.modifyPermissionCheck" ng-click="fn.addRelationIssueForm(vm.viewer.id)"> <i class="os-icon os-icon-plus"><span></span></i> </button> @@ -510,9 +513,9 @@ <span class="info_detail_font h3" translate="issue.downIssue">�븯�쐞 �씠�뒋</span> </div> <div class="col-sm-2"> - <a><button type="button" class="btn btn-darkgrey offset-7" + <a><button type="button" class="btn btn-darkgrey offset-7" ng-if="vm.viewer.modifyPermissionCheck" ng-click="fn.modifyDownIssueStatus()"> - <span translate="common.updateDownIssueAllStatus">�븯�쐞�씠�뒋 �긽�깭 �쟾泥� 蹂�寃�</span> + <span ng-if="vm.viewer.modifyPermissionCheck" translate="common.updateDownIssueAllStatus">�븯�쐞�씠�뒋 �긽�깭 �쟾泥� 蹂�寃�</span> </button></a> </div> <div class="col-sm-1"> @@ -541,6 +544,7 @@ </div> <div class="col-auto vertical-middle" style="display: flex"> <button type="button" class="btn btn-primary" + ng-if="vm.viewer.modifyPermissionCheck" ng-click="fn.addDownIssue()" translate="issue.addDownIssue">異붽�</button> </div> -- Gitblit v1.8.0