All files / src/views ForbiddenView.vue

33.33% Statements 2/6
0% Branches 0/20
0% Functions 0/2
40% Lines 2/5

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>