# Нет кнопки одобрения для нового пользователя

**URL:** https://meta.discourse.org/t/no-approve-button-for-new-user/125725
**Category:** WordPress
**Created:** [13.Август.2019 22:50:47 UTC](https://meta.discourse.org/t/no-approve-button-for-new-user/125725 "2019-08-13T22:50:47Z")
**Posts on this page:** 14
**Page:** 1

<div class="post-metadata">

### Author: ![markwill](https://avatars.discourse-cdn.com/v4/letter/m/90db22/32.png) [@markwill](https://meta.discourse.org/u/markwill)
#### Post date: [13.Август.2019 22:50:47 UTC](https://meta.discourse.org/t/no-approve-button-for-new-user/125725/1 "2019-08-13T22:50:47Z")

</div>

Что я упускаю? Только что пользователь впервые вошел через WordPress SSO. Я настроил систему так, что требуется одобрение. Разве эта опция не должна отображаться здесь? Я понятия не имею, как одобрить этого пользователя ☹

У меня есть уведомление в меню администратора о том, что есть пользователь, ожидающий одобрения.

 ![image](https://global.discourse-cdn.com/meta/original/3X/5/5/55f03a35d7fcfc787b3b33b75b374a88d1ae1972.png)

---

<div class="post-metadata">

### Author: ![simon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/simon/32/339122_2.png) [@simon](https://meta.discourse.org/u/simon)
#### Post date: [13.Август.2019 23:34:29 UTC](https://meta.discourse.org/t/no-approve-button-for-new-user/125725/2 "2019-08-13T23:34:29Z")

</div>

> [@markwill](#):
>
> Только что пользователь впервые вошёл через WordPress SSO. Я настроил так, что требуется одобрение. Разве эта опция не должна отображаться здесь?

Я могу воспроизвести эту проблему, если включу и SSO, и настройку сайта «Необходимо одобрить пользователей». Чтобы одобрить пользователя, нажмите на его имя в элементе проверки:

 ![image](https://global.discourse-cdn.com/meta/original/3X/9/7/97b66a8e77c9532f135ad794175241dec7d7c268.png)

Это перенаправит вас на административную страницу пользователя:

В разделе «Разрешения» административной страницы пользователя нажмите кнопку «Активировать учётную запись», если пользователь ещё не активирован:

 ![image](https://global.discourse-cdn.com/meta/original/3X/2/f/2f65694ad515ebacca2ab866463870b5a189b702.png)

Затем нажмите кнопку «Одобрить»:

 ![image](https://global.discourse-cdn.com/meta/original/3X/e/6/e6cabcc29e23675be5953716f845a0b48de74f94.png)

Это должно одобрить пользователя и убрать уведомление из вашей очереди проверки.

---

<div class="post-metadata">

### Author: ![markwill](https://avatars.discourse-cdn.com/v4/letter/m/90db22/32.png) [@markwill](https://meta.discourse.org/u/markwill)
#### Post date: [13.Август.2019 23:37:42 UTC](https://meta.discourse.org/t/no-approve-button-for-new-user/125725/3 "2019-08-13T23:37:42Z")

</div>

Круто. Проблема решена, спасибо. Так и задумано? Я не совсем понимаю, как здесь вписывается концепция активации. Нужно ли каждый раз и активировать, и одобрять?

---

<div class="post-metadata">

### Author: ![simon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/simon/32/339122_2.png) [@simon](https://meta.discourse.org/u/simon)
#### Post date: [13.Август.2019 23:55:33 UTC](https://meta.discourse.org/t/no-approve-button-for-new-user/125725/4 "2019-08-13T23:55:33Z")

</div>

> [@markwill](#):
>
> Так и задумано?

Я думаю, что одновременное включение SSO и опции «обязательно утверждать пользователей» — это довольно редкий случай. Не уверен, как это должно работать. В идеале, при включении SSO утверждение пользователей должно осуществляться на стороне провайдера SSO (WordPress). К сожалению, это требует некоторого кастомного кода. См. [How to prevent some WP users from being able to login to Discourse](https://meta.discourse.org/t/how-to-prevent-some-wp-users-from-being-able-to-login-to-discourse/93234) для подробностей о настройке этого.

Я изучу, как должно работать утверждение пользователей, когда включены и «обязательно утверждать пользователей», и SSO. Если найду что-то стоящее упоминания, сообщу здесь.

---

<div class="post-metadata">

### Author: ![markwill](https://avatars.discourse-cdn.com/v4/letter/m/90db22/32.png) [@markwill](https://meta.discourse.org/u/markwill)
#### Post date: [14.Август.2019 01:49:05 UTC](https://meta.discourse.org/t/no-approve-button-for-new-user/125725/6 "2019-08-14T01:49:05Z")

</div>

Спасибо за отличный ответ, @simon. Я не упоминал об этом ранее, поскольку это было основано лишь на воспоминании (которое в моем случае всегда вызывает сомнения). Но…

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

Так что это по-прежнему вызывает у меня сильную путаницу. Я не вносил никаких изменений в конфигурацию, которые могли бы объяснить разницу в процессе для двух последних новых пользователей. В царит замешательство…

Сообщу вам, если узнаю что-то ещё.

Спасибо ещё раз.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [15.Август.2019 12:36:19 UTC](https://meta.discourse.org/t/no-approve-button-for-new-user/125725/7 "2019-08-15T12:36:19Z")

</div>

> [@simon](#):
>
> Я думаю, что одновременное включение SSO и опции «обязательное утверждение пользователей» — это довольно редкий случай.

Мне казалось, что это не разрешено. Хост SSO отвечает за управление пользователями. Насколько я понимаю, если вам нужно, чтобы некоторые пользователи с учётными записями в SSO не имели доступа к Discourse, то это следует контролировать через группы или каким-либо образом запрещать вход в Discourse.

---

<div class="post-metadata">

### Author: ![markwill](https://avatars.discourse-cdn.com/v4/letter/m/90db22/32.png) [@markwill](https://meta.discourse.org/u/markwill)
#### Post date: [15.Август.2019 13:39:29 UTC](https://meta.discourse.org/t/no-approve-button-for-new-user/125725/8 "2019-08-15T13:39:29Z")

</div>

Хотя у нас есть странность, заключающаяся в необходимости как активировать, так и утверждать **некоторых** пользователей после их попытки входа, система, похоже, работает. При наших настройках администратор должен утверждать запросы после каждой первой попытки входа пользователя. Это приемлемо (в некоторой степени — см. ниже), поэтому две настройки (использовать SSO и утверждать пользователей) кажутся корректными.

Тем не менее, невозможность заранее утвердить определённый набор пользователей до их первой попытки входа — это досадно и создаёт серьёзные проблемы. Это означает, что пользователю приходится ждать возможности входа, даже хотя мы (администраторы) заранее точно знаем, кто они.

Я полагаю, что @simon прав, считая это пограничным случаем **с точки зрения Discourse**. Однако для сайтов на WooCommerce, продающих как обычные товары, так и подписки, это довольно типичная ситуация. Я как раз нахожусь в таком положении, и это распространённый сценарий. Таким образом, моих пользователей можно разделить на две (пересекающиеся) логические группы — клиенты и участники. Я хочу иметь возможность заранее утвердить список участников, чтобы им не приходилось ждать утверждения. Возможно, позже я займусь автоматизацией этого процесса, но это будет возможно только после запуска форума 1 сентября, что очень жаль.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [15.Август.2019 13:56:04 UTC](https://meta.discourse.org/t/no-approve-button-for-new-user/125725/9 "2019-08-15T13:56:04Z")

</div>

> [@markwill](#):
>
> Это довольно распространённая практика для сайтов на WooCommerce — продавать как обычные товары, так и подписки.

Ага! Вы хотите настроить WooCommerce так, чтобы он управлял этими группами в Discourse, а не вручную работать с пользователями в самом Discourse. Есть несколько тем на эту тему. Это требует немного кастомного кода, и примеры уже доступны. Для ориентира: я обычно беру за такую работу от 1000 до 1500 долларов.

---

<div class="post-metadata">

### Author: ![markwill](https://avatars.discourse-cdn.com/v4/letter/m/90db22/32.png) [@markwill](https://meta.discourse.org/u/markwill)
#### Post date: [15.Август.2019 14:12:01 UTC](https://meta.discourse.org/t/no-approve-button-for-new-user/125725/10 "2019-08-15T14:12:01Z")

</div>

Спасибо, @pfaffman. С течением времени я, вероятно, смогу сделать это самостоятельно и уже занимаюсь исследованием. Для запуска я установлю ожидание, что потребуется одобрение, и просто постараюсь быстро решать эти вопросы. После запуска я посмотрю, можно ли как-то автоматизировать этот процесс.

Одно уточнение касательно моих надежд на полностью автоматизированное решение.

Я хочу избежать решения, при котором не-члены могут фактически войти в систему, но затем будут заблокированы от выполнения любых действий (возможно, потому что они не входят в какую-то группу, связанную с членами). Вместо этого, если они не являются членами, я хочу, чтобы их фактический вход в систему не удался, желательно с возможностью перенаправления на страницу, где я смогу объяснить причину.

Иными словами, блокировка входа, если пользователь не является членом, предпочтительнее, чем разрешение входа с последующей блокировкой доступа к ресурсам.

Спасибо еще раз.

---

<div class="post-metadata">

### Author: ![markwill](https://avatars.discourse-cdn.com/v4/letter/m/90db22/32.png) [@markwill](https://meta.discourse.org/u/markwill)
#### Post date: [15.Август.2019 14:35:03 UTC](https://meta.discourse.org/t/no-approve-button-for-new-user/125725/11 "2019-08-15T14:35:03Z")

</div>

@simon Я потратил несколько минут на исследование возможных решений этой проблемы и наткнулся на вас на этой странице 🙂 [WP Discourse – WordPress plugin | WordPress.org](https://wordpress.org/plugins/wp-discourse/). У меня есть более конкретный вопрос к вам по поводу этого плагина.

Мой бизнес связан с WordPress и WooCommerce, и все мои интеграции, где это возможно, используют теги для управления пользователями. WP Fusion выступает связующим звеном, объединяющим всё это, но суть в том, что у всех пользователей есть теги (независимо от того, являются ли они клиентами, участниками и т. д.).

С учётом этого контекста, я бы хотел иметь возможность написать собственную функцию на стороне WordPress, которая реализует определённую логику (в моём случае это так же просто, как проверка наличия тега у пользователя) и отклоняет вход, если это условие не выполняется.

Подскажите, пожалуйста, существует ли какой-то хук, который я могу использовать для реализации такой логики? Это было бы отличным решением и позволило бы оставить управление входом в полной мере в руках WordPress.

Спасибо.

---

<div class="post-metadata">

### Author: ![simon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/simon/32/339122_2.png) [@simon](https://meta.discourse.org/u/simon)
#### Post date: [15.Август.2019 15:43:02 UTC](https://meta.discourse.org/t/no-approve-button-for-new-user/125725/12 "2019-08-15T15:43:02Z")

</div>

> [@markwill](#):
>
> Я бы очень хотел иметь возможность написать собственную функцию на стороне WordPress, которая реализует некоторую логику (в моём случае это так же просто, как проверка наличия тега у пользователя), и отклоняет вход, если это условие не выполняется.

> [@markwill](#):
>
> Вы знаете, есть ли какой-нибудь хук, который позволил бы мне реализовать эту логику?

Да, эта тема описывает, как сделать то, что вы ищете: [How to prevent some WP users from being able to login to Discourse](https://meta.discourse.org/t/how-to-prevent-some-wp-users-from-being-able-to-login-to-discourse/93234). Во втором сообщении темы приведены два примера функций, которые вы можете использовать. Вам нужно будет предоставить код, чтобы заменить комментарий `/* Some condition that returns true if the user doesn't meet the membership requirement */` в примере кода.

---

<div class="post-metadata">

### Author: ![markwill](https://avatars.discourse-cdn.com/v4/letter/m/90db22/32.png) [@markwill](https://meta.discourse.org/u/markwill)
#### Post date: [15.Август.2019 16:14:42 UTC](https://meta.discourse.org/t/no-approve-button-for-new-user/125725/13 "2019-08-15T16:14:42Z")

</div>

Отлично!! Мне кажется, я неправильно понял эту тему, когда просматривал её ранее, но теперь вижу, что это именно то, что мне нужно. В ожидании реализации и тестирования (знаменитые последние слова!) я думаю, что всё готово!

Спасибо.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [15.Август.2019 16:35:10 UTC](https://meta.discourse.org/t/no-approve-button-for-new-user/125725/14 "2019-08-15T16:35:10Z")

</div>

> [@markwill](#):
>
> Я, наверное, смогу сделать это сам со временем, и уже занимаюсь изучением.

Я так и думал… и…

> [@pfaffman](#):
>
> и доступны некоторые примеры

> [@simon](#):
>
> Да, в этой теме описывается, как сделать то, что вы ищете: [Как запретить некоторым пользователям WP входить в Discourse](https://meta.discourse.org/t/how-to-prevent-some-wp-users-from-being-able-to-login-to-discourse/93234)

Я же говорил! 😉

Рад, что вы уже на пути к решению проблемы.

---

<div class="post-metadata">

### Author: ![markwill](https://avatars.discourse-cdn.com/v4/letter/m/90db22/32.png) [@markwill](https://meta.discourse.org/u/markwill)
#### Post date: [15.Август.2019 16:40:30 UTC](https://meta.discourse.org/t/no-approve-button-for-new-user/125725/15 "2019-08-15T16:40:30Z")

</div>

Верно. Прошу прощения, что упустил это, @pfaffman, и спасибо за помощь. Я перехожу к настройке зеркального VPS с Discourse для связи с моим зеркальным веб-сайтом и, при удачном стечении обстоятельств, надеюсь запустить всё в ближайшее время.
