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:
@@ -8,7 +8,8 @@ import (
|
||||
"carrot_bbs/internal/repository"
|
||||
"carrot_bbs/internal/service"
|
||||
|
||||
"github.com/casbin/casbin/v2"
|
||||
"github.com/casbin/casbin/v3"
|
||||
gormadapter "github.com/casbin/gorm-adapter/v3"
|
||||
"github.com/google/wire"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
@@ -22,19 +23,24 @@ var CasbinSet = wire.NewSet(
|
||||
|
||||
// ProvideCasbinEnforcer 提供 Casbin Enforcer
|
||||
func ProvideCasbinEnforcer(cfg *config.Config, db *gorm.DB) *casbin.Enforcer {
|
||||
// 创建 Casbin Enforcer
|
||||
// 注意:这里使用文件适配器作为示例,实际使用时需要替换为数据库适配器
|
||||
enforcer, err := casbin.NewEnforcer(cfg.Casbin.ModelPath)
|
||||
// 创建 GORM 适配器,连接数据库
|
||||
adapter, err := gormadapter.NewAdapterByDB(db)
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to create Casbin GORM adapter: %v", err)
|
||||
}
|
||||
|
||||
// 创建 Casbin Enforcer,使用数据库适配器
|
||||
enforcer, err := casbin.NewEnforcer(cfg.Casbin.ModelPath, adapter)
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to create Casbin enforcer: %v", err)
|
||||
}
|
||||
|
||||
// 加载策略
|
||||
// 从数据库加载策略
|
||||
if err := enforcer.LoadPolicy(); err != nil {
|
||||
log.Printf("[WARNING] Failed to load Casbin policy: %v", err)
|
||||
}
|
||||
|
||||
log.Println("[Wire] Initialized Casbin enforcer")
|
||||
log.Println("[Wire] Initialized Casbin enforcer with GORM adapter")
|
||||
return enforcer
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user