From 0e235db32d823e7c2ed975c1010a4617cc962db4 Mon Sep 17 00:00:00 2001 From: dsyoon Date: Wed, 8 Apr 2026 17:37:05 +0900 Subject: [PATCH] =?UTF-8?q?refactor(admin):=20=ED=95=99=EC=8A=B5=EC=84=BC?= =?UTF-8?q?=ED=84=B0=20=EA=B4=80=EB=A6=AC=EC=97=90=EC=84=9C=20=ED=99=9C?= =?UTF-8?q?=EC=84=B1/=EB=B9=84=ED=99=9C=EC=84=B1=20=EC=A0=9C=EA=B1=B0,=20?= =?UTF-8?q?=EB=84=A4=EB=B9=84=EC=97=90=20=EA=B4=80=EB=A6=AC=EC=9E=90=C2=B7?= =?UTF-8?q?=EA=B4=80=EB=A6=AC=EC=9E=90=20off?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - learning-admin: 관리자 모드 토글·인라인 토큰 폼 삭제, 안내 문구는 좌측 메뉴 관리자로 통일 - nav: 관리자 세션 시 로그오프 대신 관리자(모달)·관리자 off(/admin/logout→/learning) - styles: 미사용 관리자 토글 스타일 정리 - README: 관리자 off 동작 반영 Made-with: Cursor --- README.md | 2 +- public/styles.css | 74 ---------------------------------------- views/learning-admin.ejs | 21 ++---------- views/partials/nav.ejs | 6 ++-- 4 files changed, 7 insertions(+), 96 deletions(-) diff --git a/README.md b/README.md index c189ef4..b7c7bce 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,7 @@ - 초기 샘플 데이터 시드 - `resources/lecture`에 있는 `.pptx`를 최초 실행 시 자동 등록 - **관리자 인증·바로가기(UI)** - - **좌측 메뉴 하단 `관리자`**: 운영(OPS)에서 **이메일 인증**으로 로그인한 임직원에게도 표시됩니다. 클릭하면 모달에서 `ADMIN_TOKEN`을 입력해 검증한 뒤 `/admin`으로 이동합니다(`POST /api/admin/validate-token`). 이메일 미로그인 환경에서도 동일한 하단 항목으로 관리자 인증을 할 수 있습니다. 관리자 세션이 잡히면 같은 영역에 **사용자 현황관리**·**로그오프**(관리자 세션 종료) 등이 이어서 보입니다. + - **좌측 메뉴 하단 `관리자` / `관리자 off`**: 운영(OPS)에서 **이메일 인증**으로 로그인한 임직원에게도 표시됩니다. **`관리자`**는 모달에서 `ADMIN_TOKEN`을 입력해 검증한 뒤 `/admin`으로 이동합니다(`POST /api/admin/validate-token`). **`관리자 off`**는 관리자 쿠키를 지우고 학습센터 목록(`/learning`)으로 돌아갑니다(`GET /admin/logout`). 이메일 미로그인 환경에서도 동일합니다. 관리자 세션이 잡히면 같은 영역에 **사용자 현황관리** 등이 함께 보입니다. - **학습센터** (`/learning`): 관리자 쿠키가 있을 때 상단 오른쪽 **학습 등록**으로 통합 관리 화면(`/admin`)에 들어갈 수 있습니다. 이메일(OPS) 로그인과 동시에 있어도 버튼이 숨겨지지 않습니다. - **AI 성공 사례** (`/ai-cases`): 관리자일 때 상단 **사례 등록·관리**로 편집 화면(`/ai-cases/write`)에 진입합니다(동일하게 OPS 로그인 중에도 표시). diff --git a/public/styles.css b/public/styles.css index 73d207d..3e32ec5 100644 --- a/public/styles.css +++ b/public/styles.css @@ -919,11 +919,6 @@ button.ai-case-inline-link:hover { } .admin-mode-header { - display: flex; - flex-wrap: wrap; - align-items: center; - justify-content: space-between; - gap: 12px; margin-bottom: 12px; } @@ -931,75 +926,6 @@ button.ai-case-inline-link:hover { margin: 0; } -.admin-mode-toggle { - display: flex; - align-items: center; - gap: 12px; - flex-wrap: wrap; -} - -.admin-status { - font-size: 13px; - font-weight: 600; - padding: 4px 10px; - border-radius: 999px; -} - -.admin-status.active { - background: #dcfce7; - color: #166534; -} - -.admin-status.inactive { - background: #fef3c7; - color: #92400e; -} - -.btn-admin-off { - display: inline-block; - padding: 6px 14px; - font-size: 13px; - color: #6b7280; - background: #f3f4f6; - border: 1px solid #e5e7eb; - border-radius: 8px; - text-decoration: none; -} - -.btn-admin-off:hover { - background: #e5e7eb; - color: #374151; -} - -.admin-activate-inline { - display: inline-flex; - align-items: center; - gap: 8px; - flex-wrap: wrap; -} - -.admin-activate-inline input[type="password"] { - padding: 6px 10px; - border: 1px solid #d1d5db; - border-radius: 8px; - font-size: 14px; - min-width: 140px; -} - -.admin-activate-inline button { - padding: 6px 14px; - font-size: 13px; - background: #f59e0b; - color: #fff; - border: none; - border-radius: 8px; - cursor: pointer; -} - -.admin-activate-inline button:hover { - background: #d97706; -} - .admin-inline { display: flex; gap: 8px; diff --git a/views/learning-admin.ejs b/views/learning-admin.ejs index 462519c..8093848 100644 --- a/views/learning-admin.ejs +++ b/views/learning-admin.ejs @@ -37,23 +37,6 @@

관리자 모드

-
- <% if (adminMode) { %> - 활성 - 비활성화 - <% } else { %> - 비활성 -
- - - - - - - -
- <% } %> -
<% if (retryQueued > 0) { %>

실패 건 재시도 <%= retryQueued %>건이 큐에 등록되었습니다.

@@ -74,7 +57,7 @@ <% if (adminRequested) { %>

입력한 토큰이 올바르지 않습니다. 다시 확인해주세요.

<% } %> -

삭제·썸네일 관리는 관리자 토큰을 입력한 뒤 활성화를 눌러주세요.

+

삭제·썸네일 관리는 좌측 메뉴 하단 관리자에서 토큰을 입력해 주세요.

<% } %>
총 <%= pagination.totalCount %>건
<% if (!adminMode && lectures.length > 0) { %> -

수정·삭제를 하려면 위에서 관리자 토큰을 입력하고 관리자 활성화를 눌러주세요.

+

수정·삭제는 좌측 메뉴 하단 관리자에서 토큰을 입력한 뒤 이용할 수 있습니다.

<% } %>
diff --git a/views/partials/nav.ejs b/views/partials/nav.ejs index 176eb21..8506d72 100644 --- a/views/partials/nav.ejs +++ b/views/partials/nav.ejs @@ -35,7 +35,8 @@ <% if (_admin) { %> 사용자 현황관리 - 로그오프 + + 관리자 off 로그아웃 <% } else { %> @@ -45,7 +46,8 @@ <% } else if (_admin) { %> 사용자 현황관리 - 로그오프 + + 관리자 off <% } else { %>