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