feat(admin): add comprehensive admin management system
- Add admin handlers and services for users, posts, comments, groups, and dashboard - Implement role permission management with ability to view and update permissions - Add database seeding for roles and Casbin permission policies - Upgrade Casbin from v2 to v3 with GORM adapter for persistent policy storage - Add admin-specific repository methods with filtering and pagination - Register new admin API routes under /api/v1/admin/*
This commit is contained in:
@@ -43,6 +43,11 @@ var ServiceSet = wire.NewSet(
|
||||
ProvideUploadService,
|
||||
ProvideUserActivityService,
|
||||
ProvideRoleService,
|
||||
ProvideAdminUserService,
|
||||
ProvideAdminPostService,
|
||||
ProvideAdminCommentService,
|
||||
ProvideAdminGroupService,
|
||||
ProvideAdminDashboardService,
|
||||
)
|
||||
|
||||
// ProvideJWTService 提供 JWT 服务
|
||||
@@ -214,3 +219,38 @@ func ProvideRoleService(
|
||||
) service.RoleService {
|
||||
return service.NewRoleService(roleRepo, casbinSvc)
|
||||
}
|
||||
|
||||
// ProvideAdminUserService 提供管理端用户服务
|
||||
func ProvideAdminUserService(userRepo *repository.UserRepository) service.AdminUserService {
|
||||
return service.NewAdminUserService(userRepo)
|
||||
}
|
||||
|
||||
// ProvideAdminPostService 提供管理端帖子服务
|
||||
func ProvideAdminPostService(postRepo *repository.PostRepository, cacheBackend cache.Cache) service.AdminPostService {
|
||||
return service.NewAdminPostService(postRepo, cacheBackend)
|
||||
}
|
||||
|
||||
// ProvideAdminCommentService 提供管理端评论服务
|
||||
func ProvideAdminCommentService(commentRepo *repository.CommentRepository, postRepo *repository.PostRepository) service.AdminCommentService {
|
||||
return service.NewAdminCommentService(commentRepo, postRepo)
|
||||
}
|
||||
|
||||
// ProvideAdminGroupService 提供管理端群组服务
|
||||
func ProvideAdminGroupService(
|
||||
groupRepo repository.GroupRepository,
|
||||
userRepo *repository.UserRepository,
|
||||
) service.AdminGroupService {
|
||||
return service.NewAdminGroupService(groupRepo, userRepo)
|
||||
}
|
||||
|
||||
// ProvideAdminDashboardService 提供管理端仪表盘服务
|
||||
func ProvideAdminDashboardService(
|
||||
db *gorm.DB,
|
||||
userRepo *repository.UserRepository,
|
||||
postRepo *repository.PostRepository,
|
||||
commentRepo *repository.CommentRepository,
|
||||
groupRepo repository.GroupRepository,
|
||||
activityRepo *repository.UserActivityRepository,
|
||||
) service.AdminDashboardService {
|
||||
return service.NewAdminDashboardService(db, userRepo, postRepo, commentRepo, groupRepo, activityRepo)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user