Expose image studio flow and related admin controls

Bundle the current backend and web changes into one publishable snapshot
from the server worktree so the remote mirror reflects the deployed source.

Constraint: Push the existing mixed worktree from /docker/new-api/src without reshaping files
Rejected: Split into feature-specific commits | current worktree is already a single undifferentiated snapshot
Confidence: medium
Scope-risk: moderate
Directive: Split future feature work before deployment to preserve clearer history
Tested: git status inspection; git diff --stat review
Not-tested: build, lint, unit tests, integration tests
This commit is contained in:
OpenClaw Task Bot
2026-05-05 12:16:54 +08:00
parent 58c0258362
commit 92ee465a41
23 changed files with 2694 additions and 202 deletions

View File

@@ -63,36 +63,9 @@ const NotificationSettings = ({
// 左侧边栏设置相关状态
const [sidebarLoading, setSidebarLoading] = useState(false);
const [activeTabKey, setActiveTabKey] = useState('notification');
const [sidebarModulesUser, setSidebarModulesUser] = useState({
chat: {
enabled: true,
playground: true,
chat: true,
},
console: {
enabled: true,
detail: true,
token: true,
log: true,
midjourney: true,
task: true,
},
personal: {
enabled: true,
topup: true,
personal: true,
},
admin: {
enabled: true,
channel: true,
models: true,
deployment: true,
subscription: true,
redemption: true,
user: true,
setting: true,
},
});
const [sidebarModulesUser, setSidebarModulesUser] = useState(
mergeAdminConfig(null),
);
const [adminConfig, setAdminConfig] = useState(null);
// 使用后端权限验证替代前端角色判断
@@ -155,29 +128,7 @@ const NotificationSettings = ({
};
const resetSidebarModules = () => {
const defaultConfig = {
chat: { enabled: true, playground: true, chat: true },
console: {
enabled: true,
detail: true,
token: true,
log: true,
midjourney: true,
task: true,
},
personal: { enabled: true, topup: true, personal: true },
admin: {
enabled: true,
channel: true,
models: true,
deployment: true,
subscription: true,
redemption: true,
user: true,
setting: true,
},
};
setSidebarModulesUser(defaultConfig);
setSidebarModulesUser(mergeAdminConfig(null));
};
// 加载左侧边栏配置
@@ -207,7 +158,7 @@ const NotificationSettings = ({
} else {
userConf = userRes.data.data.sidebar_modules;
}
setSidebarModulesUser(userConf);
setSidebarModulesUser(mergeAdminConfig(userConf));
}
} catch (error) {
console.error('加载边栏配置失败:', error);
@@ -287,6 +238,18 @@ const NotificationSettings = ({
],
},
// 管理员区域:根据后端权限控制显示
{
key: 'other',
title: t('其他功能区域'),
description: t('图片与扩展功能'),
modules: [
{
key: 'image_studio',
title: t('图片制作'),
description: t('生成图片和编辑图片'),
},
],
},
{
key: 'admin',
title: t('管理员区域'),