The police officer in question has no duty to do what anyone tells him to do unless ordered by a senior officer, and the order is a lawful one.
The city employee should be fired for discrimination, and the cop should be terminated for lack of common sense.
I'll guess that the officer was probably working in an off duty for this event so he'd be sort of stuck dealing with the "in house" direction from whoever sponsored the event. Not that common sense wasn't missing here like you say. Should of done his job as normal and see if there is an aggrieved party