From 7ee184b86e44fc96782b813ee10691cf1445a5b7 Mon Sep 17 00:00:00 2001
From: wyu <kknd09321@nate.com>
Date: 목, 09 12월 2021 22:34:44 +0900
Subject: [PATCH] Merge branch 'master' of http://192.168.0.25:9001/r/owl-kisa

---
 src/main/java/kr/wisestone/owl/web/form/ManageUserForm.java                  |   18 ++++
 src/main/java/kr/wisestone/owl/service/IssueTypeService.java                 |    2 
 src/main/java/kr/wisestone/owl/domain/IssueType.java                         |    3 
 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/web/form/UserLevelForm.java                   |   22 +++++
 src/main/webapp/scripts/app/workspace/workspaceLevelModify.controller.js     |    2 
 src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java        |   32 ++++++-
 src/main/webapp/views/common/sidebar.html                                    |    2 
 src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java            |   11 +-
 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/vo/UserLevelVo.java                           |   20 +++++
 src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java          |    3 
 src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java             |    2 
 src/main/webapp/views/workspace/workspaceLevelAdd.html                       |   16 ++++
 src/main/webapp/scripts/config.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 ++
 25 files changed, 169 insertions(+), 21 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/domain/IssueType.java b/src/main/java/kr/wisestone/owl/domain/IssueType.java
index a9c98ca..1e0ca66 100644
--- a/src/main/java/kr/wisestone/owl/domain/IssueType.java
+++ b/src/main/java/kr/wisestone/owl/domain/IssueType.java
@@ -57,12 +57,13 @@
 
     public IssueType(){}
 
-    public IssueType(Workspace workspace, Workflow workflow, String name, String description, String color){
+    public IssueType(Workspace workspace, Workflow workflow, String name, String description, String color, Long usePartner){
         this.workspace = workspace;
         this.workflow = workflow;
         this.name = name;
         this.description = description;
         this.color = color;
+        this.usePartner = usePartner;
     }
 
     public Long getId() {
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/IssueTypeService.java b/src/main/java/kr/wisestone/owl/service/IssueTypeService.java
index 4bcfbe0..738a26a 100644
--- a/src/main/java/kr/wisestone/owl/service/IssueTypeService.java
+++ b/src/main/java/kr/wisestone/owl/service/IssueTypeService.java
@@ -20,6 +20,8 @@
 
     void addDefaultIssueType(Workspace workspace, List<ProjectType> projectTypes);
 
+    void addDefaultUsedProject(Workspace workspace);
+
     IssueType addIssueType(IssueTypeForm issueTypeForm);
 
     List<IssueTypeVo> findIssueType(Map<String, Object> resJsonData,
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/IssueTypeServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java
index 0c3b5b1..5519b9e 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java
@@ -10,6 +10,7 @@
 import kr.wisestone.owl.exception.OwlRuntimeException;
 import kr.wisestone.owl.mapper.IssueTypeMapper;
 import kr.wisestone.owl.repository.IssueTypeRepository;
+import kr.wisestone.owl.repository.ProjectRepository;
 import kr.wisestone.owl.service.*;
 import kr.wisestone.owl.util.ConvertUtil;
 import kr.wisestone.owl.util.MapUtil;
@@ -40,6 +41,9 @@
 
     @Autowired
     private IssueTypeRepository issueTypeRepository;
+
+    @Autowired
+    private ProjectRepository projectRepository;
 
     @Autowired
     private WorkflowService workflowService;
@@ -80,28 +84,42 @@
         for (ProjectType projectType : projectTypes) {
             List<IssueType> issueTypes = Lists.newArrayList();
             Workflow workflow = this.workflowService.findByWorkspaceIdAndProjectType(workspace.getId(), projectType);
-            //String projectKey = "BTS";
-            //Project project = this.projectService.findByProjectKey(projectKey);
 
             switch (projectType) {
                 case BTS_PROJECT:
-                    issueTypes.add(new IssueType(workspace, workflow, "�븙�꽦 �룄硫붿씤", "", "#ff5f99")); // 踰꾧렇
-                    issueTypes.add(new IssueType(workspace, workflow, "寃쎌쑀吏� ���쓳", "", "#3598fe")); // 媛쒖꽑
+                    issueTypes.add(new IssueType(workspace, workflow, "�븙�꽦 �룄硫붿씤", "", "#ff5f99", 0L)); // 踰꾧렇
+                    issueTypes.add(new IssueType(workspace, workflow, "寃쎌쑀吏� ���쓳", "", "#3598fe", 0L)); // 媛쒖꽑
                     break;
 
                 case RMS_PROJECT:
-                    issueTypes.add(new IssueType(workspace, workflow, "�쑀�룷吏� ���쓳", "", "#3bcde2")); // �슂援� �궗�빆
+                    issueTypes.add(new IssueType(workspace, workflow, "�쑀�룷吏� ���쓳", "", "#3bcde2", 0L)); // �슂援� �궗�빆
                     break;
 
                 case TCM_PROJECT:
-                    issueTypes.add(new IssueType(workspace, workflow, "遺꾩꽍寃곌낵 ���쓳", "", "#008ca7")); // �뀒�뒪�듃 耳��씠�뒪, �떎�뻾 �닚�꽌, �쟾�젣 議곌굔, 湲곕� 寃곌낵
+                    issueTypes.add(new IssueType(workspace, workflow, "遺꾩꽍寃곌낵 ���쓳", "", "#008ca7", 0L)); // �뀒�뒪�듃 耳��씠�뒪, �떎�뻾 �닚�꽌, �쟾�젣 議곌굔, 湲곕� 寃곌낵
                     break;
             }
-
             this.issueTypeRepository.saveAll(issueTypes);
         }
     }
 
+    @Override
+    @Transactional
+    public void addDefaultUsedProject(Workspace workspace) {
+        List<IssueType> issueTypes = this.issueTypeRepository.findByWorkspaceId(workspace.getId());
+        List<Project> projects = this.projectRepository.findByWorkspaceId(workspace.getId());
+        if(issueTypes != null && issueTypes.size() > 0){
+            for(IssueType issueType : issueTypes){
+                if(projects != null && projects.size()>0){
+                    for(Project project : projects){
+                        issueType.setProject(project);
+                    }
+                }
+            }
+        }
+
+    }
+
     //  �씠�뒋 �쑀�삎�쓣 �깮�꽦�븳�떎.
     @Override
     @Transactional
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/UserServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java
index 09ccec0..96bcc28 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java
@@ -264,7 +264,7 @@
                 this.projectService.addDefaultProject(user, workspace);
 
                 // 湲곕낯�쑝濡� �젣怨듬릺�뒗 �봽濡쒖젥�듃瑜� �씠�뒋 �쑀�삎�쓽 �궗�슜 �봽濡쒖젥�듃濡� �꽕�젙
-                //this.issueTypeService.addDefaultUsedProject(workspace);
+                this.issueTypeService.addDefaultUsedProject(workspace);
 
                 user.setLastWorkspaceId(workspace.getId());
 
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