Yes, they certainly do have the right to fire him. As you said, the very act of bringing his weapon into the store while he was at work was against company policy and, at least in this instance, they have a zero tolerance philosophy about it.
The "Fake Beard Bandit" did indeed have his weapon out. The video indicated that when Devin told the man to put down the gun and raise his hands, the bad guy raised his hands with the gun still in his hand...and then he fled the scene.
"The government is good at one thing: It knows how to break your legs, then hand you a crutch and say, 'See? If it weren't for the government, you wouldn't be able to walk.'" - the late Harry Browne