|
|
@@ -26,6 +26,7 @@
|
|
|
<TaskListPanel
|
|
|
:taskList="taskList"
|
|
|
:currentTaskId="currentTaskId"
|
|
|
+ :isAdmin="isAdmin"
|
|
|
@switch-task="switchTask"
|
|
|
@create-task="createNewTask"
|
|
|
@delete-task="handleDeleteTask"
|
|
|
@@ -90,6 +91,7 @@
|
|
|
:usageRemaining="usageToday?.remaining_tokens ?? 0"
|
|
|
:usageByModel="usageToday?.by_model ?? []"
|
|
|
:initialThinkLevel="thinkLevel"
|
|
|
+ :isAdmin="isAdmin"
|
|
|
:initialEditMode="editMode"
|
|
|
:taskList="taskList"
|
|
|
:currentTaskId="currentTaskId"
|
|
|
@@ -166,6 +168,7 @@
|
|
|
getSessionMode,
|
|
|
putSessionMode,
|
|
|
getTodayUsage,
|
|
|
+ getMe,
|
|
|
StreamError,
|
|
|
} from '../api';
|
|
|
import { message, Modal } from 'ant-design-vue';
|
|
|
@@ -307,6 +310,10 @@
|
|
|
const contextMax = ref(1000000);
|
|
|
const contextPercent = ref(0);
|
|
|
const thinkLevel = ref('off');
|
|
|
+ // 是否具备“全局变更”管理权限(TfAgents 的 is_admin);取不到一律按非管理员处理(保守)
|
|
|
+ const isAdmin = ref(false);
|
|
|
+ // 管理员白名单是否已在服务端配置;false 时可提示管理员未配置
|
|
|
+ const adminConfigured = ref(true);
|
|
|
const editMode = ref('full');
|
|
|
const contextBreakdown = ref({ messages: 0, mcp: 0, skills: 0, system_prompt: 0, other: 0 });
|
|
|
|
|
|
@@ -1342,6 +1349,19 @@
|
|
|
}
|
|
|
};
|
|
|
|
|
|
+ const fetchMe = async () => {
|
|
|
+ try {
|
|
|
+ const me = await getMe();
|
|
|
+ isAdmin.value = !!me?.is_admin;
|
|
|
+ adminConfigured.value = me?.admin_configured !== false;
|
|
|
+ } catch (e) {
|
|
|
+ // 取不到(未登录/接口未上线/令牌失效)→ 按非管理员处理,隐藏管理入口
|
|
|
+ isAdmin.value = false;
|
|
|
+ adminConfigured.value = true;
|
|
|
+ console.warn('获取当前用户权限失败,管理入口将隐藏:', e);
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
const fetchSessionMode = async (sessionId: string) => {
|
|
|
try {
|
|
|
const res = await getSessionMode(sessionId);
|
|
|
@@ -1911,6 +1931,7 @@
|
|
|
} else {
|
|
|
await fetchSessionList();
|
|
|
fetchModelMsg();
|
|
|
+ fetchMe();
|
|
|
fetchScheduleListForDetail();
|
|
|
fetchTodayUsage();
|
|
|
|