Google AI (my bold)
"Refusal based on a criminal record can be a legitimate reason if it's tied to a genuine risk of disruptive behavior or harm to other patrons. For example, a history of violent offenses might be a valid reason to refuse service.
[I do not see any reason to suppose he was a risk to other patrons, and that to believe he was would be a massive over-reaction]
Discrimination:
Refusal solely based on a criminal record, without considering the individual's current behavior or risk, could be considered discriminatory. It's crucial to avoid basing decisions on stereotypes or generalizations about individuals with criminal records.
[As above - bad person, convict - he's sober, eating a meal whilst smartly dresed with others in a quiet corner of the restaurant - [I do not see any reason to suppose he was a risk to other patrons]