feat: 完成鸽达达后台安全与审计改造

This commit is contained in:
richjohnrambo
2026-09-07 11:50:29 +08:00
parent ab2b84c9fa
commit bb87d01644
196 changed files with 19970 additions and 280 deletions
@@ -0,0 +1,84 @@
package consts
import (
"hotgo/internal/library/dict"
"hotgo/internal/model"
)
const (
ImMessageContentText = "text"
ImMessageContentImage = "image"
ImMessageContentVideo = "video"
ImMessageContentAudio = "audio"
ImMessageContentVoice = "voice"
ImMessageContentFile = "file"
ImMessageContentCard = "card"
ImMessageContentSystem = "system"
ImMessageStatusNormal = "normal"
ImMessageStatusDeleted = "deleted"
ImMessageStatusRecalled = "recalled"
ImMessageStatusBlocked = "blocked"
ImMessageStatusHidden = "hidden"
)
var ImMessageContentTypeOptions = []*model.Option{
dict.GenInfoOption(ImMessageContentText, "文本"),
dict.GenPrimaryOption(ImMessageContentImage, "图片"),
dict.GenPrimaryOption(ImMessageContentVideo, "视频"),
dict.GenPrimaryOption(ImMessageContentAudio, "语音"),
dict.GenPrimaryOption(ImMessageContentVoice, "语音"),
dict.GenDefaultOption(ImMessageContentFile, "文件"),
dict.GenDefaultOption(ImMessageContentCard, "名片"),
dict.GenWarningOption(ImMessageContentSystem, "系统"),
}
var ImMessageStatusOptions = []*model.Option{
dict.GenSuccessOption(ImMessageStatusNormal, "正常"),
dict.GenErrorOption(ImMessageStatusDeleted, "后台删除"),
dict.GenWarningOption(ImMessageStatusRecalled, "用户撤回"),
dict.GenErrorOption(ImMessageStatusBlocked, "风控拦截"),
dict.GenWarningOption(ImMessageStatusHidden, "已隐藏"),
}
var ImLoginTypeOptions = []*model.Option{
dict.GenPrimaryOption("password", "密码"),
dict.GenPrimaryOption("sms_code", "短信验证码"),
dict.GenInfoOption("sso", "单点登录"),
dict.GenInfoOption("qr_code", "二维码"),
dict.GenDefaultOption("token_refresh", "令牌刷新"),
}
var ImLoginEventTypeOptions = []*model.Option{
dict.GenSuccessOption("login", "登录"),
dict.GenInfoOption("refresh", "刷新会话"),
dict.GenDefaultOption("logout", "主动退出"),
dict.GenWarningOption("kicked", "被踢下线"),
dict.GenWarningOption("session_expired", "会话过期"),
}
var ImClientPlatformOptions = []*model.Option{
dict.GenPrimaryOption("ios", "iOS"),
dict.GenSuccessOption("android", "Android"),
dict.GenInfoOption("web", "Web"),
dict.GenDefaultOption("desktop", "桌面端"),
dict.GenDefaultOption("unknown", "未知"),
}
var ImLoginFailureTypeOptions = []*model.Option{
dict.GenErrorOption("password_error", "密码错误"),
dict.GenErrorOption("code_error", "验证码错误"),
dict.GenWarningOption("account_not_found", "账号不存在"),
dict.GenErrorOption("account_disabled", "账号已禁用"),
dict.GenWarningOption("rate_limited", "访问频率受限"),
dict.GenErrorOption("risk_blocked", "风控拦截"),
}
func init() {
dict.RegisterEnums("ImMessageContentTypeOptions", "IM消息内容类型选项", ImMessageContentTypeOptions)
dict.RegisterEnums("ImMessageStatusOptions", "IM消息状态选项", ImMessageStatusOptions)
dict.RegisterEnums("ImLoginTypeOptions", "IM登录方式选项", ImLoginTypeOptions)
dict.RegisterEnums("ImLoginEventTypeOptions", "IM登录事件选项", ImLoginEventTypeOptions)
dict.RegisterEnums("ImClientPlatformOptions", "IM客户端平台选项", ImClientPlatformOptions)
dict.RegisterEnums("ImLoginFailureTypeOptions", "IM登录失败类型选项", ImLoginFailureTypeOptions)
}
+2
View File
@@ -47,6 +47,8 @@ const (
ImAdminCommandUserCancel = "user.account.cancel"
ImAdminCommandUserDelete = "user.account.delete"
ImAdminCommandUserPasswordReset = "user.password.reset"
ImAdminCommandMessageHide = "message.hide"
ImAdminCommandMessageDelete = "message.delete"
ImAdminCommandKafkaDeadReplay = "kafka.dead_letter.replay"
ImAdminCommandKafkaDeadIgnore = "kafka.dead_letter.ignore"
ImAdminCommandKafkaDeadResolve = "kafka.dead_letter.resolve"
+118
View File
@@ -0,0 +1,118 @@
package consts
import (
"hotgo/internal/library/dict"
"hotgo/internal/model"
)
const (
ImPolicyActionAllow = "allow"
ImPolicyActionDeny = "deny"
ImPolicyActionChallenge = "challenge"
ImPolicyActionAuditOnly = "audit_only"
ImSecurityActionBlock = "block"
ImSensitiveMatchExact = "exact"
ImSensitiveMatchContains = "contains"
ImSensitiveMatchRegex = "regex"
ImSensitiveMatchPinyin = "pinyin"
ImSensitiveActionReplace = "replace"
ImSensitiveActionBlock = "block"
ImSensitiveActionAuditOnly = "audit_only"
ImSensitiveActionManualReview = "manual_review"
ImRiskLevelLow = "low"
ImRiskLevelMedium = "medium"
ImRiskLevelHigh = "high"
ImSecurityPublishDraft = "draft"
ImSecurityPublishPublished = "published"
ImSecurityPublishArchived = "archived"
ImSecurityPublishFailed = "failed"
ImCurfewDateDaily = "daily"
ImCurfewDateWeekday = "weekday"
ImCurfewDateWeekend = "weekend"
ImCurfewDateCustom = "custom"
ImCurfewScopePrivate = "private_message"
ImCurfewScopeGroup = "group_message"
)
var (
ImPolicyActionOptions = []*model.Option{
dict.GenSuccessOption(ImPolicyActionAllow, "放行"),
dict.GenErrorOption(ImPolicyActionDeny, "拦截"),
dict.GenWarningOption(ImPolicyActionChallenge, "二次验证"),
dict.GenInfoOption(ImPolicyActionAuditOnly, "仅审计"),
}
ImSecurityActionOptions = []*model.Option{
dict.GenSuccessOption(ImPolicyActionAllow, "放行"),
dict.GenWarningOption(ImPolicyActionChallenge, "二次验证"),
dict.GenErrorOption(ImSecurityActionBlock, "阻断"),
dict.GenInfoOption(ImPolicyActionAuditOnly, "仅审计"),
}
ImSensitiveMatchTypeOptions = []*model.Option{
dict.GenPrimaryOption(ImSensitiveMatchExact, "精确匹配"),
dict.GenDefaultOption(ImSensitiveMatchContains, "包含匹配"),
dict.GenWarningOption(ImSensitiveMatchRegex, "正则匹配"),
dict.GenInfoOption(ImSensitiveMatchPinyin, "拼音匹配"),
}
ImSensitiveActionOptions = []*model.Option{
dict.GenWarningOption(ImSensitiveActionReplace, "替换"),
dict.GenErrorOption(ImSensitiveActionBlock, "拦截"),
dict.GenInfoOption(ImSensitiveActionAuditOnly, "仅审计"),
dict.GenPrimaryOption(ImSensitiveActionManualReview, "人工审核"),
}
ImRiskLevelOptions = []*model.Option{
dict.GenSuccessOption(ImRiskLevelLow, "低风险"),
dict.GenWarningOption(ImRiskLevelMedium, "中风险"),
dict.GenErrorOption(ImRiskLevelHigh, "高风险"),
}
ImSecurityPublishStatusOptions = []*model.Option{
dict.GenWarningOption(ImSecurityPublishDraft, "草稿"),
dict.GenSuccessOption(ImSecurityPublishPublished, "已发布"),
dict.GenDefaultOption(ImSecurityPublishArchived, "已归档"),
dict.GenErrorOption(ImSecurityPublishFailed, "发布失败"),
}
ImCurfewDateTypeOptions = []*model.Option{
dict.GenDefaultOption(ImCurfewDateDaily, "每天"),
dict.GenPrimaryOption(ImCurfewDateWeekday, "工作日"),
dict.GenInfoOption(ImCurfewDateWeekend, "周末"),
dict.GenWarningOption(ImCurfewDateCustom, "自定义日期"),
}
ImCurfewScopeOptions = []*model.Option{
dict.GenErrorOption(ImCurfewScopePrivate, "单聊/私聊"),
dict.GenWarningOption(ImCurfewScopeGroup, "群聊"),
}
ImSensitiveSceneOptions = []*model.Option{
dict.GenPrimaryOption("private_message", "单聊消息"),
dict.GenPrimaryOption("group_message", "群聊消息"),
dict.GenInfoOption("user_profile", "用户资料"),
dict.GenInfoOption("group_profile", "群资料"),
dict.GenWarningOption("feedback", "用户反馈"),
dict.GenWarningOption("report", "举报内容"),
}
ImFriendEntryOptions = []*model.Option{
dict.GenDefaultOption("search", "用户搜索"),
dict.GenDefaultOption("profile_card", "个人名片"),
dict.GenDefaultOption("group_member", "群成员"),
dict.GenDefaultOption("qrcode", "二维码"),
dict.GenDefaultOption("invite_auto_add", "邀请注册自动添加"),
dict.GenDefaultOption("recommendation", "推荐联系人"),
}
)
func init() {
dict.RegisterEnums("ImPolicyActionOptions", "IM策略动作", ImPolicyActionOptions)
dict.RegisterEnums("ImSecurityActionOptions", "IM安全策略动作", ImSecurityActionOptions)
dict.RegisterEnums("ImSensitiveMatchTypeOptions", "IM敏感词匹配类型", ImSensitiveMatchTypeOptions)
dict.RegisterEnums("ImSensitiveActionOptions", "IM敏感词动作", ImSensitiveActionOptions)
dict.RegisterEnums("ImRiskLevelOptions", "IM风险等级", ImRiskLevelOptions)
dict.RegisterEnums("ImSecurityPublishStatusOptions", "IM安全策略发布状态", ImSecurityPublishStatusOptions)
dict.RegisterEnums("ImCurfewDateTypeOptions", "IM宵禁日期类型", ImCurfewDateTypeOptions)
dict.RegisterEnums("ImCurfewScopeOptions", "IM宵禁范围", ImCurfewScopeOptions)
dict.RegisterEnums("ImSensitiveSceneOptions", "IM敏感词场景", ImSensitiveSceneOptions)
dict.RegisterEnums("ImFriendEntryOptions", "IM好友入口", ImFriendEntryOptions)
}