package infra // RBACCheck verifica si un rol tiene un permiso concreto. // Busca el rol por Name en la slice de roles; si existe itera sus permisos // y retorna true si alguno hace match exacto de Resource + Action. // Funcion pura — evaluacion de datos en memoria, sin I/O. func RBACCheck(roles []Role, roleName string, perm Permission) bool { for _, r := range roles { if r.Name != roleName { continue } for _, p := range r.Permissions { if p.Resource == perm.Resource && p.Action == perm.Action { return true } } return false } return false }