This seems like conflation of Role (properties of a user) with access (what users with particular roles can do). I think that conflation takes place elsewhere (because, for instance, has_access uses the role name as the action identifier, to some degree). But the other role objects don't check `is_staff`, for instance, even though if you have `is_staff`, you implicitly have the same access as someone who is a CourseInstructor.