From d78323a9138aab73f9f1b25e0a74283780176452 Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 목, 09 12월 2021 20:43:47 +0900
Subject: [PATCH] - 이슈전체보기/이슈프로젝트보기 권한 생성 - 워크스페이스 권한을 가진 사용자 OWL정보 오류 해결

---
 src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java            |   11 ++-
 src/main/java/kr/wisestone/owl/web/form/ManageUserForm.java                  |   18 ++++++
 src/main/java/kr/wisestone/owl/vo/ManageUserVo.java                          |    4 +
 src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java        |    4 +
 src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js |   14 ++++
 src/main/java/kr/wisestone/owl/repository/UserWorkspaceRepository.java       |    1 
 src/main/java/kr/wisestone/owl/service/impl/UserWorkspaceServiceImpl.java    |    7 +-
 src/main/java/kr/wisestone/owl/domain/Issue.java                             |    2 
 src/main/webapp/scripts/app/workspace/workspaceLevelAdd.controller.js        |    3 +
 src/main/java/kr/wisestone/owl/vo/UserLevelVo.java                           |   20 ++++++
 src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java          |    3 
 src/main/webapp/views/workspace/workspaceLevelAdd.html                       |   16 +++++
 src/main/webapp/scripts/config.js                                            |    2 
 src/main/java/kr/wisestone/owl/web/form/UserLevelForm.java                   |   22 +++++++
 src/main/webapp/scripts/app/workspace/workspaceLevelModify.controller.js     |    2 
 src/main/java/kr/wisestone/owl/constant/MngPermission.java                   |    6 +
 src/main/webapp/i18n/ko/global.json                                          |    2 
 src/main/java/kr/wisestone/owl/service/impl/ManageUserServiceImpl.java       |    2 
 src/main/webapp/WEB-INF/i18n/code_ko_KR.properties                           |    2 
 src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js |    8 ++
 src/main/webapp/views/common/sidebar.html                                    |    2 
 21 files changed, 139 insertions(+), 12 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/constant/MngPermission.java b/src/main/java/kr/wisestone/owl/constant/MngPermission.java
