diff --git a/src/backend/src/main/resources/db/migration/V107__grant_admin_kslee_ehcheon.sql b/src/backend/src/main/resources/db/migration/V107__grant_admin_kslee_ehcheon.sql new file mode 100644 index 0000000..cbb9593 --- /dev/null +++ b/src/backend/src/main/resources/db/migration/V107__grant_admin_kslee_ehcheon.sql @@ -0,0 +1,28 @@ +-- V107: 이근수(kslee)·천은희(ehcheon) 사용허가 + 시스템관리자(ADMIN) 권한 부여 +-- 소유자 지시(2026-07-24): "운영서버 이근수, 천은희 사용허가 및 admin권한 부여(모든기능 사용 할 수 있도록)" +-- 전제: 두 계정은 이미 가입 완료(비밀번호 기등록 — 소유자 확인). 본 마이그레이션은 자격증명을 +-- 생성/변경하지 않고 기존 계정에 권한만 부여한다(UPDATE only, 멱등). +-- 효과: role_code='ADMIN'(시스템관리 백오피스 포함 전 메뉴 게이트 통과, V7 sys_role 정합), +-- status='ACTIVE'·잠금 해제(사용허가), 스코프 메뉴 해소용 행사 멤버십(V51 패턴). + +UPDATE app_user +SET role_code = 'ADMIN', + status = 'ACTIVE', + failed_login_count = 0, + locked_until = NULL, + updated_at = now() +WHERE email IN ('kslee@kintex.co.kr', 'ehcheon@kintex.co.kr') + OR display_name IN ('이근수', '천은희'); + +-- 스코프 메뉴(EVENT_SCOPED_PATH)는 event_member 로 대상 행사를 해소한다(V51 배경 동일). +-- 데모 해소행사(e-2026-live)·차기 행사(e-2026-smf)에 ORGANIZER 멤버로 등록(멱등·계정/행사 존재 시에만). +INSERT INTO event_member (id, event_id, user_id, role_code, booth_id, company_id) +SELECT 'em-adm-' || substr(md5(u.id || '-' || v.event_id), 1, 12), v.event_id, u.id, 'ORGANIZER', NULL, NULL +FROM app_user u +CROSS JOIN (VALUES ('e-2026-live'), ('e-2026-smf')) AS v(event_id) +WHERE (u.email IN ('kslee@kintex.co.kr', 'ehcheon@kintex.co.kr') OR u.display_name IN ('이근수', '천은희')) + AND EXISTS (SELECT 1 FROM event e WHERE e.id = v.event_id) + AND NOT EXISTS ( + SELECT 1 FROM event_member em + WHERE em.event_id = v.event_id AND em.user_id = u.id + );