// Copyright (C) 2024 veypi // 2025-03-04 16:08:06 // Distributed under terms of the MIT license. package role import ( "github.com/veypi/vbase/cfg" "github.com/veypi/vbase/models" "github.com/veypi/vigo" ) type DeleteRequest struct { RoleID string `src:"path@role_id" desc:"角色ID"` } func del(x *vigo.X, req *DeleteRequest) error { var role models.Role if err := cfg.DB().First(&role, "id = ?", req.RoleID).Error; err != nil { return vigo.ErrNotFound } // 系统角色不允许删除 if role.IsSystem { return vigo.ErrForbidden.WithString("system roles cannot be deleted") } if err := cfg.DB().Delete(&role).Error; err != nil { return vigo.ErrInternalServer.WithError(err) } return nil }