From ee9cdbdf15ede4ed38b264c421ada71a959a0464 Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 수, 22 12월 2021 18:38:00 +0900
Subject: [PATCH] '이슈관리' 권한은 내가 속해있는 프로젝트의 이슈에 대해서만 관리 권한이 있음

---
 src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java |   40 +++++++++++++++++++++++++++++++---------
 1 files changed, 31 insertions(+), 9 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 96d90c3..b25b775 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -927,7 +927,8 @@
         UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId());
 
         if (this.userWorkspaceService.checkWorkspaceManager(user)
-                || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_ISSUE)) {
+                || (MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_PROJECT) &&
+                MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_ISSUE))) {
             this.SetAllDepartmentId(issueCondition);
         } else{
             this.SetMyDepartmentId(issueCondition);
@@ -1246,7 +1247,7 @@
         }
 
         //  �봽濡쒖젥�듃瑜� �꽑�깮�븯吏� �븡�븯�쑝硫� �빐�떦 �뾽臾� 怨듦컙�뿉�꽌 李몄뿬�븯怨� �엳�뒗 �봽濡쒖젥�듃瑜� 李얜뒗�떎.
-        if (condition.getProjectIds().size() < 1) {
+        /*if (condition.getProjectIds().size() < 1) {
             List<Map<String, Object>> projects = this.projectService.findByWorkspaceIdAndIncludeProjectAll(projectStatues, condition.getProjectType());
             List<Long> projectIds = Lists.newArrayList();
 
@@ -1263,7 +1264,7 @@
             if (projectIds.size() < 1) {
                 return false;
             }
-        }
+        }*/
 
         return true;
     }
@@ -1289,7 +1290,8 @@
             List<Map<String, Object>> projects = null;
             UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId());
             if (this.userWorkspaceService.checkWorkspaceManager(user)
-                    || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_ISSUE)) {
+                    || (MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_PROJECT) &&
+                    MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_ISSUE))) {
                 projects = this.projectMapper.findByWorkspaceManagerAll(projectCondition);
             } else  {
                 projects = this.projectService.findByWorkspaceIdAndIncludeProjectAll(projectCondition);
@@ -1796,16 +1798,22 @@
                 Issue modifyIssue = this.modifyIssueForApi(user, issueForm, files);
                 Issue parentIssue = modifyIssue.getParentIssue();
                 IssueType issueType = modifyIssue.getIssueType();
-                IssueStatus issueStatus = issueType.getIssueStatus();
+
+                Set<IssueTypeApiEndStatus> issueTypeApiEndStatuses = issueType.getIssueTypeApiEndStatuses();
+                IssueTypeApiEndStatus issueStatus = null;
+                if (issueTypeApiEndStatuses != null && issueTypeApiEndStatuses.size() > 0) {
+                    issueStatus = issueTypeApiEndStatuses.iterator().next();
+                } else {
+                    throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.API_COMPLETE_ISSUE_STATUS_NOT_EXIST));
+                }
+
                 if (parentIssue != null) {
-                    if (issueStatus == null) {
-                        throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.API_COMPLETE_ISSUE_STATUS_NOT_EXIST));
-                    }
+
                     IssueCondition issueCondition = new IssueCondition(issueVo.getId(), parentIssue.getId());
                     List<Map<String, Object>> results = this.issueMapper.findNotCompleteByParentIssueId(issueCondition);
                     // �븯�쐞 �씪媛먯씠 紐⑤몢 醫낅즺 �긽�깭�씪�븣 �긽�쐞 �씪媛먮룄 醫낅즺 泥섎━
                     if (results == null || results.size() == 0) {
-                        parentIssue.setIssueStatus(issueType.getIssueStatus());
+                        parentIssue.setIssueStatus(issueStatus.getIssueStatus());
                         this.issueRepository.saveAndFlush(parentIssue);
                     }
                 }
@@ -3797,4 +3805,18 @@
             resJsonData.put(Constants.RES_KEY_CONTENTS, usePartnerVos);
         }
     }
+
+    @Override
+    public void findReadyDepartments(Map<String, Object> resJsonData, DepartmentCondition condition, Pageable pageable) {
+        Integer issueStatusId = 1;
+        condition.setIssueStatusId(issueStatusId);
+
+        IssueType issueType = this.issueTypeService.getIssueType(condition.getIssueTypeId());
+        if (issueType != null) {
+            condition.setWorkflowId(issueType.getWorkflow().getId());
+        }
+
+        List<Map<String, Object>> departmentVos = this.departmentMapper.findByIssueStatusId(condition);
+        resJsonData.put(Constants.RES_KEY_CONTENTS, departmentVos);
+    }
 }
\ No newline at end of file

--
Gitblit v1.8.0