From 2b232d0b51d1758dd0d3db4aa6d4627940993812 Mon Sep 17 00:00:00 2001 From: zenn Date: Thu, 13 Aug 2026 16:11:19 +0900 Subject: [PATCH] =?UTF-8?q?=EC=86=8C=EC=9C=A0=EC=9E=90=20=EA=B4=80?= =?UTF-8?q?=EB=A6=AC=EC=9E=90=20=EC=A7=84=EC=9E=85=20=EA=B6=8C=ED=95=9C=20?= =?UTF-8?q?=EB=B3=B4=EA=B0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/site/SiteHeader.vue | 11 ++++++++++- docker-compose.yml | 1 + docs/deploy.md | 4 +++- docs/history.md | 4 ++++ docs/map.md | 3 ++- docs/spec.md | 4 ++-- docs/update.md | 6 ++++++ lib/member-role.js | 15 +++++++++++++++ package-lock.json | 4 ++-- package.json | 2 +- server/api/auth/login.post.js | 14 +++++++++++--- server/api/auth/me.get.js | 4 ++-- server/repositories/member-repository.js | 10 +++------- tests/member-role.test.js | 11 +++++++++++ 14 files changed, 73 insertions(+), 20 deletions(-) create mode 100644 lib/member-role.js create mode 100644 tests/member-role.test.js diff --git a/components/site/SiteHeader.vue b/components/site/SiteHeader.vue index dd1a857..f12dc1e 100644 --- a/components/site/SiteHeader.vue +++ b/components/site/SiteHeader.vue @@ -8,6 +8,15 @@ const member = ref(null) const { data: siteSettings } = await usePublicSiteSettings() +/** + * 현재 회원이 공개 헤더에서 관리자 화면으로 이동할 수 있는지 확인한다. + * @returns {boolean} 관리자 화면 이동 가능 여부 + */ +const canOpenSiteAdmin = computed(() => { + const role = String(member.value?.role || '').toLowerCase() + return Boolean(member.value?.isAdmin) || role === 'owner' || role === 'admin' +}) + /** * 사용자 메뉴를 닫는다. * @returns {void} @@ -267,7 +276,7 @@ onBeforeUnmount(() => {