В зависимости от того, как «guardian» участвует в различных элементах этого процесса, изменения могут оказаться гораздо более сложными, но есть ещё один вариант, который также зависит от пункта 3:
- Добавить булево свойство к самим приглашениям для обхода одобрения пользователя. По умолчанию это свойство будет выключено и будет доступно в интерфейсе создания приглашения только тогда, когда включена настройка
must_approve_users.
Редактирование: На самом деле, ещё раз посмотрев на код, на который ссылался Дэвид, я полагаю, что «guardian» вообще не участвует в решении вопроса о необходимости одобрения приглашённого пользователя. Похоже, что эту часть можно реализовать простым заменой invite.invited_by.staff? на что-то вроде invite.bypass_approval?.