From 51365e66857e4b7a1d783b0309e20e855e393ae5 Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 금, 10 12월 2021 10:10:26 +0900
Subject: [PATCH] 이슈전체보기/프로젝트전체보기 권한 설정

---
 src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java         |    7 +++
 src/main/java/kr/wisestone/owl/service/impl/UserWorkspaceServiceImpl.java |   10 ++++-
 src/main/java/kr/wisestone/owl/service/impl/WorkspaceServiceImpl.java     |    7 +++
 src/main/java/kr/wisestone/owl/service/impl/WidgetServiceImpl.java        |   28 +++++++++++---
 src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java       |    7 +++
 src/main/webapp/views/workspace/workspaceLevelAdd.html                    |    4 +-
 src/main/java/kr/wisestone/owl/service/UserWorkspaceService.java          |    2 +
 src/main/java/kr/wisestone/owl/constant/MngPermission.java                |    5 +-
 src/main/webapp/i18n/ko/global.json                                       |    4 +-
 src/main/webapp/WEB-INF/i18n/code_ko_KR.properties                        |    4 +-
 10 files changed, 59 insertions(+), 19 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/constant/MngPermission.java b/src/main/java/kr/wisestone/owl/constant/MngPermission.java
index 9db58d5..a322484 100644
--- a/src/main/java/kr/wisestone/owl/constant/MngPermission.java
+++ b/src/main/java/kr/wisestone/owl/constant/MngPermission.java
@@ -5,8 +5,8 @@
  */
 public class MngPermission {
 
-    public static final int USER_PERMISSION_MNG_ISSUE_ALL = 32768;
-    public static final int USER_PERMISSION_MNG_PROJECT_ALL = 16384;
+    public static final int USER_PERMISSION_MNG_ISSUE_ALL = 32768;  // �쟾泥� �씠�뒋 愿�由�
+    public static final int USER_PERMISSION_MNG_PROJECT_ALL = 16384; // �쟾泥� �봽濡쒖젥�듃 愿�由�
     public static final int USER_PERMISSION_MNG_PARTNER = 8192;   //  �뾽泥�/ISP/�샇�뒪�똿 愿�由�      10000000000000
     public static final int USER_PERMISSION_MNG_WORKSPACE = 4096;   //  WORK SPACE 愿�由�       01000000000000
     public static final int USER_PERMISSION_MNG_PROJECT = 2048;   //  �봽濡쒖젥�듃 愿�由�             00100000000000
@@ -57,6 +57,7 @@
     public static int makeSubAllPermission()
     {
         return  (/*USER_PERMISSION_MNG_WORKSPACE |*/
+                USER_PERMISSION_MNG_ISSUE_ALL | USER_PERMISSION_MNG_PROJECT_ALL |
                 USER_PERMISSION_MNG_API | USER_PERMISSION_MNG_NOTICE |
                 USER_PERMISSION_MNG_FAQ | USER_PERMISSION_MNG_QNA |
                 USER_PERMISSION_MNG_EVENT | USER_PERMISSION_MNG_GUIDE |
diff --git a/src/main/java/kr/wisestone/owl/service/UserWorkspaceService.java b/src/main/java/kr/wisestone/owl/service/UserWorkspaceService.java
index ce9d3c7..6d3280b 100644
--- a/src/main/java/kr/wisestone/owl/service/UserWorkspaceService.java
+++ b/src/main/java/kr/wisestone/owl/service/UserWorkspaceService.java
@@ -31,6 +31,8 @@
 
     UserWorkspace findMyWorkspace(Long userId);
 
+    UserWorkspace findWorkspaceManager(Long userId);
+
     void disabledUserWorkspace(User user, Workspace workspace);
 
     UserWorkspace getUserWorkspace(Long id);
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 2306be7..76e1126 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -151,6 +151,9 @@
     private UserWorkspaceService userWorkspaceService;
 
     @Autowired
+    private UserLevelService userLevelService;
+
+    @Autowired
     private WorkflowDepartmentService workflowDepartmentService;
 
     @Autowired
@@ -745,8 +748,10 @@
 
         List<Map<String, Object>> results = Lists.newArrayList();
         Long totalCount = 0L;
+        UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId());
 
-        if (this.userWorkspaceService.checkWorkspaceManager(user) || user.getPermission() >= MngPermission.USER_PERMISSION_MNG_ISSUE_ALL) {
+        if (this.userWorkspaceService.checkWorkspaceManager(user)
+                || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_ISSUE_ALL)) {
             results = this.issueMapper.find(issueCondition);
             totalCount = this.issueMapper.count(issueCondition);
         } else{
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 71ee77a..339af76 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java
@@ -66,6 +66,9 @@
     private UserWorkspaceService userWorkspaceService;
 
     @Autowired
+    private UserLevelService userLevelService;
+
+    @Autowired
     private SystemEmailService systemEmailService;
 
     @Autowired
@@ -363,7 +366,9 @@
         if (condition.getWorkspaceManager()) {
             //  �뾽臾닿났媛� 愿�由ъ옄�씪 寃쎌슦 紐⑤뱺 �봽濡쒖젥�듃媛� �몴�떆�릺�뼱�빞 �븳�떎.
             //  愿�由ъ옄�씪 �븣
-            if (this.userWorkspaceService.checkWorkspaceManager(user) || user.getPermission() >= MngPermission.USER_PERMISSION_MNG_PROJECT_ALL) {
+            UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId());
+            if (this.userWorkspaceService.checkWorkspaceManager(user)
+                    || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_PROJECT_ALL)) {
                 results = this.projectMapper.findByWorkspaceManager(condition);
                 totalCount = this.projectMapper.countByWorkspaceManager(condition);
             }
diff --git a/src/main/java/kr/wisestone/owl/service/impl/UserWorkspaceServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/UserWorkspaceServiceImpl.java
index 8533bb5..d96c484 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/UserWorkspaceServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/UserWorkspaceServiceImpl.java
@@ -79,7 +79,7 @@
     public List<UserWorkspaceVo> findUserWorkspace(Map<String, Object> resJsonData,
                                                    UserWorkspaceCondition condition, Pageable pageable) {
 
-        UserWorkspace userWorkspace = this.findMyWorkspace(this.webAppUtil.getLoginId());
+        UserWorkspace userWorkspace = this.findWorkspaceManager(this.webAppUtil.getLoginId());
         Workspace myWorkspace = userWorkspace.getWorkspace();
         condition.setPage(pageable.getPageNumber() * pageable.getPageSize());
         condition.setPageSize(pageable.getPageSize());
@@ -213,7 +213,13 @@
     @Override
     @Transactional(readOnly = true)
     public UserWorkspace findMyWorkspace(Long userId) {
-        //return this.userWorkspaceRepository.findByUserIdAndManagerYn(userId, true);
+        return this.userWorkspaceRepository.findByUserIdAndManagerYn(userId, true);
+    }
+
+    //  �썙�겕�뒪�럹�씠�뒪 愿�由ъ옄 議고쉶
+    @Override
+    @Transactional(readOnly = true)
+    public UserWorkspace findWorkspaceManager(Long userId) {
         return this.userWorkspaceRepository.findByUserId(userId);
     }
 
diff --git a/src/main/java/kr/wisestone/owl/service/impl/WidgetServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/WidgetServiceImpl.java
index 3a7cdc3..9a28b83 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/WidgetServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/WidgetServiceImpl.java
@@ -4,6 +4,7 @@
 import kr.wisestone.owl.common.ExcelConditionCheck;
 import kr.wisestone.owl.common.MessageAccessor;
 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.ProjectType;
@@ -60,6 +61,9 @@
 
     @Autowired
     private UserService userService;
+
+    @Autowired
+    private UserLevelService userLevelService;
 
     @Autowired
     private UserDepartmentService userDepartmentService;
@@ -246,10 +250,12 @@
         widgetCondition.setLoginUserId(this.webAppUtil.getLoginId());
         widgetCondition.setWorkspaceId(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId());
         User user = this.webAppUtil.getLoginUserObject();
+        UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId());
 
         if (widgetCondition.getProjectIds().size() > 0) {
             SetMeAndDownProjectIds(widgetCondition.getProjectIds(), widgetCondition);
-            if (this.userWorkspaceService.checkWorkspaceManager(user)) {
+            if (this.userWorkspaceService.checkWorkspaceManager(user)
+                    || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_ISSUE_ALL)) {
                 remainIssue = this.widgetMapper.countRemainIssue(widgetCondition);   //  �옍�뿬 �씠�뒋
                 delayIssue = this.widgetMapper.countTodayDelayIssue(widgetCondition); //  吏��뿰�맂 �씠�뒋
                 assigneeIssue = this.widgetMapper.countAssigneeIssue(widgetCondition);   //  �븷�떦�맂 �씠�뒋
@@ -289,10 +295,12 @@
         List<Map<String, Object>> progressingProjectDetails = Lists.newArrayList();
 
         User user = this.webAppUtil.getLoginUserObject();
+        UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId());
 
         if (widgetCondition.getProjectIds().size() > 0) {
             SetMeAndDownProjectIds(widgetCondition.getProjectIds(), widgetCondition);
-            if (this.userWorkspaceService.checkWorkspaceManager(user)) {
+            if (this.userWorkspaceService.checkWorkspaceManager(user)
+                    || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_PROJECT_ALL)) {
                 progressingProjectDetails = this.widgetMapper.findProjectProgressAll(widgetCondition);
             } else {
                 progressingProjectDetails = this.widgetMapper.findProjectProgress(widgetCondition);
@@ -496,11 +504,13 @@
         widgetCondition.setLoginUserId(this.webAppUtil.getLoginId());
         widgetCondition.setWorkspaceId(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId());
         User user = this.webAppUtil.getLoginUserObject();
+        UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId());
 
         if (widgetCondition.getProjectId() != null) {
             SetMeAndDownProjectIds(widgetCondition.getProjectIds(), widgetCondition);
             List<Map<String, Object>> projectMemberIssues = Lists.newArrayList();
-            if (this.userWorkspaceService.checkWorkspaceManager(user)) {
+            if (this.userWorkspaceService.checkWorkspaceManager(user)
+                    || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_PROJECT_ALL)) {
                 projectMemberIssues = this.widgetMapper.findProjectMemberIssue(widgetCondition);
             } else {
                 projectMemberIssues = this.widgetMapper.findProjectMemberIssueByDepartment(widgetCondition);
@@ -783,10 +793,12 @@
 
         List<Map<String, Object>> results = Lists.newArrayList();
         User user = this.webAppUtil.getLoginUserObject();
+        UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId());
 
         if (widgetCondition.getProjectIds().size() > 0) {
             SetMeAndDownProjectIds(widgetCondition.getProjectIds(), widgetCondition);
-            if (this.userWorkspaceService.checkWorkspaceManager(user)) {
+            if (this.userWorkspaceService.checkWorkspaceManager(user)
+                    || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_ISSUE_ALL)) {
                 results = this.widgetMapper.findByStandIssueStatus(widgetCondition);
             }else {
                 results = this.widgetMapper.findByStandIssueStatusOfDepartment(widgetCondition);
@@ -815,10 +827,12 @@
         //  �쐞�젽 寃��깋 議곌굔�쓣 �뼸�뼱�빞 �븷 �긽�솴�씪 �븣 - �솕硫댁뿉�꽌 �꺆�쓣 �닃�윭 �뜲�씠�꽣瑜� �옱�슂泥��뻽�쓣 �븣 �쐞�젽 寃��깋 議곌굔�쓣 留뚮뱾怨� �쟾泥� �봽濡쒖젥�듃 �젙蹂대�� 由ы꽩�븳�떎.
         Map<String, Object> results = this.makeWidgetConditionAllProject(widgetCondition, getWidgetCondition);
         User user = this.webAppUtil.getLoginUserObject();
+        UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId());
         if (widgetCondition.getProjectId() != null) {
             SetMeAndDownProjectIds(widgetCondition.getProjectIds(), widgetCondition);
             List<Map<String, Object>> issueTypeIssues = Lists.newArrayList();
-            if (this.userWorkspaceService.checkWorkspaceManager(user)) {
+            if (this.userWorkspaceService.checkWorkspaceManager(user)
+                    || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_ISSUE_ALL)) {
                 issueTypeIssues = this.widgetMapper.findByStandIssueType(widgetCondition);
             } else {
                 issueTypeIssues = this.widgetMapper.findByStandIssueTypeOfDepartment(widgetCondition);
@@ -898,10 +912,12 @@
         widgetCondition.setLoginUserId(this.webAppUtil.getLoginId());
         widgetCondition.setWorkspaceId(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId());
         User user = this.webAppUtil.getLoginUserObject();
+        UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId());
 
         if (widgetCondition.getProjectIds().size() > 0) {
             SetMeAndDownProjectIds(widgetCondition.getProjectIds(), widgetCondition);
-            if (this.userWorkspaceService.checkWorkspaceManager(user)) {
+            if (this.userWorkspaceService.checkWorkspaceManager(user)
+                    || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_ISSUE_ALL)) {
                 severityCounts = this.widgetMapper.countSeverityIssue(widgetCondition);
                 severityIssues = this.widgetMapper.findSeverityIssues(widgetCondition);
                 totalCount = this.widgetMapper.countSearchIssue(widgetCondition);
diff --git a/src/main/java/kr/wisestone/owl/service/impl/WorkspaceServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/WorkspaceServiceImpl.java
index 6e6e880..398de47 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/WorkspaceServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/WorkspaceServiceImpl.java
@@ -300,8 +300,13 @@
     @Override
     @Transactional(readOnly = true)
     public void findMyWorkspace(Map<String, Object> resJsonData) {
-        UserWorkspace userWorkspace = this.userWorkspaceService.findMyWorkspace(this.webAppUtil.getLoginId());
+
+        UserWorkspace userWorkspace = this.userWorkspaceService.findWorkspaceManager(this.webAppUtil.getLoginId()); //�썙�겕�뒪�럹�씠�뒪 愿�由ъ옄
+        if(userWorkspace == null){
+            userWorkspace = this.userWorkspaceService.findMyWorkspace(this.webAppUtil.getLoginId());
+        }
         Workspace workspace = userWorkspace.getWorkspace();
+
         WorkspaceVo workspaceVo = ConvertUtil.copyProperties(workspace, WorkspaceVo.class);
         workspaceVo.setServiceType((workspace.getServiceType().toString()));
         workspaceVo.setExpireDateTerm(DateUtil.getDateDiff(new Date(), workspace.getExpireDate())); //  異붽� 寃곗젣瑜� 吏꾪뻾�븷 �븣 湲덉븸 怨꾩궛�쓣 �쐞�빐 �궗�슜
diff --git a/src/main/webapp/WEB-INF/i18n/code_ko_KR.properties b/src/main/webapp/WEB-INF/i18n/code_ko_KR.properties
index 23260a8..7523af5 100644
--- a/src/main/webapp/WEB-INF/i18n/code_ko_KR.properties
+++ b/src/main/webapp/WEB-INF/i18n/code_ko_KR.properties
@@ -110,8 +110,8 @@
 common.remainIssue=\uC794\uC5EC \uC774\uC288
 common.severityIssue=\uC911\uC694\uB3C4 \uBCC4 \uC774\uC288 \uD604\uD669
 managementWorkspace.levelName=\uB4F1\uAE09\uBA85
-manageUser.manageAllIssuePerm=\uC804\uCCB4 \uC774\uC288 \uAD00\uB9AC
-manageUser.manageAllProjectPerm=\uC804\uCCB4 \uD504\uB85C\uC81D\uD2B8 \uAD00\uB9AC
+manageUser.manageAllIssuePerm=\uC804\uCCB4 \uC774\uC288 \uBCF4\uAE30
+manageUser.manageAllProjectPerm=\uC804\uCCB4 \uD504\uB85C\uC81D\uD2B8 \uBCF4\uAE30
 manageUser.managePartnerPerm=\uC5C5\uCCB4/ISP/\uD638\uC2A4\uD305 \uAD00\uB9AC
 manageUser.manageWorkspacePerm=\uC6CC\uD06C\uC2A4\uD398\uC774\uC2A4 \uAD00\uB9AC
 manageUser.manageProjectPerm=\uD504\uB85C\uC81D\uD2B8 \uAD00\uB9AC
diff --git a/src/main/webapp/i18n/ko/global.json b/src/main/webapp/i18n/ko/global.json
index 374ad8e..c647a9a 100644
--- a/src/main/webapp/i18n/ko/global.json
+++ b/src/main/webapp/i18n/ko/global.json
@@ -558,8 +558,8 @@
     },
     "manageUser": {
         "manageUser": "�궗�슜�옄 沅뚰븳 愿�由�",
-        "manageAllIssuePerm": "�쟾泥� �씠�뒋 愿�由�",
-        "manageAllProjectPerm": "�쟾泥� �봽濡쒖젥�듃 愿�由�",
+        "manageAllIssuePerm": "�쟾泥� �씠�뒋 蹂닿린",
+        "manageAllProjectPerm": "�쟾泥� �봽濡쒖젥�듃 蹂닿린",
         "managePartnerPerm" : "�뾽泥�/ISP/�샇�뒪�똿 愿�由�",
         "manageWorkspacePerm": "�썙�겕�뒪�럹�씠�뒪 愿�由�",
         "manageProjectPerm": "�봽濡쒖젥�듃 愿�由�",
diff --git a/src/main/webapp/views/workspace/workspaceLevelAdd.html b/src/main/webapp/views/workspace/workspaceLevelAdd.html
index 0a401b1..e4f1f95 100644
--- a/src/main/webapp/views/workspace/workspaceLevelAdd.html
+++ b/src/main/webapp/views/workspace/workspaceLevelAdd.html
@@ -35,7 +35,7 @@
                 <!--tableColumnGenerator.dirextive.js �뙆�씪 李멸퀬-->
                 <tr>
                     <td class="text-left bold">
-                        <span translate="manageUser.manageAllIssuePerm">�쟾泥� �씠�뒋 愿�由�</span>
+                        <span translate="manageUser.manageAllIssuePerm">�쟾泥� �씠�뒋 蹂닿린</span>
                     </td>
                     <td colspan="2">
                         <label class='switch'><input type='checkbox' ng-model='vm.form.permAllIssueSetting'><span class='slider round'></span></label>
@@ -43,7 +43,7 @@
                 </tr>
                 <tr>
                     <td class="text-left bold">
-                        <span translate="manageUser.manageAllProjectPerm">�쟾泥� �봽濡쒖젥�듃 愿�由�</span>
+                        <span translate="manageUser.manageAllProjectPerm">�쟾泥� �봽濡쒖젥�듃 蹂닿린</span>
                     </td>
                     <td colspan="2">
                         <label class='switch'><input type='checkbox' ng-model='vm.form.permAllProjectSetting'><span class='slider round'></span></label>

--
Gitblit v1.8.0