fix: 캘린더 모달 중복 카드 문제 및 삭제 권한 개선
- monthly_worker_status 조회 시 GROUP BY로 중복 데이터 합산 - 작업보고서 삭제 권한을 그룹장 이상으로 제한 (admin, system, group_leader) - 중복 데이터 정리를 위한 마이그레이션 SQL 추가 (009_fix_duplicate_monthly_status.sql) - synology_deployment 버전에도 동일 수정 적용
This commit is contained in:
@@ -407,7 +407,6 @@ function displayWorkStatus() {
|
||||
<span class="legend-item legend-vacation">휴가</span>
|
||||
<span class="legend-item legend-partial">부분입력</span>
|
||||
<span class="legend-item legend-incomplete">미입력</span>
|
||||
<span class="legend-item legend-error">오류</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="worker-status-rows">
|
||||
@@ -621,11 +620,43 @@ function updateViewButtons(activeView) {
|
||||
// ========== 관리자 권한 확인 ========== //
|
||||
function checkAdminAccess() {
|
||||
const adminElements = document.querySelectorAll('.admin-only');
|
||||
const isAdmin = currentUser && ['admin', 'system'].includes(currentUser.access_level);
|
||||
const isFullAdmin = currentUser && ['admin', 'system'].includes(currentUser.access_level);
|
||||
const isGroupLeader = currentUser && currentUser.access_level === 'group_leader';
|
||||
|
||||
console.log(`🔐 권한 확인: 사용자=${currentUser?.username}, 역할=${currentUser.access_level}, 전체관리자=${isFullAdmin}, 그룹리더=${isGroupLeader}`);
|
||||
|
||||
adminElements.forEach(element => {
|
||||
if (isAdmin) {
|
||||
element.classList.add('visible');
|
||||
const href = element.getAttribute('href');
|
||||
|
||||
// 작업 분석: 전체 관리자만 접근 가능
|
||||
if (href && href.includes('work-analysis.html')) {
|
||||
if (isFullAdmin) {
|
||||
element.style.display = '';
|
||||
element.classList.add('visible');
|
||||
} else {
|
||||
element.style.display = 'none';
|
||||
element.classList.remove('visible');
|
||||
}
|
||||
}
|
||||
// 작업 관리: 전체 관리자 + 그룹 리더 접근 가능
|
||||
else if (href && href.includes('work-management.html')) {
|
||||
if (isFullAdmin || isGroupLeader) {
|
||||
element.style.display = '';
|
||||
element.classList.add('visible');
|
||||
} else {
|
||||
element.style.display = 'none';
|
||||
element.classList.remove('visible');
|
||||
}
|
||||
}
|
||||
// 기타 관리자 전용 메뉴: 전체 관리자만 접근 가능
|
||||
else {
|
||||
if (isFullAdmin) {
|
||||
element.style.display = '';
|
||||
element.classList.add('visible');
|
||||
} else {
|
||||
element.style.display = 'none';
|
||||
element.classList.remove('visible');
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user