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