index bf0112f..9db58d5 100644
--- a/src/main/java/kr/wisestone/owl/constant/MngPermission.java
+++ b/src/main/java/kr/wisestone/owl/constant/MngPermission.java
@@ -5,6 +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_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
@@ -38,7 +40,9 @@
 
     public static int makeAllPermission()
     {
-        return (USER_PERMISSION_MNG_PARTNER |
+        return (USER_PERMISSION_MNG_ISSUE_ALL |
+                USER_PERMISSION_MNG_PROJECT_ALL |
+                USER_PERMISSION_MNG_PARTNER |
                 USER_PERMISSION_MNG_WORKSPACE |
                 USER_PERMISSION_MNG_PROJECT |
                 USER_PERMISSION_MNG_API |
diff --git a/src/main/java/kr/wisestone/owl/domain/Issue.java b/src/main/java/kr/wisestone/owl/domain/Issue.java
index 97a7656..90cc583 100644
--- a/src/main/java/kr/wisestone/owl/domain/Issue.java
+++ b/src/main/java/kr/wisestone/owl/domain/Issue.java
@@ -18,6 +18,8 @@
     private static final long serialVersionUID = 1L;
     public static final String WORKSPACE_MANAGER = "WORKSPACE_MANAGER"; //  �뾽臾� 怨듦컙 愿�由ъ옄
     public static final String PROJECT_MANAGER = "PROJECT_MANAGER"; //  �봽濡쒖젥�듃 愿�由ъ옄
+    public static final String ALL_ISSUE_MANAGER = "ALL_ISSUE_MANAGER"; //  �쟾泥� �씠�뒋 愿�由ъ옄
+    public static final String ALL_PROJECT_MANAGER = "ALL_PROJECT_MANAGER"; //  �쟾泥� �봽濡쒖젥�듃 愿�由ъ옄
     public static final String REGISTER = "REGISTER";   //  �씠�뒋 �벑濡앹옄
     public static final String ASSIGNEE = "ASSIGNEE";   //  �씠�뒋 �떞�떦�옄
     public static final String DEPARTMENT = "DEPARTMENT";   //  �씠�뒋 �떞�떦遺��꽌
diff --git a/src/main/java/kr/wisestone/owl/repository/UserWorkspaceRepository.java b/src/main/java/kr/wisestone/owl/repository/UserWorkspaceRepository.java
index 0428861..c486d22 100644
--- a/src/main/java/kr/wisestone/owl/repository/UserWorkspaceRepository.java
+++ b/src/main/java/kr/wisestone/owl/repository/UserWorkspaceRepository.java
@@ -23,5 +23,6 @@
 
     List<UserWorkspace> findByWorkspaceIdAndUserIdIn(@Param("workspaceId") Long workspaceId, @Param("userIds") List<Long> userIds);
 
+    UserWorkspace findByUserId(Long userId);
 }
 
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 d35c3b3..2306be7 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -5,10 +5,7 @@
 import kr.wisestone.owl.common.ExcelConditionCheck;
 import kr.wisestone.owl.common.IssueCustomFieldValueFormComparator;
 import kr.wisestone.owl.config.CommonConfiguration;
-import kr.wisestone.owl.constant.Constants;
-import kr.wisestone.owl.constant.ElasticSearchConstants;
-import kr.wisestone.owl.constant.MsgConstants;
-import kr.wisestone.owl.constant.UsePartner;
+import kr.wisestone.owl.constant.*;
 import kr.wisestone.owl.data.CheckIssueData;
 import kr.wisestone.owl.domain.*;
 import kr.wisestone.owl.domain.enumType.CustomFieldType;
@@ -745,10 +742,11 @@
         issueCondition.setWorkspaceId(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId());
         User user = this.webAppUtil.getLoginUserObject();
 
+
         List<Map<String, Object>> results = Lists.newArrayList();
         Long totalCount = 0L;
 
-        if (this.userWorkspaceService.checkWorkspaceManager(user)) {
+        if (this.userWorkspaceService.checkWorkspaceManager(user) || user.getPermission() >= MngPermission.USER_PERMISSION_MNG_ISSUE_ALL) {
             results = this.issueMapper.find(issueCondition);
             totalCount = this.issueMapper.count(issueCondition);
         } else{
@@ -1873,6 +1871,9 @@
         //hasPermission = this.checkIssueModifyPermission(hasPermission, Issue.ASSIGNEE, issueVo, issueUserVos);
         //  �떞�떦�옄媛� �뾾�쑝硫� 紐⑤뱺 �궗�슜�옄媛� �닔�젙 沅뚰븳�쓣 媛뽯뒗�떎.
 
+        hasPermission = this.checkIssueModifyPermission(hasPermission, Issue.ALL_ISSUE_MANAGER, issueVo, null, null, user);
+        hasPermission = this.checkIssueModifyPermission(hasPermission, Issue.ALL_PROJECT_MANAGER, issueVo, null, null, user);
+
         return hasPermission;
     }
 
diff --git a/src/main/java/kr/wisestone/owl/service/impl/ManageUserServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/ManageUserServiceImpl.java
index 7be22c2..899e2f1 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/ManageUserServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/ManageUserServiceImpl.java
@@ -95,6 +95,8 @@
     public void modifyUserPermission(ManageUserForm manageUserForm) {
         int newPermission = MngPermission.USER_PERMISSION_MNG_NONE;
 
+        newPermission |= MngPermission.makePermission(manageUserForm.getPermAllIssueSetting(), MngPermission.USER_PERMISSION_MNG_ISSUE_ALL);
+        newPermission |= MngPermission.makePermission(manageUserForm.getPermAllProjectSetting(), MngPermission.USER_PERMISSION_MNG_PROJECT_ALL);
         newPermission |= MngPermission.makePermission(manageUserForm.getPermPartnerSetting(), MngPermission.USER_PERMISSION_MNG_PARTNER);
         newPermission |= MngPermission.makePermission(manageUserForm.getPermWorkSpaceSetting(), MngPermission.USER_PERMISSION_MNG_WORKSPACE);
         newPermission |= MngPermission.makePermission(manageUserForm.getPermProjectSetting(), MngPermission.USER_PERMISSION_MNG_PROJECT);
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 eb33e80..71ee77a 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java
@@ -3,6 +3,7 @@
 import com.google.common.collect.Lists;
 import kr.wisestone.owl.common.ExcelConditionCheck;
 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.EmailType;
@@ -362,7 +363,7 @@
         if (condition.getWorkspaceManager()) {
             //  �뾽臾닿났媛� 愿�由ъ옄�씪 寃쎌슦 紐⑤뱺 �봽濡쒖젥�듃媛� �몴�떆�릺�뼱�빞 �븳�떎.
             //  愿�由ъ옄�씪 �븣
-            if (this.userWorkspaceService.checkWorkspaceManager(user)) {
+            if (this.userWorkspaceService.checkWorkspaceManager(user) || user.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/UserLevelServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java
index 2b98498..899301b 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java
@@ -240,6 +240,8 @@
         ExportExcelVo excelInfo = new ExportExcelVo();
         excelInfo.setFileName(this.messageAccessor.message("�궗�슜�옄 紐⑸줉"));
         excelInfo.addAttrInfos(new ExportExcelAttrVo("levelName", this.messageAccessor.message("managementWorkspace.levelName"), 6, ExportExcelAttrVo.ALIGN_CENTER));
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("permAllIssueSetting", this.messageAccessor.message("manageUser.manageAllIssuePerm"), 3, ExportExcelAttrVo.ALIGN_CENTER));
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("permAllProjectSetting", this.messageAccessor.message("manageUser.manageAllProjectPerm"), 3, ExportExcelAttrVo.ALIGN_CENTER));
         excelInfo.addAttrInfos(new ExportExcelAttrVo("permPartnerSetting", this.messageAccessor.message("manageUser.managePartnerPerm"), 3, ExportExcelAttrVo.ALIGN_CENTER));
         excelInfo.addAttrInfos(new ExportExcelAttrVo("permWorkSpaceSetting", this.messageAccessor.message("manageUser.manageWorkspacePerm"), 3, ExportExcelAttrVo.ALIGN_CENTER));
         excelInfo.addAttrInfos(new ExportExcelAttrVo("permProjectSetting", this.messageAccessor.message("manageUser.manageProjectPerm"), 3, ExportExcelAttrVo.ALIGN_CENTER));
@@ -261,6 +263,8 @@
     public void modifyLevelPermission(UserLevelForm userLevelForm) {
         int newPermission = MngPermission.USER_PERMISSION_MNG_NONE;
 
+        newPermission |= MngPermission.makePermission(userLevelForm.getPermAllIssueSetting(), MngPermission.USER_PERMISSION_MNG_ISSUE_ALL);
+        newPermission |= MngPermission.makePermission(userLevelForm.getPermAllProjectSetting(), MngPermission.USER_PERMISSION_MNG_PROJECT_ALL);
         newPermission |= MngPermission.makePermission(userLevelForm.getPermPartnerSetting(), MngPermission.USER_PERMISSION_MNG_PARTNER);
         newPermission |= MngPermission.makePermission(userLevelForm.getPermWorkSpaceSetting(), MngPermission.USER_PERMISSION_MNG_WORKSPACE);
         newPermission |= MngPermission.makePermission(userLevelForm.getPermProjectSetting(), MngPermission.USER_PERMISSION_MNG_PROJECT);
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 f8657be..8533bb5 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/UserWorkspaceServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/UserWorkspaceServiceImpl.java
@@ -172,10 +172,10 @@
     public void disabledUserWorkspace(User user, Workspace workspace) {
         UserWorkspace userWorkspace = this.userWorkspaceRepository.findByUserIdAndWorkspaceId(user.getId(), workspace.getId());
 
-        if (userWorkspace.getManagerYn()) {
+        /*if (userWorkspace.getManagerYn()) {
             throw new OwlRuntimeException(
                     this.messageAccessor.getMessage(MsgConstants.WORKSPACE_MANAGER_NOT_CHANGE_USE_YN));
-        }
+        }*/
 
         userWorkspace.setUseYn(false);
         this.userWorkspaceRepository.saveAndFlush(userWorkspace);
@@ -213,7 +213,8 @@
     @Override
     @Transactional(readOnly = true)
     public UserWorkspace findMyWorkspace(Long userId) {
-        return this.userWorkspaceRepository.findByUserIdAndManagerYn(userId, true);
+        //return this.userWorkspaceRepository.findByUserIdAndManagerYn(userId, true);
+        return this.userWorkspaceRepository.findByUserId(userId);
     }
 
     //  �뾽臾� 怨듦컙 �궗�슜�옄 �뿰寃� �븘�씠�뵒濡� �뾽臾� 怨듦컙 �궗�슜�옄 �뿰寃� �젙蹂대�� 議고쉶�븳�떎.
diff --git a/src/main/java/kr/wisestone/owl/vo/ManageUserVo.java b/src/main/java/kr/wisestone/owl/vo/ManageUserVo.java
index eb6c5ef..c2827ac 100644
--- a/src/main/java/kr/wisestone/owl/vo/ManageUserVo.java
+++ b/src/main/java/kr/wisestone/owl/vo/ManageUserVo.java
@@ -13,6 +13,8 @@
     private Integer permission;
     private Long userId;
 
+    public Boolean permAllIssueSetting;
+    public Boolean permAllProjectSetting;
     public Boolean permPartnerSetting;
     public Boolean permWorkSpaceSetting;
     public Boolean permProjectSetting;
@@ -68,6 +70,8 @@
     }
 
     private void makePermission() {
+        this.permAllIssueSetting = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_ISSUE_ALL);
+        this.permAllProjectSetting = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_PROJECT_ALL);
         this.permPartnerSetting = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_PARTNER);
         this.permWorkSpaceSetting = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_WORKSPACE);
         this.permProjectSetting = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_PROJECT);
diff --git a/src/main/java/kr/wisestone/owl/vo/UserLevelVo.java b/src/main/java/kr/wisestone/owl/vo/UserLevelVo.java
index b607da1..3787a88 100644
--- a/src/main/java/kr/wisestone/owl/vo/UserLevelVo.java
+++ b/src/main/java/kr/wisestone/owl/vo/UserLevelVo.java
@@ -16,6 +16,8 @@
     private String defaultYn;
     private String basicUser;
 
+    private Boolean permAllIssueSetting;
+    private Boolean permAllProjectSetting;
     public Boolean permPartnerSetting;
     public Boolean permWorkSpaceSetting;
     public Boolean permProjectSetting;
@@ -156,7 +158,25 @@
         this.permGuide = permGuide;
     }
 
+    public Boolean getPermAllIssueSetting() {
+        return permAllIssueSetting;
+    }
+
+    public void setPermAllIssueSetting(Boolean permAllIssueSetting) {
+        this.permAllIssueSetting = permAllIssueSetting;
+    }
+
+    public Boolean getPermAllProjectSetting() {
+        return permAllProjectSetting;
+    }
+
+    public void setPermAllProjectSetting(Boolean permAllProjectSetting) {
+        this.permAllProjectSetting = permAllProjectSetting;
+    }
+
     public void toPermissionValues() {
+        this.permAllIssueSetting = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_ISSUE_ALL);
+        this.permAllProjectSetting = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_PROJECT_ALL);
         this.permPartnerSetting = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_PARTNER);
         this.permWorkSpaceSetting = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_WORKSPACE);
         this.permProjectSetting = MngPermission.checkMngPermission(this.permission, MngPermission.USER_PERMISSION_MNG_PROJECT);
