summaryrefslogtreecommitdiff
path: root/layouts/recordings
diff options
context:
space:
mode:
Diffstat (limited to 'layouts/recordings')
-rw-r--r--layouts/recordings/recordings-plain.html33
1 files changed, 26 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 => {