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