у меня просто в проекте кастомные роли и там админ может создать роль и назначить права. у роли есть массив разрешений например manage_users (для доступа в разел), create_user (создание) и т п все разрешения проверяются путем оборачивания в can_...? и missing method который может проверять одновременно несколько разрешений