feat: update frontend for four-tier role system
Add Student Admin and Teacher Admin roles to constants, types, store, permissions, routes, and admin UI. Teacher Admin sees contests and problemsets in sidebar; Student Admin sees only problems. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -182,48 +182,48 @@ export const admins: RouteRecordRaw = {
|
||||
path: "contest/list",
|
||||
name: "admin contest list",
|
||||
component: () => import("admin/contest/list.vue"),
|
||||
meta: { requiresSuperAdmin: true },
|
||||
meta: { requiresTeacherAdmin: true },
|
||||
},
|
||||
{
|
||||
path: "contest/create",
|
||||
name: "admin contest create",
|
||||
component: () => import("admin/contest/detail.vue"),
|
||||
meta: { requiresSuperAdmin: true },
|
||||
meta: { requiresTeacherAdmin: true },
|
||||
},
|
||||
{
|
||||
path: "contest/edit/:contestID",
|
||||
name: "admin contest edit",
|
||||
component: () => import("admin/contest/detail.vue"),
|
||||
props: true,
|
||||
meta: { requiresSuperAdmin: true },
|
||||
meta: { requiresTeacherAdmin: true },
|
||||
},
|
||||
{
|
||||
path: "contest/:contestID/problem/list",
|
||||
name: "admin contest problem list",
|
||||
component: () => import("admin/problem/list.vue"),
|
||||
props: true,
|
||||
meta: { requiresSuperAdmin: true },
|
||||
meta: { requiresTeacherAdmin: true },
|
||||
},
|
||||
{
|
||||
path: "contest/:contestID/problem/create",
|
||||
name: "admin contest problem create",
|
||||
component: () => import("admin/problem/detail.vue"),
|
||||
props: true,
|
||||
meta: { requiresSuperAdmin: true },
|
||||
meta: { requiresTeacherAdmin: true },
|
||||
},
|
||||
{
|
||||
path: "contest/:contestID/problem/edit/:problemID",
|
||||
name: "admin contest problem edit",
|
||||
component: () => import("admin/problem/detail.vue"),
|
||||
props: true,
|
||||
meta: { requiresSuperAdmin: true },
|
||||
meta: { requiresTeacherAdmin: true },
|
||||
},
|
||||
{
|
||||
path: "contest/:contestID/helper",
|
||||
name: "admin contest helper",
|
||||
component: () => import("admin/contest/helper.vue"),
|
||||
props: true,
|
||||
meta: { requiresSuperAdmin: true },
|
||||
meta: { requiresTeacherAdmin: true },
|
||||
},
|
||||
// 只有super_admin可以访问的路由
|
||||
{
|
||||
@@ -293,27 +293,27 @@ export const admins: RouteRecordRaw = {
|
||||
path: "problemset/list",
|
||||
name: "admin problemset list",
|
||||
component: () => import("admin/problemset/list.vue"),
|
||||
meta: { requiresSuperAdmin: true },
|
||||
meta: { requiresTeacherAdmin: true },
|
||||
},
|
||||
{
|
||||
path: "problemset/create",
|
||||
name: "admin problemset create",
|
||||
component: () => import("admin/problemset/edit.vue"),
|
||||
meta: { requiresSuperAdmin: true },
|
||||
meta: { requiresTeacherAdmin: true },
|
||||
},
|
||||
{
|
||||
path: "problemset/edit/:problemSetId",
|
||||
name: "admin problemset edit",
|
||||
component: () => import("admin/problemset/edit.vue"),
|
||||
props: true,
|
||||
meta: { requiresSuperAdmin: true },
|
||||
meta: { requiresTeacherAdmin: true },
|
||||
},
|
||||
{
|
||||
path: "problemset/:problemSetId",
|
||||
name: "admin problemset detail",
|
||||
component: () => import("admin/problemset/detail.vue"),
|
||||
props: true,
|
||||
meta: { requiresSuperAdmin: true },
|
||||
meta: { requiresTeacherAdmin: true },
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user