From a3ffe41935c3859e88f91b525dbd591c9b1fa1cb Mon Sep 17 00:00:00 2001
From: jhjang <jhjang@maprex.co.kr>
Date: 일, 05 12월 2021 17:43:14 +0900
Subject: [PATCH] - api 수정시 이슈 상태만 수정 가능하도록 수정

---
 src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java |   40 +++++++++++++++++++++++-----------------
 1 files changed, 23 insertions(+), 17 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 255db28..303dc8a 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java
@@ -342,10 +342,12 @@
         List<Map<String, Object>> results;
         Long totalCount;
 
+        User user = this.webAppUtil.getLoginUserObject();
+
         if (condition.getWorkspaceManager()) {
             //  �뾽臾닿났媛� 愿�由ъ옄�씪 寃쎌슦 紐⑤뱺 �봽濡쒖젥�듃媛� �몴�떆�릺�뼱�빞 �븳�떎.
             //  愿�由ъ옄�씪 �븣
-            if (this.userWorkspaceService.checkWorkspaceManager()) {
+            if (this.userWorkspaceService.checkWorkspaceManager(user)) {
                 results = this.projectMapper.findByWorkspaceManager(condition);
                 totalCount = this.projectMapper.countByWorkspaceManager(condition);
             }
@@ -361,8 +363,8 @@
 
         int totalPage = (int) Math.ceil((totalCount - 1) / pageable.getPageSize()) + 1;
         //  �봽濡쒖젥�듃 議고쉶 寃곌낵瑜� ProjectVos 濡� 蹂��솚�븳�떎. - 愿�由ъ옄, �씪諛� �궗�슜�옄 �젙蹂� 異붽�
-        List<ProjectVo> projectVos = this.makeProjectVos(results);
-        this.setChildrenProject(projectVos);
+        List<ProjectVo> projectVos = this.makeProjectVos(results, user);
+        this.setChildrenProject(projectVos, user);
 
         resJsonData.put(Constants.RES_KEY_CONTENTS, projectVos);
         resJsonData.put(Constants.REQ_KEY_PAGE_VO, new ResPage(pageable.getPageNumber(), pageable.getPageSize(),
@@ -371,16 +373,16 @@
         return projectVos;
     }
 
-    void setChildrenProject(List<ProjectVo> projectVos) {
+    void setChildrenProject(List<ProjectVo> projectVos, User user) {
         int projectCount = projectVos.size();
         for (int i=0; i< projectCount; i++) {
             ProjectVo projectVo = projectVos.get(i);
             List<Map<String, Object>> children = this.projectMapper.findChildrenProject(projectVo.getId());
 
             if (children != null && children.size() > 0) {
-                List<ProjectVo> childrenVo = this.makeProjectVos(children);
+                List<ProjectVo> childrenVo = this.makeProjectVos(children, user);
                 projectVo.setChildProjects(childrenVo);
-                setChildrenProject(childrenVo);
+                setChildrenProject(childrenVo, user);
             }
         }
     }
@@ -400,7 +402,7 @@
 
 
     //  �봽濡쒖젥�듃 議고쉶 寃곌낵瑜� ProjectVos 濡� 蹂��솚�븳�떎. - 愿�由ъ옄, �씪諛� �궗�슜�옄 �젙蹂� 異붽�
-    private List<ProjectVo> makeProjectVos(List<Map<String, Object>> results) {
+    private List<ProjectVo> makeProjectVos(List<Map<String, Object>> results, User user) {
         List<ProjectVo> projectVos = Lists.newArrayList();
 
         for (Map<String, Object> result : results) {
@@ -413,7 +415,7 @@
             this.setProjectDepartment(projectVo);
 
             //  �뾽臾닿났媛� �떞�떦�옄�뒗 紐⑤뱺 �봽濡쒖젥�듃瑜� �닔�젙/�궘�젣�븷 �닔 �엳�뼱�빞 �븳�떎.
-            if (this.userWorkspaceService.checkWorkspaceManager()) {
+            if (this.userWorkspaceService.checkWorkspaceManager(user)) {
                 projectVo.setModifyPermissionCheck(true);
             }
             projectVos.add(projectVo);
@@ -532,10 +534,12 @@
         //  �봽濡쒖젥�듃 李몄뿬 遺��꽌
         List<Long> existDepartmentIds = this.getIncludeProjectDepartment(project);
 
+        User user = this.webAppUtil.getLoginUserObject();
+
         //  �썙�겕�뒪�럹�씠�뒪�뿉�꽌 湲곕낯�쑝濡� �젣怨듬릺�뒗 �봽濡쒖젥�듃�뿉 ���븳 泥댄겕
         this.checkDefaultProject(project, projectForm);
         //  �닔�젙 沅뚰븳 泥댄겕
-        this.checkModifyPermission(project.getId());
+        this.checkModifyPermission(project.getId(), user);
         //  愿�由ъ옄 蹂�寃�
         Map<String, Object> changeProjectManagerNotifications = this.modifyProjectManagers(project, projectForm, ProjectRole.TYPE_MANAGER);
         //  �씪諛� �궗�슜�옄 蹂�寃�
@@ -659,11 +663,11 @@
     }
 
     //  濡쒓렇�씤�븳 �궗�슜�옄媛� 愿�由ъ옄 �뿭�븷�뿉 �냼�냽�릺�뼱 �엳�뒗吏� �솗�씤�븳�떎.
-    private void checkModifyPermission(Long projectId) {
+    private void checkModifyPermission(Long projectId, User user) {
         Boolean hasPermission = Boolean.FALSE;
 
         //  �빐�떦 �뾽臾� 怨듦컙�쓽 愿�由ъ옄�씪 寃쎌슦 沅뚰븳 泥댄겕瑜� �븯吏� �븡�뒗�떎.
-        if (this.userWorkspaceService.checkWorkspaceManager()) {
+        if (this.userWorkspaceService.checkWorkspaceManager(user)) {
             return;
         }
 
@@ -1000,7 +1004,7 @@
         }
 
         //  濡쒓렇�씤�븳 �궗�슜�옄媛� 愿�由ъ옄 �뿭�븷�뿉 �냼�냽�릺�뼱 �엳�뒗吏� �솗�씤�븳�떎.
-        this.checkModifyPermission(project.getId());
+        this.checkModifyPermission(project.getId(), this.webAppUtil.getLoginUserObject());
 
         List<String> sendEmails = Lists.newArrayList();
         Map<String, Object> params = new HashMap<>();
@@ -1094,21 +1098,23 @@
     @Override
     @Transactional(readOnly = true)
     public List<ProjectVo> findByIncludeProject(List<String> statuses, String projectType) {
+        User user = this.webAppUtil.getLoginUserObject();
+
         ProjectCondition projectCondition = new ProjectCondition();
-        projectCondition.setLoginUserId(this.webAppUtil.getLoginId());
-        projectCondition.setWorkspaceId(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId());
+        projectCondition.setLoginUserId(user.getId());
+        projectCondition.setWorkspaceId(user.getLastWorkspaceId());
         projectCondition.setProjectType(projectType);
         projectCondition.setStatuses(statuses);
 
         List<Map<String, Object>> results;
 
-        if (this.userWorkspaceService.checkWorkspaceManager()) {
+        if (this.userWorkspaceService.checkWorkspaceManager(user)) {
             results = this.projectMapper.findByWorkspaceManager(projectCondition);
         } else {
             results = this.projectMapper.findByWorkspaceIdAndIncludeProject(projectCondition);
         }
         List<ProjectVo> projectVos = this.makeProjectByVos(results);
-        this.setChildrenProject(projectVos);
+        this.setChildrenProject(projectVos, user);
 
         return  projectVos;
     }
@@ -1135,7 +1141,7 @@
         projectCondition.setWorkspaceId(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId());
         List<Map<String, Object>> results = this.projectMapper.find(projectCondition);
         //  �봽濡쒖젥�듃 議고쉶 寃곌낵瑜� ProjectVos 濡� 蹂��솚�븳�떎. - 愿�由ъ옄, �씪諛� �궗�슜�옄 �젙蹂� 異붽�
-        List<ProjectVo> projectVos = this.makeProjectVos(results);
+        List<ProjectVo> projectVos = this.makeProjectVos(results, this.webAppUtil.getLoginUserObject());
         ExportExcelVo excelInfo = new ExportExcelVo();
         excelInfo.setFileName(this.messageAccessor.message("common.projectList")); // �봽濡쒖젥�듃 紐⑸줉
         excelInfo.addAttrInfos(new ExportExcelAttrVo("statusName", this.messageAccessor.message("common.status"), 6, ExportExcelAttrVo.ALIGN_CENTER)); // �긽�깭

--
Gitblit v1.8.0