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