Implement sensitive word filtering feature with configurable database and Redis support. Add security enhancements including WebSocket origin validation, improved password strength requirements, timing attack prevention, and production JWT secret validation. Add batch operation validation limits and optimize user blocking queries with subqueries. BREAKING CHANGE: Password validation now requires minimum 8 characters with uppercase, lowercase, and digit (was 6-50 characters without complexity requirements)
55 lines
1.7 KiB
Go
55 lines
1.7 KiB
Go
package wire
|
||
|
||
import (
|
||
"carrot_bbs/internal/cache"
|
||
"carrot_bbs/internal/repository"
|
||
|
||
"github.com/google/wire"
|
||
"gorm.io/gorm"
|
||
)
|
||
|
||
// RepositorySet Repository 层 Provider Set
|
||
var RepositorySet = wire.NewSet(
|
||
repository.NewUserRepository,
|
||
repository.NewPostRepository,
|
||
repository.NewCommentRepository,
|
||
repository.NewMessageRepository,
|
||
repository.NewNotificationRepository,
|
||
repository.NewPushRecordRepository,
|
||
repository.NewDeviceTokenRepository,
|
||
repository.NewSystemNotificationRepository,
|
||
repository.NewGroupRepository,
|
||
repository.NewGroupJoinRequestRepository,
|
||
repository.NewStickerRepository,
|
||
repository.NewVoteRepository,
|
||
repository.NewChannelRepository,
|
||
repository.NewScheduleRepository,
|
||
repository.NewMaterialSubjectRepository,
|
||
repository.NewMaterialFileRepository,
|
||
repository.NewCallRepository,
|
||
repository.NewReportRepository,
|
||
ProvideUserActivityRepository,
|
||
|
||
// 日志相关仓储
|
||
repository.NewOperationLogRepository,
|
||
repository.NewLoginLogRepository,
|
||
repository.NewDataChangeLogRepository,
|
||
|
||
// 身份认证相关仓储
|
||
repository.NewVerificationRepository,
|
||
|
||
// 敏感词相关仓储
|
||
repository.NewSensitiveWordRepository,
|
||
)
|
||
|
||
// ProvideUserActivityRepository 提供用户活跃数据仓储
|
||
func ProvideUserActivityRepository(db *gorm.DB, cache cache.Cache) repository.UserActivityRepository {
|
||
return repository.NewUserActivityRepository(db, cache)
|
||
}
|
||
|
||
// Note: 以下 Repository 返回接口类型而非指针,需要单独处理
|
||
// - ScheduleRepository (repository.ScheduleRepository)
|
||
// - StickerRepository (repository.StickerRepository)
|
||
// - GroupRepository (repository.GroupRepository)
|
||
// 这些已经在各自的 New* 函数中正确返回接口类型,Wire 可以自动处理
|