feat(db): V107 grant ADMIN + event membership to kslee/ehcheon (owner-approved)

Existing registered accounts only - UPDATE role/status/unlock, no credential
changes. ORGANIZER membership on e-2026-live/e-2026-smf (V51 pattern) so
event-scoped menus (floorplan studio etc.) resolve instead of /home fallback.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
ythong 2026-07-24 13:14:59 +09:00
parent 9b56196d85
commit e1f0398ba7

View File

@ -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
);