From e97315847273d3fc1d0571daf72b9aa82787aa52 Mon Sep 17 00:00:00 2001 From: Feng Yue <2525275@gmail.com> Date: Tue, 2 Sep 2025 16:16:43 +0800 Subject: [PATCH] show owner's name in apikey management page --- src/routes/admin.js | 25 +++++++++++++++++++++++++ web/admin-spa/src/views/ApiKeysView.vue | 10 ++++++++++ 2 files changed, 35 insertions(+) diff --git a/src/routes/admin.js b/src/routes/admin.js index 9eac7135..36adfa73 100644 --- a/src/routes/admin.js +++ b/src/routes/admin.js @@ -63,6 +63,9 @@ router.get('/api-keys', authenticateAdmin, async (req, res) => { const { timeRange = 'all' } = req.query // all, 7days, monthly const apiKeys = await apiKeyService.getAllApiKeys() + // 获取用户服务来补充owner信息 + const userService = require('../services/userService') + // 根据时间范围计算查询模式 const now = new Date() const searchPatterns = [] @@ -313,6 +316,28 @@ router.get('/api-keys', authenticateAdmin, async (req, res) => { } } + // 为每个API Key添加owner的displayName + for (const apiKey of apiKeys) { + // 如果API Key有关联的用户ID,获取用户信息 + if (apiKey.userId) { + try { + const user = await userService.getUserById(apiKey.userId, false) + if (user) { + apiKey.ownerDisplayName = user.displayName || user.username || 'Unknown User' + } else { + apiKey.ownerDisplayName = 'Unknown User' + } + } catch (error) { + logger.debug(`无法获取用户 ${apiKey.userId} 的信息:`, error) + apiKey.ownerDisplayName = 'Unknown User' + } + } else { + // 如果没有userId,使用createdBy字段或默认为Admin + apiKey.ownerDisplayName = + apiKey.createdBy === 'admin' ? 'Admin' : apiKey.createdBy || 'Admin' + } + } + return res.json({ success: true, data: apiKeys }) } catch (error) { logger.error('❌ Failed to get API keys:', error) diff --git a/web/admin-spa/src/views/ApiKeysView.vue b/web/admin-spa/src/views/ApiKeysView.vue index 54a5b350..1499026c 100644 --- a/web/admin-spa/src/views/ApiKeysView.vue +++ b/web/admin-spa/src/views/ApiKeysView.vue @@ -402,6 +402,11 @@ 使用共享池 + +
+ + {{ key.ownerDisplayName }} +
@@ -1023,6 +1028,11 @@ 使用共享池 + +
+ + {{ key.ownerDisplayName }} +