diff --git a/src/main/java/kr/wisestone/owl/web/form/ManageUserForm.java b/src/main/java/kr/wisestone/owl/web/form/ManageUserForm.java
index 045863b..5dcbf93 100644
--- a/src/main/java/kr/wisestone/owl/web/form/ManageUserForm.java
+++ b/src/main/java/kr/wisestone/owl/web/form/ManageUserForm.java
@@ -14,6 +14,8 @@
     private Long id;
     private Boolean useYn;
     private Long userId;
+    private Boolean permAllIssueSetting;
+    private Boolean permAllProjectSetting;
     private Boolean permPartnerSetting;
     private Boolean permWorkSpaceSetting;
     private Boolean permProjectSetting;
@@ -136,4 +138,20 @@
     public void setPermGuide(Boolean permGuide) {
         this.permGuide = permGuide;
     }
+
+    public Boolean getPermAllIssueSetting() {
+        return permAllIssueSetting;
+    }
+
+    public void setPermAllIssueSetting(Boolean permAllIssueSetting) {
+        this.permAllIssueSetting = permAllIssueSetting;
+    }
+
+    public Boolean getPermAllProjectSetting() {
+        return permAllProjectSetting;
+    }
+
+    public void setPermAllProjectSetting(Boolean permAllProjectSetting) {
+        this.permAllProjectSetting = permAllProjectSetting;
+    }
 }
