feat: TBM 빠른 작업 배너 추가 (페이지 권한 기반)
- 대시보드에 TBM 관리 빠른 작업 카드 추가 - 페이지 접근 권한 기반으로 표시/숨김 처리 - 오렌지 그라데이션 배경으로 시각적 구분 - checkTbmPageAccess() 함수로 사용자 권한 확인 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -97,6 +97,9 @@ async function initializeDashboard() {
|
|||||||
// 관리자 권한 확인
|
// 관리자 권한 확인
|
||||||
checkAdminAccess();
|
checkAdminAccess();
|
||||||
|
|
||||||
|
// TBM 페이지 접근 권한 확인
|
||||||
|
checkTbmPageAccess();
|
||||||
|
|
||||||
console.log('✅ 모던 대시보드 초기화 완료');
|
console.log('✅ 모던 대시보드 초기화 완료');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -736,6 +739,40 @@ function checkAdminAccess() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ========== TBM 페이지 접근 권한 확인 ========== //
|
||||||
|
async function checkTbmPageAccess() {
|
||||||
|
try {
|
||||||
|
if (!currentUser || !currentUser.user_id) {
|
||||||
|
console.log('⚠️ TBM 페이지 권한 확인: 사용자 정보 없음');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log('🛠️ TBM 페이지 권한 확인 중...');
|
||||||
|
|
||||||
|
// 사용자의 페이지 접근 권한 조회
|
||||||
|
const response = await window.apiCall(`/users/${currentUser.user_id}/page-access`);
|
||||||
|
|
||||||
|
if (response && response.success) {
|
||||||
|
const pageAccess = response.data?.pageAccess || [];
|
||||||
|
|
||||||
|
// 'tbm' 페이지 접근 권한 확인
|
||||||
|
const tbmPage = pageAccess.find(p => p.page_key === 'tbm');
|
||||||
|
const tbmQuickAction = document.getElementById('tbmQuickAction');
|
||||||
|
|
||||||
|
if (tbmPage && tbmPage.can_access && tbmQuickAction) {
|
||||||
|
tbmQuickAction.style.display = 'block';
|
||||||
|
console.log('✅ TBM 페이지 접근 권한 있음 - 빠른 작업 버튼 표시');
|
||||||
|
} else {
|
||||||
|
console.log('❌ TBM 페이지 접근 권한 없음 - 빠른 작업 버튼 숨김');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.log('⚠️ TBM 페이지 권한 확인 실패');
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error('❌ TBM 페이지 권한 확인 오류:', error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// ========== 상태 표시 ========== //
|
// ========== 상태 표시 ========== //
|
||||||
function showLoadingState() {
|
function showLoadingState() {
|
||||||
const loadingHTML = `
|
const loadingHTML = `
|
||||||
|
|||||||
@@ -37,6 +37,15 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<div class="quick-actions-grid-full">
|
<div class="quick-actions-grid-full">
|
||||||
|
<!-- TBM 관리 (페이지 권한 체크) -->
|
||||||
|
<a href="/pages/work/tbm.html" class="quick-action-card" id="tbmQuickAction" style="display: none; background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%); color: white;">
|
||||||
|
<div class="action-content">
|
||||||
|
<h3 style="color: white;">🛠️ TBM 관리</h3>
|
||||||
|
<p style="color: rgba(255, 255, 255, 0.9);">아침 안전 회의 및 팀 구성을 관리합니다</p>
|
||||||
|
</div>
|
||||||
|
<div class="action-arrow" style="color: white;">→</div>
|
||||||
|
</a>
|
||||||
|
|
||||||
<a href="/pages/work/report-create.html" class="quick-action-card">
|
<a href="/pages/work/report-create.html" class="quick-action-card">
|
||||||
<div class="action-content">
|
<div class="action-content">
|
||||||
<h3>작업 보고서 작성</h3>
|
<h3>작업 보고서 작성</h3>
|
||||||
|
|||||||
Reference in New Issue
Block a user