Возможно ли установить дату истечения срока действия учетных записей пользователей?

Каждый раз, когда пользователь регистрируется по приглашительной ссылке, я хочу, чтобы этот аккаунт действовал только x месяцев, и после истечения срока пользователь должен продлить свой аккаунт. Возможно ли это?

По сути, это членство с датой истечения срока и возможностью продления. Если такой функции нет в Discourse, можно ли реализовать её через плагин или что-то подобное, не затрагивая ядро? Или в API и вебхуках нет поддержки для чего-то подобного?

Вы добавляете их в группу при регистрации. Затем вы используете плагин, который удаляет их из группы по истечении установленного срока. Не совсем понятно, как отслеживать месяц. Вероятно, самым простым решением будет пользовательское поле с датой окончания.

«Затем у вас будет плагин, который удаляет их из группы по истечении срока действия». Какой именно плагин?

«Вероятно, самым простым решением будет пользовательское поле с датой окончания». Добавляю ли я эту информацию при регистрации? Значит, в этот момент мне следует использовать вебхук, верно?

Такого плагина не существует. Кто-то должен был бы его написать.

Нет. Этим занимался бы плагин. И, вероятно, есть способ определить, когда они были добавлены через базу данных и Data Explorer, хотя я не уверен на 100%.

Если вы не используете собственный хостинг или по другим причинам не хотите использовать плагин,
также возможно собрать что-то подобное с помощью плагина Data Explorer (чтобы получить данные о времени добавления и, следовательно, о том, когда их нужно удалить) и использовать инструмент автоматизации/API (например, Zapier, хотя я также использовал GitHub Actions), чтобы удалять их из группы, когда наступит время.

Это отличный кандидат для скрипта автоматизации! Такого ещё нет, так что вы можете внести свой вклад в его создание или нанять кого-то для этого и затем опубликовать его в Marketplace.

Я могу это сделать, но с дополнительным функционалом: он должен позволять добавлять поля в формате «ключ-значение».

Суть идеи в том, что я могу связать с ссылкой-приглашением любую нужную мне информацию. Значения могут быть простой строкой или JSON, а каждый ключ будет соответствовать столбцу в базе данных. Затем, когда пользователь завершит регистрацию, будет добавлена дополнительная пара «ключ-значение» — его имя пользователя.

Мой вопрос: пройдет ли это вашу проверку и будет ли добавлено в исходный код нативного Discourse? И это подводит меня к дополнительному вопросу: всегда ли ссылки-приглашения уникальны?

Я перенёс эту тему в Development, так как мы выходим за рамки зоны поддержки. Вам нужно просто приступить к созданию плагина или автоматизации, которая делает то, что вам нужно. Дайте знать, как у вас продвигается дело! Если функции, которые вы добавите, окажутся полезными для более широкого круга пользователей, их в конечном итоге могут рассмотреть для включения в ядро Discourse.

Обратитесь к Documentation > Developer Guides и #community-wiki:developers за инструкциями по созданию плагинов.

Вы также можете создавать новые темы в Development, чтобы задавать дополнительные вопросы, но я рекомендую вам иметь код, которым можно поделиться, когда вы это делаете. Другим будет проще помочь вам, если они увидят, что вы уже сделали.

Да, ссылки-приглашения всегда уникальны.

Я не понимаю, что вы имеете в виду под «пройдёт ваши фильтры и будет добавлено в исходный код нативного Discourse».

Это те вопросы, которые, как мне кажется, вы сможете найти ответы на самостоятельно, когда начнёте разбираться в коде.