modify the logic about role op