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
}
