The closest word I can think of is a sycophant but that's too strong word and not exactly what I'm looking for. The word I'm thinking of has negative connotations and it's for someone who is friends with different groups but only at a superficial level and isn't necessarily honest about who all they're friends with. This person would be seen as untrustworthy.
Ex-cons might not be the best group to use in your example...
If I had a friend who kept the company of fascists, I'd probably drop them real quick - notably as the current iteration of fascists are intent on ensuring people like me are dead or ground under their boot.
On the flip side, just because I had a disagreement with someone doesn't mean other friends can't be friends with that someone - it takes a lot to be called "an enemy" of myself.