diff --git a/src/main/java/kr/wisestone/owl/web/form/UserLevelForm.java b/src/main/java/kr/wisestone/owl/web/form/UserLevelForm.java
index a196a0c..adfa028 100644
--- a/src/main/java/kr/wisestone/owl/web/form/UserLevelForm.java
+++ b/src/main/java/kr/wisestone/owl/web/form/UserLevelForm.java
@@ -19,7 +19,9 @@
     private String basicUser;
 
     private List<Long> removeIds = Lists.newArrayList();
-    private Boolean permPartnerSetting;
+    public Boolean permAllIssueSetting;
+    public Boolean permAllProjectSetting;
+    public Boolean permPartnerSetting;
     public Boolean permWorkSpaceSetting;
     public Boolean permProjectSetting;
     public Boolean permIssueSetting;
@@ -108,6 +110,22 @@
         this.permWorkSpaceSetting = permWorkSpaceSetting;
     }
 
+    public Boolean getPermAllIssueSetting() {
+        return permAllIssueSetting;
+    }
+
+    public void setPermAllIssueSetting(Boolean permAllIssueSetting) {
+        this.permAllIssueSetting = permAllIssueSetting;
+    }
+
+    public Boolean getPermAllProjectSetting() {
+        return permAllProjectSetting;
+    }
+
+    public void setPermAllProjectSetting(Boolean permAllProjectSetting) {
+        this.permAllProjectSetting = permAllProjectSetting;
+    }
+
     public Boolean getPermProjectSetting() {
         return permProjectSetting;
     }
