This commit is contained in:
Baobhan Sith
2025-05-08 17:15:44 +08:00
parent 6e80b185df
commit 3b1d404040
6 changed files with 35 additions and 14 deletions
@@ -206,6 +206,7 @@ export const verifyPasskeyAuthenticationHandler = async (req: Request, res: Resp
reason: 'Verification failed',
ip: clientIp
});
notificationService.sendNotification('PASSKEY_AUTH_FAILURE', { credentialId: authenticationResponseJSON?.id || 'unknown', reason: 'Verification failed', ip: clientIp });
res.status(401).json({ verified: false, message: 'Passkey 认证失败。' });
}
} catch (error: any) {
@@ -216,6 +217,7 @@ export const verifyPasskeyAuthenticationHandler = async (req: Request, res: Resp
reason: error.message,
ip: clientIp
});
notificationService.sendNotification('PASSKEY_AUTH_FAILURE', { credentialId: authenticationResponseJSON?.id || 'unknown', reason: error.message, ip: clientIp });
res.status(500).json({ verified: false, message: '验证 Passkey 认证失败。', error: error.message });
}
};
@@ -268,16 +268,19 @@ const canTestUnsaved = computed(() => {
// Define all possible events (aligned with AuditLogView's allActionTypes)
const allNotificationEvents: NotificationEvent[] = [
'LOGIN_SUCCESS', 'LOGIN_FAILURE', 'LOGOUT', 'PASSWORD_CHANGED', // Added LOGOUT, PASSWORD_CHANGED
'2FA_ENABLED', '2FA_DISABLED', // Added 2FA,
'LOGIN_SUCCESS', 'LOGIN_FAILURE', 'LOGOUT', 'PASSWORD_CHANGED',
'2FA_ENABLED', '2FA_DISABLED',
// Passkey Events
'PASSKEY_AUTH_SUCCESS',
'PASSKEY_AUTH_FAILURE',
'CONNECTION_CREATED', 'CONNECTION_UPDATED', 'CONNECTION_DELETED',
'PROXY_CREATED', 'PROXY_UPDATED', 'PROXY_DELETED', // Changed _ADDED
'TAG_CREATED', 'TAG_UPDATED', 'TAG_DELETED', // Changed _ADDED
'SETTINGS_UPDATED', 'IP_WHITELIST_UPDATED', // Added IP_WHITELIST_UPDATED
'NOTIFICATION_SETTING_CREATED', 'NOTIFICATION_SETTING_UPDATED', 'NOTIFICATION_SETTING_DELETED', // Added NOTIFICATION types
'SSH_CONNECT_SUCCESS', 'SSH_CONNECT_FAILURE', 'SSH_SHELL_FAILURE', // Added SSH types
'DATABASE_MIGRATION', 'ADMIN_SETUP_COMPLETE'
// Removed IP_BLACKLISTED as it's not in the Audit Log list source
'PROXY_CREATED', 'PROXY_UPDATED', 'PROXY_DELETED',
'TAG_CREATED', 'TAG_UPDATED', 'TAG_DELETED',
'SETTINGS_UPDATED', 'IP_WHITELIST_UPDATED', 'IP_BLOCKED', // Added IP_BLOCKED as it's in backend types
'NOTIFICATION_SETTING_CREATED', 'NOTIFICATION_SETTING_UPDATED', 'NOTIFICATION_SETTING_DELETED',
'SSH_CONNECT_SUCCESS', 'SSH_CONNECT_FAILURE', 'SSH_SHELL_FAILURE',
'DATABASE_MIGRATION', 'ADMIN_SETUP_COMPLETE'
// Removed IP_BLACKLISTED as it's not in the Audit Log list source, but IP_BLOCKED is present in backend types
];
// Reactive form data structure
+5
View File
@@ -611,6 +611,10 @@
"PASSWORD_CHANGED": "Password Changed",
"2FA_ENABLED": "2FA Enabled",
"2FA_DISABLED": "2FA Disabled",
"PASSKEY_REGISTERED": "Passkey Registered",
"PASSKEY_AUTH_SUCCESS": "Passkey Authentication Successful",
"PASSKEY_AUTH_FAILURE": "Passkey Authentication Failed",
"PASSKEY_DELETED": "Passkey Deleted",
"CONNECTION_CREATED": "Connection Created",
"CONNECTION_UPDATED": "Connection Updated",
"CONNECTION_DELETED": "Connection Deleted",
@@ -622,6 +626,7 @@
"TAG_DELETED": "Tag Deleted",
"SETTINGS_UPDATED": "Settings Updated",
"IP_WHITELIST_UPDATED": "IP Whitelist Updated",
"IP_BLOCKED": "IP Blocked",
"NOTIFICATION_SETTING_CREATED": "Notification Setting Created",
"NOTIFICATION_SETTING_UPDATED": "Notification Setting Updated",
"NOTIFICATION_SETTING_DELETED": "Notification Setting Deleted",
+5
View File
@@ -758,6 +758,10 @@
"events": {
"2FA_DISABLED": "2段階認証無効",
"2FA_ENABLED": "2段階認証有効",
"PASSKEY_REGISTERED": "パスキー登録済み",
"PASSKEY_AUTH_SUCCESS": "パスキー認証成功",
"PASSKEY_AUTH_FAILURE": "パスキー認証失敗",
"PASSKEY_DELETED": "パスキー削除済み",
"ADMIN_SETUP_COMPLETE": "初期管理者設定完了",
"CONNECTIONS_EXPORTED": "接続がエクスポートされました",
"CONNECTION_CREATED": "接続作成",
@@ -765,6 +769,7 @@
"CONNECTION_UPDATED": "接続更新",
"DATABASE_MIGRATION": "データベース移行",
"IP_WHITELIST_UPDATED": "IP ホワイトリスト更新",
"IP_BLOCKED": "IPブロック済み",
"LOGIN_FAILURE": "ログイン失敗",
"LOGIN_SUCCESS": "ログイン成功",
"LOGOUT": "ログアウト",
+5
View File
@@ -609,6 +609,10 @@
"PASSWORD_CHANGED": "密码已修改",
"2FA_ENABLED": "两步验证已启用",
"2FA_DISABLED": "两步验证已禁用",
"PASSKEY_REGISTERED": "Passkey 已注册",
"PASSKEY_AUTH_SUCCESS": "Passkey 认证成功",
"PASSKEY_AUTH_FAILURE": "Passkey 认证失败",
"PASSKEY_DELETED": "Passkey 已删除",
"CONNECTION_CREATED": "连接已创建",
"CONNECTION_UPDATED": "连接已更新",
"CONNECTION_DELETED": "连接已删除",
@@ -621,6 +625,7 @@
"TAG_DELETED": "标签已删除",
"SETTINGS_UPDATED": "设置已更新",
"IP_WHITELIST_UPDATED": "IP 白名单已更新",
"IP_BLOCKED": "IP 已封禁",
"NOTIFICATION_SETTING_CREATED": "通知设置已创建",
"NOTIFICATION_SETTING_UPDATED": "通知设置已更新",
"NOTIFICATION_SETTING_DELETED": "通知设置已删除",
+6 -5
View File
@@ -22,17 +22,18 @@ export type NotificationChannelType = 'webhook' | 'email' | 'telegram';
export type NotificationEvent =
| 'LOGIN_SUCCESS' | 'LOGIN_FAILURE' | 'LOGOUT' | 'PASSWORD_CHANGED'
| '2FA_ENABLED' | '2FA_DISABLED'
// Passkey Events
| 'PASSKEY_REGISTERED'
| 'PASSKEY_AUTH_SUCCESS'
| 'PASSKEY_AUTH_FAILURE'
| 'PASSKEY_DELETED'
| 'CONNECTION_CREATED' | 'CONNECTION_UPDATED' | 'CONNECTION_DELETED'
| 'PROXY_CREATED' | 'PROXY_UPDATED' | 'PROXY_DELETED'
| 'TAG_CREATED' | 'TAG_UPDATED' | 'TAG_DELETED'
| 'SETTINGS_UPDATED' | 'IP_WHITELIST_UPDATED'
| 'SETTINGS_UPDATED' | 'IP_WHITELIST_UPDATED' | 'IP_BLOCKED'
| 'NOTIFICATION_SETTING_CREATED' | 'NOTIFICATION_SETTING_UPDATED' | 'NOTIFICATION_SETTING_DELETED'
// SSH Actions
| 'SSH_CONNECT_SUCCESS' | 'SSH_CONNECT_FAILURE' | 'SSH_SHELL_FAILURE'
// System/Error
| 'DATABASE_MIGRATION' | 'ADMIN_SETUP_COMPLETE';
// Settings (Specific) - Keep aligned with AuditLogActionType
// Note: IP_BLACKLISTED was in NotificationEvent but not AuditLogActionType, removed for consistency based on user request
export interface WebhookConfig {
url: string;