Clean up and simplify hasRole