diff --git a/apps/web/src/oj/ai/components/StreakStats.vue b/apps/web/src/oj/ai/components/StreakStats.vue deleted file mode 100644 index 518f8b6..0000000 --- a/apps/web/src/oj/ai/components/StreakStats.vue +++ /dev/null @@ -1,166 +0,0 @@ - - - diff --git a/apps/web/src/shared/components/IconButton.vue b/apps/web/src/shared/components/IconButton.vue deleted file mode 100644 index 8fbe0b1..0000000 --- a/apps/web/src/shared/components/IconButton.vue +++ /dev/null @@ -1,29 +0,0 @@ - - diff --git a/apps/web/src/utils/permissions.ts b/apps/web/src/utils/permissions.ts deleted file mode 100644 index 34921e6..0000000 --- a/apps/web/src/utils/permissions.ts +++ /dev/null @@ -1,108 +0,0 @@ -import { useUserStore } from "shared/store/user" - -export function usePermissions() { - const userStore = useUserStore() - - return { - isAuthenticated: computed(() => userStore.isAuthed), - isAdminRole: computed(() => userStore.isAdminRole), - isTeacherOrAbove: computed(() => userStore.isTeacherOrAbove), - isSuperAdmin: computed(() => userStore.isSuperAdmin), - hasProblemPermission: computed(() => userStore.hasProblemPermission), - - canManageUsers: computed(() => userStore.isSuperAdmin), - canManageAnnouncements: computed(() => userStore.isSuperAdmin), - canManageTutorials: computed(() => userStore.isSuperAdmin), - canManageSystemConfig: computed(() => userStore.isSuperAdmin), - canSendMessages: computed(() => userStore.isSuperAdmin), - - canManageProblems: computed(() => userStore.hasProblemPermission), - canManageContests: computed(() => userStore.isTeacherOrAbove), - canManageProblemsets: computed(() => userStore.isTeacherOrAbove), - canViewClassroomData: computed(() => userStore.isTeacherOrAbove), - - canManageAllProblems: computed( - () => - userStore.user?.problemPermission === "All" || userStore.isSuperAdmin, - ), - canManageOwnProblems: computed( - () => - userStore.user?.problemPermission === "Own" && !userStore.isSuperAdmin, - ), - - getUserPermissionLevel: computed(() => { - if (userStore.isSuperAdmin) return "超级管理员" - if (userStore.isTeacherAdmin) return "教师管理员" - if (userStore.isStudentAdmin) return "学生管理员" - return "普通用户" - }), - - getProblemPermissionLevel: computed(() => { - if (!userStore.user) return "无权限" - switch (userStore.user.problemPermission) { - case "All": - return "管理所有题目" - case "Own": - return "管理自己的题目" - case "None": - return "无题目权限" - default: - return "无权限" - } - }), - } -} - -export function checkRoutePermission(routeName: string): boolean { - const userStore = useUserStore() - - const superAdminRoutes = [ - "admin home", - "admin config", - "admin user list", - "admin user generate", - "admin announcement list", - "admin announcement create", - "admin announcement edit", - "admin message list", - "admin tutorial list", - "admin tutorial create", - "admin tutorial edit", - ] - - const teacherAdminRoutes = [ - "admin contest list", - "admin contest create", - "admin contest edit", - "admin contest problem list", - "admin contest problem create", - "admin contest problem edit", - "admin contest helper", - "admin problemset list", - "admin problemset create", - "admin problemset edit", - "admin problemset detail", - "admin stuck problems", - "admin top ac trend", - ] - - const problemPermissionRoutes = [ - "admin problem list", - "admin problem create", - "admin problem edit", - ] - - if (superAdminRoutes.includes(routeName)) { - return userStore.isSuperAdmin - } - - if (teacherAdminRoutes.includes(routeName)) { - return userStore.isTeacherOrAbove - } - - if (problemPermissionRoutes.includes(routeName)) { - return userStore.hasProblemPermission - } - - return true -}