본문 바로가기

일경험

[국민취업지원제도 일경험프로그램 49일차] 결재시스템 중간점검⑨

반응형

49일 차 특이사항

1. 사원1이 결재글을 올린다. 과장 1이 결제한다. 

- 그런데 과장 2가 이 과정을 볼 수 있다. 이게 문제다. 

- 사원의 계급이 과장인 경우 사원, 대리의 임시저장 글을 제외하고 모두 볼 수 있다. 

- 자신이 결제승인한 글만 조회되면 좋겠는데... 

- 접근권한이 없다는 유효성 검사를 추가해보자. 

- 위 시도도 실패 

 

2. 임시저장, 결재, 반려 버튼 조건에도 문제가 있다. 

- 결재중인데 사원이 반려와 결재를 또 누를 수 있다. 고쳐야 됨.

 

JSTL에 있는 데이터를 javascript에서 사용하기

1. apperName을 가지고 오기 위해서 JSON 객체를 이용했다. 아래 코드의 문제는 클릭 이벤트 발생 후 apperName 배열에 담긴 요소가 초기화되지 않아서 첫 번째 클릭에서만 유효성검사가 실행되고 다음부터는 실행되지 않는다. 어떻게 접근해야 할까? 

function fncGoDetail(seq) {
    // 배열 선언 및 초기화
    var apperName = [];
	
    // 클릭 이벤트마다 배열을 초기화
    apperName = [];
    
    <c:forEach items="${apprList}" var="aa">
        var json = new Object();
        json.apperName = "${aa.apperName}";
        apperName.push(json.apperName);
    </c:forEach>

    // 배열의 첫 번째 요소를 가져온다
    var firstApperName = apperName[0];
	
    if (Array.isArray(firstApperName)) {
        // 만약 firstApperName이 배열 형태라면, 첫 번째 요소를 가져온다
        firstApperName = apperName[0];
    }
	
    var memRank = '${memInfo.memRank}'.trim();
    var memName = '${memInfo.memName}'.trim();

    console.log("apperName: " + firstApperName);
    console.log("memRank: " + memRank);
    console.log("memName: " + memName);
    
    if (memRank === 'BOSS') {
        if (firstApperName !== memName) {
            alert("권한이 없습니다.");
        } else {
            location.href = 'detail?seq=' + seq;
        }
    } else {
        location.href = 'detail?seq=' + seq;
    }

}

- 아무리해도 작동이 되지 않음. 내 능력밖인 것 같음. 

 

script로 접근이 너무 어려움

팀장님께 물어보니 mapper에서 해결해 보라고 하셨다. 다시 해보자. 

 

해결해야 되는 문제

1. 날짜검색 동기처리 

2. 결재상태 비동기처리

3. 검색조건, 검색어 임시저장

4. 결재중인데 반려, 결재, 임시저장 버튼이 보이면 안 된다. 

5. 부장이 결재하면 글이 사라진다. 글이 보이도록 다시 설정. 

6. 반려후 결재자가 삭제되어야 한다. 

7. 힌트 : history table을 기준으로 마지막 결재자가 로그인 id와 같으면 글이 조회된다. 

 

 

 

 

 

반응형