Просто есть атрибут пользовательского объекта, называемый «роли», который содержит список ролей.
Вы также можете иметь 2 атрибута, один для списка активных ролей, другой для неактивных, на случай, если вам нужно управлять активным флагом, используя этот объект.
Кроме того, у вас может быть атрибут объекта роли, в котором перечислены пользователи в этой роли (либо вместо, либо в дополнение к атрибуту роли в объекте пользователя) - снова возможно с «неактивной» копией.