summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2025-11-08 18:20:51 +0900
committerTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2025-11-08 18:20:51 +0900
commit1971a230ac3c9da5121a0d5f8b0cd89626821dee (patch)
treedc3056d7b024753d30fc0c101879274e14dbe2cf
parent4624de8087752e580b34c8c33ab5d1bdf20b378a (diff)
modified recordings/recordings-plain.html, created api/
-rw-r--r--layouts/recordings/recordings-plain.html33
-rw-r--r--static/api/whoami.php11
2 files changed, 37 insertions, 7 deletions
diff --git a/layouts/recordings/recordings-plain.html b/layouts/recordings/recordings-plain.html
index ad313b1..62d8b24 100644
--- a/layouts/recordings/recordings-plain.html
+++ b/layouts/recordings/recordings-plain.html
@@ -307,14 +307,33 @@
<script>
document.addEventListener("DOMContentLoaded", () => {
// 사용자별 제한된 폴더 필터링 (si 사용자만 leak, hidden 볼 수 있음)
- // nginx에서 X-Auth-User 헤더로 사용자명 전달 필요
- const checkUserAccess = () => {
- // 헤더에서 사용자 정보 읽기 (서버에서 헤더를 meta 태그로 전달하거나 직접 확인)
- // 또는 쿠키/로컬스토리지에서 확인
+ const checkUserAccess = async () => {
const restrictedFolders = document.querySelectorAll('li.folder-section[data-restricted="true"]');
- const isSiUser = document.cookie.includes('user=si') ||
- localStorage.getItem('authUser') === 'si' ||
- document.querySelector('meta[name="auth-user"]')?.content === 'si';
+
+ // 방법 1: 쿠키에서 확인
+ const cookies = document.cookie.split(';').reduce((acc, cookie) => {
+ const [key, value] = cookie.trim().split('=');
+ acc[key] = value;
+ return acc;
+ }, {});
+
+ // 방법 2: API로 사용자 정보 확인 (nginx에서 헤더 읽기)
+ let isSiUser = cookies.user === 'si' || cookies.authUser === 'si';
+
+ if (!isSiUser) {
+ try {
+ // nginx에서 사용자 정보를 반환하는 엔드포인트 호출
+ const response = await fetch('/api/whoami', {
+ credentials: 'include'
+ });
+ if (response.ok) {
+ const data = await response.json();
+ isSiUser = data.user === 'si';
+ }
+ } catch (e) {
+ // API 실패 시 쿠키만 확인
+ }
+ }
if (!isSiUser) {
restrictedFolders.forEach(folder => {
diff --git a/static/api/whoami.php b/static/api/whoami.php
new file mode 100644
index 0000000..f32cd2c
--- /dev/null
+++ b/static/api/whoami.php
@@ -0,0 +1,11 @@
+<?php
+// Return current authenticated user from nginx
+header('Content-Type: application/json');
+header('Access-Control-Allow-Origin: *');
+header('Access-Control-Allow-Credentials: true');
+
+// nginx에서 전달된 사용자 정보 읽기 (X-Auth-User 헤더 또는 REMOTE_USER)
+$user = $_SERVER['HTTP_X_AUTH_USER'] ?? $_SERVER['REMOTE_USER'] ?? '';
+
+echo json_encode(['user' => $user]);
+?>