- 이슈전체보기/이슈프로젝트보기 권한 생성
- 워크스페이스 권한을 가진 사용자 OWL정보 오류 해결
| | |
| | | */ |
| | | 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 |
| | |
| | | |
| | | 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 | |
| | |
| | | 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"; // 이슈 담당부서 |
| | |
| | | |
| | | List<UserWorkspace> findByWorkspaceIdAndUserIdIn(@Param("workspaceId") Long workspaceId, @Param("userIds") List<Long> userIds); |
| | | |
| | | UserWorkspace findByUserId(Long userId); |
| | | } |
| | | |
| | |
| | | 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; |
| | |
| | | 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{ |
| | |
| | | //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; |
| | | } |
| | | |
| | |
| | | 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); |
| | |
| | | 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; |
| | |
| | | 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); |
| | | } |
| | |
| | | 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)); |
| | |
| | | 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); |
| | |
| | | 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); |
| | |
| | | @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); |
| | | } |
| | | |
| | | // 업무 공간 사용자 연결 아이디로 업무 공간 사용자 연결 정보를 조회한다. |
| | |
| | | private Integer permission; |
| | | private Long userId; |
| | | |
| | | public Boolean permAllIssueSetting; |
| | | public Boolean permAllProjectSetting; |
| | | public Boolean permPartnerSetting; |
| | | public Boolean permWorkSpaceSetting; |
| | | public Boolean permProjectSetting; |
| | |
| | | } |
| | | |
| | | 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); |
| | |
| | | private String defaultYn; |
| | | private String basicUser; |
| | | |
| | | private Boolean permAllIssueSetting; |
| | | private Boolean permAllProjectSetting; |
| | | public Boolean permPartnerSetting; |
| | | public Boolean permWorkSpaceSetting; |
| | | public Boolean permProjectSetting; |
| | |
| | | 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); |
| | |
| | | private Long id; |
| | | private Boolean useYn; |
| | | private Long userId; |
| | | private Boolean permAllIssueSetting; |
| | | private Boolean permAllProjectSetting; |
| | | private Boolean permPartnerSetting; |
| | | private Boolean permWorkSpaceSetting; |
| | | private Boolean permProjectSetting; |
| | |
| | | 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; |
| | | } |
| | | } |
| | |
| | | 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; |
| | |
| | | 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; |
| | | } |
| | |
| | | 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); |
| | |
| | | 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 |
| | |
| | | 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; |
| | |
| | | }, |
| | | "manageUser": { |
| | | "manageUser": "사용자 권한 관리", |
| | | "manageAllIssuePerm": "전체 이슈 관리", |
| | | "manageAllProjectPerm": "전체 프로젝트 관리", |
| | | "managePartnerPerm" : "업체/ISP/호스팅 관리", |
| | | "manageWorkspacePerm": "워크스페이스 관리", |
| | | "manageProjectPerm": "프로젝트 관리", |
| | |
| | | $scope.vm = { |
| | | form : { |
| | | levelName : "", |
| | | permAllIssueSetting : false, |
| | | permAllProjectSetting : false, |
| | | permPartnerSetting : false, |
| | | permWorkSpaceSetting : false, |
| | | permProjectSetting : false, |
| | | permIssueSetting : false, |
| | |
| | | id : parameter.id, |
| | | form : { |
| | | levelName : "", |
| | | permAllIssueSetting : false, |
| | | permAllProjectSetting : false, |
| | | permWorkSpaceSetting : false, |
| | | permProjectSetting : false, |
| | | permIssueSetting : false, |
| | |
| | | .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") |
| | |
| | | |
| | | // 권한 리스트 |
| | | $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, |
| | |
| | | <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> |
| | |
| | | <!--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"> |