package repositories import ( "gitea.zjmud.xyz/phyer/rbac/models" // "gorm.io/gorm" ) func CheckUserPermission(userID string, permission string) (bool, error) { var user models.User result := db.Preload("Roles.Permissions").Where("id = ?", userID).First(&user) if result.Error != nil { return false, result.Error } for _, role := range user.Roles { for _, perm := range role.Permissions { if perm.Name == permission { return true, nil } } } return false, nil } func GetAllUsers() ([]models.User, error) { var users []models.User result := db.Find(&users) return users, result.Error } func GetUserByID(id string) (*models.User, error) { var user models.User result := db.First(&user, "id = ?", id) return &user, result.Error } func GetUserByUsername(username string) (*models.User, error) { var user models.User result := db.First(&user, "username = ?", username) return &user, result.Error } func CreateUser(user *models.User) (*models.User, error) { result := db.Create(user) return user, result.Error } func UpdateUser(id string, updateData map[string]interface{}) (*models.User, error) { var user models.User result := db.Model(&user).Where("id = ?", id).Updates(updateData) if result.Error != nil { return nil, result.Error } return GetUserByID(id) } func DeleteUser(id string) error { result := db.Delete(&models.User{}, "id = ?", id) return result.Error }