From 242dca83b5a5c6017e5ccf0c34b21a39470ac6dd Mon Sep 17 00:00:00 2001 From: Hyungi Ahn Date: Tue, 31 Mar 2026 15:27:38 +0900 Subject: [PATCH] =?UTF-8?q?fix(tbm):=20"=EB=82=B4=20TBM=20=EC=95=84?= =?UTF-8?q?=EB=8B=98"=20=EA=B7=BC=EB=B3=B8=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?=E2=80=94=20currentUser=20=EB=A1=9C=EB=93=9C=20+=20id=20?= =?UTF-8?q?=ED=98=B8=ED=99=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - tbm-mobile.js: localStorage('sso_user') → getCurrentUser() 전환 - isMySession: currentUser.id도 비교 (tkfb-core가 id만 설정) - tbm-create.js: leaderId fallback (allWorkers 미로드 대응 + String 비교) - 마이그레이션: NULL leader_user_id → created_by로 복구 Co-Authored-By: Claude Opus 4.6 (1M context) --- .../db/migrations/20260331_fix_deduct_days_precision.sql | 2 ++ system1-factory/web/js/tbm-create.js | 6 ++++-- system1-factory/web/js/tbm-mobile.js | 4 ++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/system1-factory/api/db/migrations/20260331_fix_deduct_days_precision.sql b/system1-factory/api/db/migrations/20260331_fix_deduct_days_precision.sql index 5552b06..f0933fd 100644 --- a/system1-factory/api/db/migrations/20260331_fix_deduct_days_precision.sql +++ b/system1-factory/api/db/migrations/20260331_fix_deduct_days_precision.sql @@ -30,3 +30,5 @@ INSERT IGNORE INTO company_holidays (holiday_date, holiday_name, holiday_type, c INSERT IGNORE INTO company_holidays (holiday_date, holiday_name, holiday_type, created_by) VALUES ('2026-10-03', '개천절', 'PAID', 1); INSERT IGNORE INTO company_holidays (holiday_date, holiday_name, holiday_type, created_by) VALUES ('2026-10-09', '한글날', 'PAID', 1); INSERT IGNORE INTO company_holidays (holiday_date, holiday_name, holiday_type, created_by) VALUES ('2026-12-25', '크리스마스', 'PAID', 1); +-- NULL leader_user_id 복구 (created_by로 채움) +UPDATE tbm_sessions SET leader_user_id = created_by WHERE leader_user_id IS NULL; diff --git a/system1-factory/web/js/tbm-create.js b/system1-factory/web/js/tbm-create.js index 490d87f..d535800 100644 --- a/system1-factory/web/js/tbm-create.js +++ b/system1-factory/web/js/tbm-create.js @@ -41,12 +41,14 @@ W.sessionDate = window.TbmUtils.getTodayKST(); var user = window.TbmState.getUser(); if (user) { - if (user.user_id) { - var worker = window.TbmState.allWorkers.find(function(w) { return w.user_id === user.user_id; }); + var uid = user.user_id || user.id; + if (uid) { + var worker = window.TbmState.allWorkers.find(function(w) { return String(w.user_id) === String(uid); }); if (worker) { W.leaderId = worker.user_id; W.leaderName = worker.worker_name; } else { + W.leaderId = uid; W.leaderName = user.name || ''; } } else { diff --git a/system1-factory/web/js/tbm-mobile.js b/system1-factory/web/js/tbm-mobile.js index 64ae1bf..0c364bf 100644 --- a/system1-factory/web/js/tbm-mobile.js +++ b/system1-factory/web/js/tbm-mobile.js @@ -64,7 +64,7 @@ return; } - currentUser = JSON.parse(localStorage.getItem('sso_user') || '{}'); + currentUser = (typeof getCurrentUser === 'function' ? getCurrentUser() : window.currentUser) || {}; await loadData(); }); @@ -125,7 +125,7 @@ function isMySession(s) { var role = (currentUser.role || '').toLowerCase(); if (role === 'admin' || role === 'system' || role === 'support_team') return true; - var userId = currentUser.user_id; + var userId = currentUser.user_id || currentUser.id; var userName = currentUser.name; return (userId && (String(s.created_by) === String(userId) || String(s.leader_user_id) === String(userId))) ||