feat: add account menu and redirect after Q&A logout
Deploy EG-BIM QA Gateway / deploy (push) Successful in 54s

Add the top-right account icon with the signed-in name and logout link. Expire the Q&A session before redirecting to the configured inquiry homepage in both environments. Preserve login return URL checks and ignore request-controlled logout destinations.

Validation: 106 tests, syntax checks, and mocked Chromium desktop/mobile regressions pass, including session-cookie removal and the destination navigation request with external networking blocked.
This commit is contained in:
root committed 2026-11-02 14:18:23 +09:00
1 parent 2b37bed2b8
commit beaa2fc423
13 files changed
+135 -13

No files matched your search

+12
View File
@@ -501,6 +501,18 @@
console.error('[QA] SSO session load failed:', error);
return getAuthUser();
}).then(function (user) { renderAuth(user); return user; });
const accountMenu = qs('#accountMenu');
if (accountMenu) {
document.addEventListener('click', function (event) {
if (!accountMenu.contains(event.target)) accountMenu.open = false;
});
document.addEventListener('keydown', function (event) {
if (event.key === 'Escape' && accountMenu.open) {
accountMenu.open = false;
qs('#accountButton').focus();
}
});
}
const menuButton = qs('.menu-button');
const nav = qs('.global-nav');
if (menuButton && nav) {
+11 -2
View File
@@ -1,7 +1,16 @@
<!doctype html>
<html lang="ko"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="description" content="EG-BIM 소프트웨어 문의"><title>S/W 문의 | 바론컨설턴트</title><link rel="stylesheet" href="../assets/styles.css?v=20261102-ui-1"><link rel="stylesheet" href="../assets/inquiry/inquiry.css?v=20261102-ui-2"></head><body>
<html lang="ko"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="description" content="EG-BIM 소프트웨어 문의"><title>S/W 문의 | 바론컨설턴트</title><link rel="stylesheet" href="../assets/styles.css?v=20261102-ui-1"><link rel="stylesheet" href="../assets/inquiry/inquiry.css?v=20261102-ui-3"></head><body>
<main class="inquiry-page">
<section class="inquiry-hero" aria-labelledby="inquiry-title">
<details class="inquiry-account" id="accountMenu">
<summary aria-label="내 계정" id="accountButton" aria-controls="accountPanel">
<svg viewBox="0 0 24 24" aria-hidden="true"><circle cx="12" cy="8" r="4"/><path d="M4 21v-2a8 8 0 0 1 16 0v2"/></svg>
</summary>
<div class="inquiry-account__panel" id="accountPanel">
<p data-auth-name>로그인 확인 중</p>
<a href="/auth/logout" id="logoutLink"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M10 4H4v16h6M14 8l4 4-4 4m-5-4h12"/></svg>로그아웃</a>
</div>
</details>
<div class="inquiry-hero__copy">
<h1 id="inquiry-title">S/W 문의</h1>
<p>소프트웨어 관련 문의하기</p>
@@ -204,5 +213,5 @@
</div>
</section>
</template>
<div id="toast" class="toast" role="status" aria-live="polite"></div><script src="config.js?v=20260921-3"></script><script src="app.js?v=20261102-ui-1"></script>
<div id="toast" class="toast" role="status" aria-live="polite"></div><script src="config.js?v=20260921-3"></script><script src="app.js?v=20261102-ui-3"></script>
</body></html>