Ah, I missed the note that was staring me in the face. But why not use the same order of conditionals? I suspect you've inadvertently introduced some variation in what's allowed and what's not. I agree that the ArticleHandler::validate function is convoluted, but this will be impossible to maintain consistently along with it.