geekai/api/utils/permission.go
2024-03-15 11:13:02 +08:00

37 lines
1.3 KiB
Go

package utils
import (
"github.com/gin-gonic/gin"
"gorm.io/gorm"
)
// CheckPermission Todo: 放在缓存
// CheckPermission 检查权限
func CheckPermission(c *gin.Context, db *gorm.DB) error {
return nil
//u, err := url.Parse(c.Request.RequestURI)
//if err != nil {
// panic(err)
//}
//slug := strings.Replace(u.Path, "/", "_", -1)[1:]
//
//// 用户名
//userName, _ := c.Get(types.LoginUserID)
//
//var manager model.AdminUser
//db.Table("chatgpt_admin_users").Select("chatgpt_admin_users.id").Where("username = ?", userName).First(&manager)
//
//// 超级管理员不判断
//if manager.Id == 1 {
// return nil
//}
//var roleIds []int
//var count int64
//db.Raw("SELECT `chatgpt_admin_user_roles`.role_id FROM `chatgpt_admin_users` LEFT JOIN `chatgpt_admin_user_roles` ON ( `chatgpt_admin_users`.id = `chatgpt_admin_user_roles`.admin_id ) WHERE `chatgpt_admin_users`.id = ?", manager.Id).Find(&roleIds)
//db.Raw("SELECT `chatgpt_admin_permissions`.slug FROM `chatgpt_admin_permissions` LEFT JOIN `chatgpt_admin_role_permissions` ON (`chatgpt_admin_permissions`.id = `chatgpt_admin_role_permissions`.permission_id) WHERE `chatgpt_admin_role_permissions`.role_id IN ? and `chatgpt_admin_permissions`.slug = ? ", roleIds, slug).Count(&count)
//if count > 0 {
// return nil
//}
//return fmt.Errorf("没有权限")
}