Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | 1x 1x | <script setup lang="ts">
import { RouterLink } from "vue-router";
import { useStaffSessionStore } from "../stores/session";
const session = useStaffSessionStore();
</script>
<template>
<section class="admin-auth-page">
<div class="admin-auth-panel">
<p class="eyebrow">权限不足</p>
<h1>{{ session.authenticated ? "当前角色不能进入这个工作区。" : "这个账户不能进入管理端。" }}</h1>
<p v-if="session.accessDenied">
已验证 {{ session.accessDenied.email }},角色为
{{ session.accessDenied.roles.join(" / ") || "无" }}。
</p>
<p>
管理权限由 Identity 服务端角色和各服务安全规则共同决定,前端隐藏导航不能代替后端授权。
</p>
<p v-if="session.accessDenied && !session.accessDenied.remoteLogoutConfirmed">
服务端退出确认未返回,但本设备上的管理端令牌已经清除。
</p>
<RouterLink v-if="session.authenticated" class="admin-primary-link" to="/">
返回有权限的工作区 →
</RouterLink>
<RouterLink v-else class="admin-primary-link" to="/login">使用员工账户登录 →</RouterLink>
</div>
</section>
</template>
|