OWL ITS + 탐지시스템(인터넷 진흥원)
이민희
2021-12-15 4356da2b030443f74c25335ad60b9f3c40f5b789
이슈 하위이슈 삭제버튼, 최고관리자인데 수정 권한이 없는 오류 수정
5개 파일 변경됨
37 ■■■■■ 파일 변경됨
src/main/java/kr/wisestone/owl/service/IssueService.java 2 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java 11 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/IssueVersionServiceImpl.java 4 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js 2 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/issue/issueDetail.controller.js 18 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/IssueService.java
@@ -84,7 +84,7 @@
    List<Long> findByProjectId(Long projectId);
    void setIssueDetail(IssueVo issueVo, Issue issue);
    void setIssueDetail(IssueVo issueVo, Issue issue, User user);
    void sendIssueEmail(IssueForm issueForm);
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -1299,6 +1299,7 @@
        if (issueCondition.getId() != null) {
            Issue issue = this.getIssue(issueCondition.getId());
            issueVo = ConvertUtil.copyProperties(issue, IssueVo.class);
            User user = this.webAppUtil.getLoginUserObject();
            switch (issueCondition.getDeep()) {
                case "01": //  프로젝트, 이슈 유형, 이슈 상태,  우선순위, 중요도, 담당부서, 첨부파일, 사용자 정의 필드 정보를 셋팅한다.
@@ -1319,7 +1320,7 @@
                    break;
                case "02": //  프로젝트, 이슈 유형, 이슈 상태,  우선순위, 중요도, 담당자, 첨부파일, 사용자 정의 필드 정보, 댓글, 기록을 셋팅한다.
                    this.setIssueDetail(issueVo, issue);    //  이슈 상세 정보를 셋팅한다.
                    this.setIssueDetail(issueVo, issue, user);    //  이슈 상세 정보를 셋팅한다.
                    this.setIssueTableConfigs(issue, issueVo);
                    issueVo.setProjectVo(ConvertUtil.copyProperties(issue.getProject(), ProjectVo.class));
                    break;
@@ -1380,7 +1381,7 @@
    //  이슈 상세 정보를 셋팅한다.
    @Override
    @Transactional(readOnly = true)
    public void setIssueDetail(IssueVo issueVo, Issue issue) {
    public void setIssueDetail(IssueVo issueVo, Issue issue, User user) {
        issueVo.setProjectVo(ConvertUtil.copyProperties(issue.getProject(), ProjectVo.class));
        issueVo.setIssueTypeVo(ConvertUtil.copyProperties(issue.getIssueType(), IssueTypeVo.class));
        IssueStatusVo issueStatusVo = ConvertUtil.copyProperties(issue.getIssueStatus(), IssueStatusVo.class, "issueStatusType");
@@ -1415,8 +1416,12 @@
        this.setIssueCompanyField(issue, issueVo);  //업체 정보 세팅
        this.setIssueIspField(issue, issueVo);  //ISP 정보 세팅
        this.setIssueHostingField(issue, issueVo);  //HOSTING 정보 세팅
        this.setParentIssue(issue,issueVo); //상위 이슈 정보 세팅
        //  이슈 수정 권한을 갖고 있는지 확인
        if (this.checkHasPermission(issueVo, issueVo.getUserVos(), user, issueVo.getDepartmentVos())) {
            issueVo.setModifyPermissionCheck(Boolean.TRUE);
        }
    }
    //  상위일감 정보 추가
src/main/java/kr/wisestone/owl/service/impl/IssueVersionServiceImpl.java
@@ -49,7 +49,9 @@
    @Transactional
    public void addIssueVersion(Issue issue) {
        IssueVo issueVo = ConvertUtil.copyProperties(issue, IssueVo.class);
        this.issueService.setIssueDetail(issueVo, issue);    //  이슈 상세 정보를 셋팅한다.
        User user = this.webAppUtil.getLoginUserObject();
        this.issueService.setIssueDetail(issueVo, issue, user);    //  이슈 상세 정보를 셋팅한다.
        List<IssueVersion> issueVersions = this.issueVersionRepository.findByIssueId(issueVo.getId());
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-if="scope.data.modifyPermissionCheck" ng-click="event.removeDownIssue(data.id)">';
                                            makeTag += '<img class="cursor" src="/assets/images/delete-icon.png" ng-click="event.removeDownIssue(data.id)">';
                                            break;
                                        // 하위 이슈 우선 순위
src/main/webapp/scripts/app/issue/issueDetail.controller.js
@@ -477,14 +477,16 @@
                        .setHWidth("width-60-p bold")
                        .setHSort(false)
                        .setDRenderer("ISSUE_DOWN_MOVE"))
                    $scope.vm.downTableConfigs.push($tableProvider.config()
                        .setHName("issue.relationIssueDelete")
                        .setDType("renderer")
                        .setDAlign("text-center")
                        .setHWidth("width-20-p bold")
                        .setDRenderer("ISSUE_DOWN_DELETE")
                        .setHSort(false)
                        .setDAlign("text-center"))
                    if($scope.vm.viewer.modifyPermissionCheck){
                        $scope.vm.downTableConfigs.push($tableProvider.config()
                            .setHName("issue.relationIssueDelete")
                            .setDType("renderer")
                            .setDAlign("text-center")
                            .setHWidth("width-20-p bold")
                            .setDRenderer("ISSUE_DOWN_DELETE")
                            .setHSort(false)
                            .setDAlign("text-center"))
                    }
                    angular.forEach($scope.vm.downTableConfigs, function (Down_issueTableConfig) {
                        //  표시 대상인 컬럼만 화면에 그려준다.