@@ -175,6 +193,8 @@
     public void makePermission() {
         this.permission = MngPermission.USER_PERMISSION_MNG_NONE;
 
+        this.permission |= MngPermission.makePermission(getPermAllIssueSetting(), MngPermission.USER_PERMISSION_MNG_ISSUE_ALL);
+        this.permission |= MngPermission.makePermission(getPermAllProjectSetting(), MngPermission.USER_PERMISSION_MNG_PROJECT_ALL);
         this.permission |= MngPermission.makePermission(getPermPartnerSetting(), MngPermission.USER_PERMISSION_MNG_PARTNER);
         this.permission |= MngPermission.makePermission(getPermWorkSpaceSetting(), MngPermission.USER_PERMISSION_MNG_WORKSPACE);
         this.permission |= MngPermission.makePermission(getPermProjectSetting(), MngPermission.USER_PERMISSION_MNG_PROJECT);
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 a808dc7..23260a8 100644
--- a/src/main/webapp/WEB-INF/i18n/code_ko_KR.properties
+++ b/src/main/webapp/WEB-INF/i18n/code_ko_KR.properties
@@ -110,6 +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.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/custom_components/js-table/tableColumnGenerator.directive.js b/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js
index beb4f8c..3099da6 100644
--- a/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js
+++ b/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js
@@ -537,6 +537,14 @@
                                             makeTag += "<label class='switch'><input type='checkbox' ng-model='data.permIssueSetting' ng-click='event.modifyLevelPermission(data)'><span class='slider round'></span></label>";
                                             break;
 
+                                        case "All_ISSUE_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>";
+                                            break;
+
+                                        case "All_PROJECT_SETTING_PERM_YN" :
+                                            makeTag += "<label class='switch'><input type='checkbox' ng-model='data.permAllProjectSetting' ng-click='event.modifyLevelPermission(data)'><span class='slider round'></span></label>";
+                                            break;
+
                                         case "PARTNER_SETTING_PERM_YN" :
                                             makeTag += "<label class='switch'><input type='checkbox' ng-model='data.permPartnerSetting' ng-click='event.modifyLevelPermission(data)'><span class='slider round'></span></label>";
                                             break;
diff --git a/src/main/webapp/i18n/ko/global.json b/src/main/webapp/i18n/ko/global.json
index af1d697..374ad8e 100644
--- a/src/main/webapp/i18n/ko/global.json
+++ b/src/main/webapp/i18n/ko/global.json
@@ -558,6 +558,8 @@
     },
     "manageUser": {
         "manageUser": "�궗�슜�옄 沅뚰븳 愿�由�",
+        "manageAllIssuePerm": "�쟾泥� �씠�뒋 愿�由�",
+        "manageAllProjectPerm": "�쟾泥� �봽濡쒖젥�듃 愿�由�",
         "managePartnerPerm" : "�뾽泥�/ISP/�샇�뒪�똿 愿�由�",
         "manageWorkspacePerm": "�썙�겕�뒪�럹�씠�뒪 愿�由�",
         "manageProjectPerm": "�봽濡쒖젥�듃 愿�由�",
diff --git a/src/main/webapp/scripts/app/workspace/workspaceLevelAdd.controller.js b/src/main/webapp/scripts/app/workspace/workspaceLevelAdd.controller.js
index 81a0a45..2097f1d 100644
--- a/src/main/webapp/scripts/app/workspace/workspaceLevelAdd.controller.js
+++ b/src/main/webapp/scripts/app/workspace/workspaceLevelAdd.controller.js
@@ -21,6 +21,9 @@
                 $scope.vm = {
                     form : {
                         levelName : "",
+                        permAllIssueSetting : false,
+                        permAllProjectSetting : false,
+                        permPartnerSetting : false,
                         permWorkSpaceSetting : false,
                         permProjectSetting : false,
                         permIssueSetting : false,
diff --git a/src/main/webapp/scripts/app/workspace/workspaceLevelModify.controller.js b/src/main/webapp/scripts/app/workspace/workspaceLevelModify.controller.js
index c503870..333b751 100644
--- a/src/main/webapp/scripts/app/workspace/workspaceLevelModify.controller.js
+++ b/src/main/webapp/scripts/app/workspace/workspaceLevelModify.controller.js
@@ -22,6 +22,8 @@
                     id : parameter.id,
                     form : {
                         levelName : "",
+                        permAllIssueSetting : false,
+                        permAllProjectSetting : false,
                         permWorkSpaceSetting : false,
                         permProjectSetting : false,
                         permIssueSetting : false,
diff --git a/src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js b/src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js
index 5109c5f..f3cd142 100644
--- a/src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js
+++ b/src/main/webapp/scripts/app/workspace/workspaceUserLevelConfig.controller.js
@@ -189,6 +189,20 @@
                         .setDType("renderer")
                         .setDRenderer("USER_LEVEL_MODIFY"));
                     $scope.vm.tableConfigs1.push($tableProvider.config()
+                        .setHName("manageUser.manageAllIssuePerm")
+                        .setHWidth("width-120-p")
+                        .setDType("renderer")
+                        .setDAlign("text-center")
+                        .setDName("manageAllIssue")
+                        .setDRenderer("All_ISSUE_SETTING_PERM_YN"));
+                    $scope.vm.tableConfigs1.push($tableProvider.config()
+                        .setHName("manageUser.manageAllProjectPerm")
+                        .setHWidth("width-120-p")
+                        .setDType("renderer")
+                        .setDAlign("text-center")
+                        .setDName("manageAllProject")
+                        .setDRenderer("All_PROJECT_SETTING_PERM_YN"));
+                    $scope.vm.tableConfigs1.push($tableProvider.config()
                         .setHName("manageUser.managePartnerPerm")
                         .setHWidth("width-120-p")
                         .setDType("renderer")
diff --git a/src/main/webapp/scripts/config.js b/src/main/webapp/scripts/config.js
index 22a9427..9c78c21 100644
--- a/src/main/webapp/scripts/config.js
+++ b/src/main/webapp/scripts/config.js
@@ -236,6 +236,8 @@
 
                 //  沅뚰븳 由ъ뒪�듃
                 $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,
diff --git a/src/main/webapp/views/common/sidebar.html b/src/main/webapp/views/common/sidebar.html
index 35ae2eb..bd62f4c 100644
--- a/src/main/webapp/views/common/sidebar.html
+++ b/src/main/webapp/views/common/sidebar.html
@@ -252,7 +252,7 @@
             <span>ISSUE LIST</span>
         </li>
 
-        <li ng-repeat="issueType in $root.workIssueTypes">
+        <li ng-repeat="issueType in $root.workIssueTypes" >
             <a class="cursor" tabindex="-1" ng-click="fn.changeIssueListMenu(issueType.id)">
                 <div class="icon-w">
                     <div class="os-icon os-icon-layout"></div>
diff --git a/src/main/webapp/views/workspace/workspaceLevelAdd.html b/src/main/webapp/views/workspace/workspaceLevelAdd.html
index 6936ef0..0a401b1 100644
--- a/src/main/webapp/views/workspace/workspaceLevelAdd.html
+++ b/src/main/webapp/views/workspace/workspaceLevelAdd.html
@@ -35,6 +35,22 @@
                 <!--tableColumnGenerator.dirextive.js �뙆�씪 李멸퀬-->
                 <tr>
                     <td class="text-left bold">
+                        <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>
+                    </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>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="text-left bold">
                         <span translate="manageUser.manageWorkspacePerm">�썙�겕�뒪�럹�씠�뒪 愿�由�</span>
                     </td>
                     <td colspan="2">

--
Gitblit v1.8.0