feat(nav): 임직원(OPS) 로그인 시 하단 관리자·토큰 모달, README 반영

- 좌측 하단 구분선+관리자: OPS 세션에서도 토큰으로 /admin 인증 가능
- OPS+관리자 시 사용자 현황관리·로그오프·로그아웃 정리
- nav-item-admin-entry 스타일(슬레이트 톤)
- README: 관리자 UI·학습 등록·성공 사례 버튼 동작, partials 구조 보강

Made-with: Cursor
This commit is contained in:
2026-04-08 17:31:26 +09:00
parent fa338dfadf
commit 747caa9c99
3 changed files with 35 additions and 5 deletions

View File

@@ -30,10 +30,19 @@
<a href="/ai-cases" class="nav-item <%= activeMenu === 'ai-cases' ? 'active' : '' %>">성공사례</a>
<div class="nav-footer">
<% var _opsLoggedIn = typeof opsUserEmail !== 'undefined' && opsUserEmail; %>
<% var _admin = typeof adminMode !== 'undefined' && adminMode; %>
<% if (_opsLoggedIn) { %>
<% if (_admin) { %>
<a href="/admin/users" class="nav-item <%= activeMenu === 'admin-users' ? 'active' : '' %>">사용자 현황관리</a>
<div class="nav-separator"></div>
<a href="/admin/logout" class="nav-item nav-item-ghost" title="관리자 세션 종료">로그오프</a>
<a href="/logout" class="nav-item nav-item-ops-logout" title="이메일 인증 세션 종료">로그아웃</a>
<% } else { %>
<% if (typeof adminMode !== 'undefined' && adminMode) { %>
<% } else { %>
<div class="nav-separator nav-separator-footer-admin"></div>
<button type="button" class="nav-item nav-item-admin-entry" onclick="openAdminTokenModal()" title="관리자 토큰으로 인증">관리자</button>
<a href="/logout" class="nav-item nav-item-ops-logout" title="이메일 인증 세션 종료">로그아웃</a>
<% } %>
<% } else if (_admin) { %>
<a href="/admin/users" class="nav-item <%= activeMenu === 'admin-users' ? 'active' : '' %>">사용자 현황관리</a>
<div class="nav-separator"></div>
<a href="/admin/logout" class="nav-item nav-item-ghost" title="관리자 세션 종료">로그오프</a>
@@ -41,7 +50,6 @@
<div class="nav-separator"></div>
<button type="button" class="nav-item nav-item-ghost" onclick="openAdminTokenModal()" title="관리자 모드">관리자</button>
<% } %>
<% } %>
</div>
</aside>
<script>