From debc7d47107b1fc4509593d942d775f4374a3416 Mon Sep 17 00:00:00 2001
From: wyu <kknd09321@nate.com>
Date: 금, 10 12월 2021 13:29:20 +0900
Subject: [PATCH] 권한 수정 완료

---
 src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java            |    5 ++
 src/main/java/kr/wisestone/owl/service/impl/WidgetServiceImpl.java           |    4 +
 src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java          |    4 +
 src/main/webapp/views/workspace/workspaceLevelAdd.html                       |   10 ----
 src/main/webapp/scripts/config.js                                            |   33 +++++++++++-----
 src/main/webapp/scripts/app/workspace/workspaceLevelModify.controller.js     |    3 -
 src/main/java/kr/wisestone/owl/constant/MngPermission.java                   |    8 ++--
 src/main/webapp/scripts/app/common/common.controller.js                      |    4 +-
 src/main/webapp/scripts/app/project/projectList.controller.js                |    3 -
 src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js |    2 
 src/main/webapp/views/common/header.html                                     |    2 
 11 files changed, 43 insertions(+), 35 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/constant/MngPermission.java b/src/main/java/kr/wisestone/owl/constant/MngPermission.java
index 7e764b2..44e005f 100644
--- a/src/main/java/kr/wisestone/owl/constant/MngPermission.java
+++ b/src/main/java/kr/wisestone/owl/constant/MngPermission.java
@@ -5,10 +5,10 @@
  */
 public class MngPermission {
 
-    public static final int USER_PERMISSION_MNG_ISSUE_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
+    public static final int USER_PERMISSION_MNG_WORKSPACE = 16384;   //  WORK SPACE 愿�由�       01000000000000
+    public static final int USER_PERMISSION_MNG_PROJECT = 8192;   //  �봽濡쒖젥�듃 愿�由�             00100000000000
+    public static final int USER_PERMISSION_MNG_ISSUE_PROJECT_ALL = 4096; // �쟾泥� �씠�뒋 �봽濡쒖젥�듃 蹂닿린
+    public static final int USER_PERMISSION_MNG_PARTNER = 2048;   //  �뾽泥�/ISP/�샇�뒪�똿 愿�由�      10000000000000
     public static final int USER_PERMISSION_MNG_API = 1024;        //  API 愿�由�               00010000000000
     public static final int USER_PERMISSION_MNG_ISSUE_STATUS = 512;  //  ISSUE SETTING 愿�由�   00001000000000
     public static final int USER_PERMISSION_MNG_WORKFLOW = 256;     // WORK FLOW 愿�由�         000000100000000
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 960b32e..7300590 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -1038,6 +1038,7 @@
         condition.setWorkspaceId(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId());
         projectCondition.setWorkspaceId(condition.getWorkspaceId());
 
+
         //  �봽濡쒖젥�듃 �궎媛� 議댁옱�븷 寃쎌슦 �봽濡쒖젥�듃 �궎�뿉 �빐�떦�븯�뒗 �봽濡쒖젥�듃瑜� 議고쉶�븯怨� 寃��깋 議곌굔�뿉 �뀑�똿�븳�떎.
         if (!this.getProjectByProjectKey(condition.getProjectKey(), condition)) {
             return false;
@@ -1046,7 +1047,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 37ef059..ef50823 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java
@@ -1121,6 +1121,7 @@
     @Transactional(readOnly = true)
     public List<ProjectVo> findByIncludeProject(List<String> statuses, String projectType) {
         User user = this.webAppUtil.getLoginUserObject();
+        UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId());
 
         ProjectCondition projectCondition = new ProjectCondition();
         projectCondition.setLoginUserId(user.getId());
@@ -1130,7 +1131,8 @@
 
         List<Map<String, Object>> results;
 
-        if (this.userWorkspaceService.checkWorkspaceManager(user)) {
+        if (this.userWorkspaceService.checkWorkspaceManager(user)
+                || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_ISSUE_PROJECT_ALL)) {
             results = this.projectMapper.findByWorkspaceManager(projectCondition);
         } else {
             results = this.projectMapper.findByWorkspaceIdAndIncludeProject(projectCondition);
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 2ae574f..5551cfa 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/WidgetServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/WidgetServiceImpl.java
@@ -168,9 +168,11 @@
     @Transactional(readOnly = true)
     public WidgetCondition makeWidgetCondition() {
         User user = this.webAppUtil.getLoginUserObject();
+        UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId());
         //  �빐�떦 �썙�겕�뒪�럹�씠�뒪�뿉�꽌 李몄뿬�븯怨� �엳�뒗 �봽濡쒖젥�듃 以� �긽�깭媛� �삤�뵂�씤 �봽濡쒖젥�듃
         List<Map<String, Object>> projects = null;
-        if (this.userWorkspaceService.checkWorkspaceManager(user)) {
+        if (this.userWorkspaceService.checkWorkspaceManager(user)
+                || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_ISSUE_PROJECT_ALL)) {
             projects = this.projectService.findByWorkspaceManagerAll();
         } else  {
             projects = this.projectService.findByWorkspaceIdAndIncludeProjectAll(Lists.newArrayList("02"), ProjectType.BTS_PROJECT.toString());
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 8d581ed..d78036d 100644
--- a/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js
+++ b/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js
@@ -538,7 +538,7 @@
                                             break;
 
                                         case "All_ISSUE_PROJECT_SETTING_PERM_YN" :
-                                            makeTag += "<label class='switch'><input type='checkbox' ng-model='data.permAllIssueSetting' ng-click='event.modifyLevelPermission(data)'><span class='slider round'></span></label>";
+                                            makeTag += "<label class='switch'><input type='checkbox' ng-model='data.permAllIssueAndProjectSetting' ng-click='event.modifyLevelPermission(data)'><span class='slider round'></span></label>";
                                             break;
 
                                         case "PARTNER_SETTING_PERM_YN" :
diff --git a/src/main/webapp/scripts/app/common/common.controller.js b/src/main/webapp/scripts/app/common/common.controller.js
index 83df750..611a551 100644
--- a/src/main/webapp/scripts/app/common/common.controller.js
+++ b/src/main/webapp/scripts/app/common/common.controller.js
@@ -51,9 +51,9 @@
                 });
 
                 $scope.$on("changedLastProject", function () {
-                    if ($rootScope.workProject != null) {
+                    //if ($rootScope.workProject != null) {
                         $scope.fn.findIssueList($rootScope.workProject.id);
-                    }
+                    //}
                 });
 
                 function setLastIssueType() {
diff --git a/src/main/webapp/scripts/app/project/projectList.controller.js b/src/main/webapp/scripts/app/project/projectList.controller.js
index 93e08bc..0e62c35 100644
--- a/src/main/webapp/scripts/app/project/projectList.controller.js
+++ b/src/main/webapp/scripts/app/project/projectList.controller.js
@@ -361,8 +361,7 @@
                 }
 
                 function changeLastProject(projectId) {
-                    //$rootScope.changeLastProject(projectId);
-                    $state.go("issues.list")
+                    $rootScope.changeLastProject(projectId);
                 }
 
                 $scope.fn.makeTableConfigs();
diff --git a/src/main/webapp/scripts/app/workspace/workspaceLevelModify.controller.js b/src/main/webapp/scripts/app/workspace/workspaceLevelModify.controller.js
index 333b751..1860be6 100644
--- a/src/main/webapp/scripts/app/workspace/workspaceLevelModify.controller.js
+++ b/src/main/webapp/scripts/app/workspace/workspaceLevelModify.controller.js
@@ -22,8 +22,7 @@
                     id : parameter.id,
                     form : {
                         levelName : "",
-                        permAllIssueSetting : false,
-                        permAllProjectSetting : false,
+                        permAllIssueAndProjectSetting : false,
                         permWorkSpaceSetting : false,
                         permProjectSetting : false,
                         permIssueSetting : false,
diff --git a/src/main/webapp/scripts/config.js b/src/main/webapp/scripts/config.js
index 9c78c21..29595a6 100644
--- a/src/main/webapp/scripts/config.js
+++ b/src/main/webapp/scripts/config.js
@@ -236,11 +236,10 @@
 
                 //  沅뚰븳 由ъ뒪�듃
                 $rootScope.mngPermission = {
-                    "USER_PERMISSION_MNG_ISSUE_ALL" : 32768,
-                    "USER_PERMISSION_MNG_PROJECT_ALL" : 16384,
-                    "USER_PERMISSION_MNG_PARTNER" : 8192,
-                    "USER_PERMISSION_MNG_WORKSPACE" : 4096,
-                    "USER_PERMISSION_MNG_PROJECT" : 2048,
+                    "USER_PERMISSION_MNG_WORKSPACE" : 16384,
+                    "USER_PERMISSION_MNG_PROJECT" : 8192,
+                    "USER_PERMISSION_MNG_ISSUE_PROJECT_ALL" : 4096,
+                    "USER_PERMISSION_MNG_PARTNER" : 2048,
                     "USER_PERMISSION_MNG_API" : 1024,
                     "USER_PERMISSION_MNG_ISSUE_STATUS" : 512,
                     "USER_PERMISSION_MNG_WORKFLOW" : 256,
@@ -279,6 +278,20 @@
 
                     return false;
                 };
+
+                /*$rootScope.checkMngPermissionViewIssueAndProject = function (userPermission) {
+                    if (!$rootScope.isDefined($rootScope.user)) {
+                        return false;
+                    }
+
+                    var permissionVal = $rootScope.mngPermission[userPermission];
+
+                    if (($rootScope.user.permission & permissionVal) !== 0) {
+                        return true;
+                    }
+
+                    return false;
+                };*/
 
                 //  setting 愿�由ъ옄�씤吏� �솗�씤�븳�떎.
                 $rootScope.checkMngPermissionSettings = function () {
@@ -333,21 +346,19 @@
                                             $rootScope.workProject = el;
                                             if (onEvent) {
                                                 $rootScope.$broadcast("changedLastProject", {id: el.id});
+                                                $state.go("issues.list");
                                             }
-
-                                            if (reload) {
+                                            /*if (reload) {
                                                 $state.go('dashboards.dashboard');
-                                            }
+                                            }*/
                                         }
                                     });
-                                    // $state.go($state.current, {}, {reload: reload});
+                                   //$state.go($state.current, {}, {reload: reload});
                                 }
                             });
                         }
                     }
                 };
