OWL ITS + 탐지시스템(인터넷 진흥원)
- 이슈 수정시 사용자가 담당부서에 속해있으면 수정 가능
- 프로젝트 관리 권한이 있는데 프로젝트 수정 항목이 표시 안되는 문제 수정
4개 파일 변경됨
26 ■■■■ 파일 변경됨
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java 4 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java 10 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js 2 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/issue/issueDetail.html 10 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -1136,7 +1136,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);
src/main/java/kr/wisestone/owl/service/impl/ProjectServiceImpl.java
@@ -368,6 +368,7 @@
            //  관리자일 때
            UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId());
            if (this.userWorkspaceService.checkWorkspaceManager(user)
                    || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_PROJECT)
                    || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_ISSUE_PROJECT_ALL)) {
                results = this.projectMapper.findByWorkspaceManager(condition);
                totalCount = this.projectMapper.countByWorkspaceManager(condition);
@@ -426,6 +427,7 @@
    //  프로젝트 조회 결과를 ProjectVos 로 변환한다. - 관리자, 일반 사용자 정보 추가
    private List<ProjectVo> makeProjectVos(List<Map<String, Object>> results, User user) {
        List<ProjectVo> projectVos = Lists.newArrayList();
        UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId());
        for (Map<String, Object> result : results) {
            ProjectVo projectVo = ConvertUtil.convertMapToClass(result, ProjectVo.class);
@@ -437,7 +439,8 @@
            this.setProjectDepartment(projectVo);
            //  업무공간 담당자는 모든 프로젝트를 수정/삭제할 수 있어야 한다.
            if (this.userWorkspaceService.checkWorkspaceManager(user)) {
            if (this.userWorkspaceService.checkWorkspaceManager(user)
                    || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_PROJECT)) {
                projectVo.setModifyPermissionCheck(true);
            }
            projectVos.add(projectVo);
@@ -699,11 +702,13 @@
        projectRoleUserMap.put("statuses", Lists.newArrayList("02"));   //  관리자 조회
        List<Map<String, Object>> projectUsers = this.projectRoleUserService.findProjectRoleUser(projectRoleUserMap);
        UserLevel userLevel = this.userLevelService.getUserLevel(user.getUserLevel().getId());
        //  현재 로그인 사용자가 관리자인지 확인
        if (projectUsers != null && !projectUsers.isEmpty()) {
            for (Map<String, Object> projectUser : projectUsers) {
                UserVo userVo = ConvertUtil.convertMapToClass(projectUser, UserVo.class);
                if (userVo.getId().equals(this.webAppUtil.getLoginId())) {
                if (userVo.getId().equals(this.webAppUtil.getLoginId())
                        || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_PROJECT)) {
                    hasPermission = true;
                    break;
                }
@@ -1132,6 +1137,7 @@
        List<Map<String, Object>> results;
        if (this.userWorkspaceService.checkWorkspaceManager(user)
                || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_PROJECT)
                || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_ISSUE_PROJECT_ALL)) {
            results = this.projectMapper.findByWorkspaceManager(projectCondition);
        } else {
src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js
@@ -312,7 +312,7 @@
                                        // 하위 이슈 삭제
                                        case "ISSUE_DOWN_DELETE":
                                            makeTag += '<img class="cursor" src="/assets/images/delete-icon.png" ng-click="event.removeDownIssue(data.id)">';
                                            makeTag += '<img class="cursor" src="/assets/images/delete-icon.png" ng-if="scope.data.modifyPermissionCheck" ng-click="event.removeDownIssue(data.id)">';
                                            break;
                                        // 하위 이슈 우선 순위
src/main/webapp/views/issue/issueDetail.html
@@ -103,7 +103,7 @@
            </span>
            <a class="show-ticket-info cursor">
                <i class="os-icon os-icon-email-forward mr-20" ng-click="fn.sendMailAll()" data-toggle="tooltip" data-placement="right" title="다른 사용자에게 이슈 보내기"></i>
                <i class="os-icon os-icon-email-forward mr-20" ng-if="vm.viewer.modifyPermissionCheck" ng-click="fn.sendMailAll()" data-toggle="tooltip" data-placement="right" title="다른 사용자에게 이슈 보내기"></i>
                <i class="os-icon os-icon-airplay mr-20" ng-click="fn.versionView(vm.viewer.id)" data-toggle="tooltip" data-placement="right" title="이슈 변경 이력 상세 보기"></i>
                <i class="os-icon os-icon-calendar-time mr-20" ng-if="vm.viewer.modifyPermissionCheck"
                   ng-click="fn.reservation(vm.viewer.id)" data-toggle="tooltip" data-placement="right" title="이슈 발생 예약 하기"></i>
@@ -139,6 +139,7 @@
                                                <span ng-if="vm.viewer.departmentVos.length < 1" translate="common.noDepartment">담당부서가 없습니다.</span>
                                                            <i class="fa fa-edit fa-2x issue-status-edit cursor"
                                                               ng-if="vm.viewer.modifyPermissionCheck"
                                                               ng-click="fn.modifyIssueDepartment()" data-toggle="tooltip" data-placement="right" title="담당자 변경 하기"></i>
                                            </div>
                                        </div>
@@ -494,9 +495,11 @@
                        </div>
                        <div class="col-auto vertical-middle" style="display: flex">
                            <button type="button" class="btn btn-primary"
                                    ng-if="vm.viewer.modifyPermissionCheck"
                                    ng-click="fn.addRelationIssue()"
                                    translate="issue.addRelationIssue">연관 이슈 추가</button>
                            <button type="button" class="btn btn-sm btn-primary btn-roundRel  offset-1"
                                    ng-if="vm.viewer.modifyPermissionCheck"
                                    ng-click="fn.addRelationIssueForm(vm.viewer.id)">
                                <i class="os-icon os-icon-plus"><span></span></i>
                            </button>
@@ -510,9 +513,9 @@
                        <span class="info_detail_font h3" translate="issue.downIssue">하위 이슈</span>
                    </div>
                    <div class="col-sm-2">
                        <a><button type="button" class="btn btn-darkgrey offset-7"
                        <a><button type="button" class="btn btn-darkgrey offset-7" ng-if="vm.viewer.modifyPermissionCheck"
                                ng-click="fn.modifyDownIssueStatus()">
                                <span translate="common.updateDownIssueAllStatus">하위이슈 상태 전체 변경</span>
                                <span ng-if="vm.viewer.modifyPermissionCheck" translate="common.updateDownIssueAllStatus">하위이슈 상태 전체 변경</span>
                        </button></a>
                    </div>
                    <div class="col-sm-1">
@@ -541,6 +544,7 @@
                        </div>
                        <div class="col-auto vertical-middle" style="display: flex">
                            <button type="button" class="btn btn-primary"
                                    ng-if="vm.viewer.modifyPermissionCheck"
                                    ng-click="fn.addDownIssue()"
                                    translate="issue.addDownIssue">추가</button>
                        </div>