feat: 实现 IP 白名单设置的管理界面及后端校验逻辑

This commit is contained in:
Baobhan Sith
2025-04-15 14:38:14 +08:00
parent 171baec830
commit 1f3631539b
9 changed files with 303 additions and 192 deletions
@@ -47,4 +47,29 @@ export const settingsService = {
async deleteSetting(key: string): Promise<void> {
await settingsRepository.deleteSetting(key);
},
/**
* 获取 IP 白名单设置
* @returns 返回包含启用状态和白名单列表的对象
*/
async getIpWhitelistSettings(): Promise<{ enabled: boolean; whitelist: string }> {
const enabledStr = await settingsRepository.getSetting('ipWhitelistEnabled');
const whitelist = await settingsRepository.getSetting('ipWhitelist');
return {
enabled: enabledStr === 'true', // 将字符串 'true' 转换为布尔值
whitelist: whitelist ?? '', // 如果为 null 则返回空字符串
};
},
/**
* 更新 IP 白名单设置
* @param enabled 是否启用 IP 白名单
* @param whitelist 允许的 IP 地址/CIDR 列表 (字符串形式)
*/
async updateIpWhitelistSettings(enabled: boolean, whitelist: string): Promise<void> {
await Promise.all([
settingsRepository.setSetting('ipWhitelistEnabled', String(enabled)), // 将布尔值转换为字符串
settingsRepository.setSetting('ipWhitelist', whitelist),
]);
},
};