-
-
 
                 //  �봽濡쒖젥�듃 愿�由� 沅뚰븳�씠 �엳�뒗吏� �솗�씤�븳�떎
                 $rootScope.checkMngPermissionProject = function () {
diff --git a/src/main/webapp/views/common/header.html b/src/main/webapp/views/common/header.html
index 9383080..74c4e5a 100644
--- a/src/main/webapp/views/common/header.html
+++ b/src/main/webapp/views/common/header.html
@@ -27,7 +27,7 @@
         </div>
         <div class="top-right col-lg-4">
             <!-- �쟾泥� �봽濡쒖젥�듃 �씪�븣 �씠�뒋 留뚮뱾湲� 踰꾪듉 �닲源� -->
-            <button class="btn btn-xlg btn-primary btn-rounded mr-10" ng-if="$root.workProject.id > -1" ng-click="fn.addIssue()" tabindex="-1">
+            <button class="btn btn-xlg btn-primary btn-rounded mr-10" ng-if="$root.checkMngPermissionSettings() && $root.workProject.id > -1" ng-click="fn.addIssue()" tabindex="-1">
                 <i class="os-icon os-icon-plus"></i> <span translate="issue.createIssue">�씠�뒋 留뚮뱾湲�</span>
             </button>
 
diff --git a/src/main/webapp/views/workspace/workspaceLevelAdd.html b/src/main/webapp/views/workspace/workspaceLevelAdd.html
index 10a2f9f..51a8558 100644
--- a/src/main/webapp/views/workspace/workspaceLevelAdd.html
+++ b/src/main/webapp/views/workspace/workspaceLevelAdd.html
@@ -38,15 +38,7 @@
                         <span translate="manageUser.manageAllIssueAndProjectPerm">�쟾泥� �씠�뒋 �봽濡쒖젥�듃 蹂닿린</span>
                     </td>
                     <td colspan="2">
-                        <label class='switch'><input type='checkbox' ng-model='vm.form.permAllIssueSetting'><span class='slider round'></span></label>
-                    </td>
-                </tr>
-                <tr>
-                    <td class="text-left bold">
-                        <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>
+                        <label class='switch'><input type='checkbox' ng-model='vm.form.permAllIssueAndProjectSetting'><span class='slider round'></span></label>
                     </td>
                 </tr>
                 <tr>

--
Gitblit v1.8.0