# Группа «Все» в разрешениях категорий на неанглоязычных форумах

**URL:** https://meta.discourse.org/t/everyone-group-in-category-permissions-in-non-english-forums/335600
**Category:** Bug
**Tags:** pr-welcome
**Created:** [11.Ноябрь.2024 14:29:58 UTC](https://meta.discourse.org/t/everyone-group-in-category-permissions-in-non-english-forums/335600 "2024-11-11T14:29:58Z")
**Posts on this page:** 10
**Page:** 1

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [11.Ноябрь.2024 14:29:59 UTC](https://meta.discourse.org/t/everyone-group-in-category-permissions-in-non-english-forums/335600/1 "2024-11-11T14:29:59Z")

</div>

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

 ![Screenshot_20241110_004257_Firefox](https://global.discourse-cdn.com/meta/original/4X/c/0/6/c06ccc7f3fb3a580b3aaaa27ff45bb6d19762f20.jpeg) ![Screenshot_20241110_174625_Firefox](https://global.discourse-cdn.com/meta/original/4X/7/6/f/76fa1ea2a0b7ab640be51878b64c496eaffaa676.jpeg) Первое, что я заметил, — это баннер внизу. Затем я обнаружил, что немецкое слово «jeder» ведёт на ссылку `/g/jeder` (которая не работает, так как такой группы не существует), тогда как английское «everyone» не является ссылкой. В-третьих, я узнал, что при добавлении другой группы, например «moderators» на английском, все разрешения добавляются по умолчанию, и вы не можете их удалить, в то время как для группы «everyone» это разрешено. В немецком варианте эта дополнительная подсказка не работает: вы можете легко удалить разрешения, даже если для группы «everyone» это разрешено. Журналы действий сотрудников тоже немного запутывают, потому что кажется, что я изменил группу, хотя я этого не делал; я лишь нажал «Сохранить», а в логе группа «everyone» отображается на двух языках: ![image](https://global.discourse-cdn.com/meta/original/4X/f/d/8/fd8fcd2a023a285a5fd25b341e379ef695635558.png)

---

<div class="post-metadata">

### Author: ![zogstrip](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/zogstrip/32/512781_2.png) [@zogstrip](https://meta.discourse.org/u/zogstrip)
#### Post date: [13.Январь.2025 10:32:26 UTC](https://meta.discourse.org/t/everyone-group-in-category-permissions-in-non-english-forums/335600/4 "2025-01-13T10:32:26Z")

</div>

Я на 95% уверен (имеется в виду, что я не проверял 😅), что это будет исправлено в

> <https://github.com/discourse/discourse/commit/03119312b57b308681b7f871468beaf2660b876d>
>
> The "Tag Groups Form" component was using group names to handle
> permissions. Thi…s works just fine when the default locale is "English"
> but breaks as soon as it's changed to a different locale.
> 
> The fix is to use the group id's for handling the permissions instead of
> the group name.
> 
> Reported in https://meta.discourse.org/t/221849

---

<div class="post-metadata">

### Author: ![zogstrip](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/zogstrip/32/512781_2.png) [@zogstrip](https://meta.discourse.org/u/zogstrip)
#### Post date: [14.Январь.2025 07:00:29 UTC](https://meta.discourse.org/t/everyone-group-in-category-permissions-in-non-english-forums/335600/6 "2025-01-14T07:00:29Z")

</div>

Эта тема была автоматически закрыта через 20 часов. Новые ответы больше не принимаются.

---

<div class="post-metadata">

### Author: ![zogstrip](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/zogstrip/32/512781_2.png) [@zogstrip](https://meta.discourse.org/u/zogstrip)
#### Post date: [16.Январь.2025 08:30:11 UTC](https://meta.discourse.org/t/everyone-group-in-category-permissions-in-non-english-forums/335600/7 "2025-01-16T08:30:11Z")

</div>



---

<div class="post-metadata">

### Author: ![zogstrip](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/zogstrip/32/512781_2.png) [@zogstrip](https://meta.discourse.org/u/zogstrip)
#### Post date: [16.Январь.2025 08:30:40 UTC](https://meta.discourse.org/t/everyone-group-in-category-permissions-in-non-english-forums/335600/8 "2025-01-16T08:30:40Z")

</div>

Возвращаю, потому что, конечно же, я ошибался 🤦‍♂️

Спасибо @Moin за тестирование. Я исправлю это.

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [11.Декабрь.2025 23:02:12 UTC](https://meta.discourse.org/t/everyone-group-in-category-permissions-in-non-english-forums/335600/11 "2025-12-11T23:02:12Z")

</div>

Так как это теперь #pr-welcome, считаю целесообразным поделиться тем, что я отправил zogstrip, когда сообщил ему, что исправление не сработало.

Думаю, проблема в том, что ссылка на “jeder” не подавляется так же, как ссылка на “everyone”, из-за того, что “everyone” жестко прописана в проверке:

> <https://github.com/discourse/discourse/blob/dd384fedaa42bcdaedb5975bc5bb4a830604fafb/frontend/discourse/app/components/category-permission-row.gjs#L131-L135>

> <https://github.com/discourse/discourse/blob/dd384fedaa42bcdaedb5975bc5bb4a830604fafb/frontend/discourse/app/components/category-permission-row.gjs#L43-L45>

> <https://github.com/discourse/discourse/blob/dd384fedaa42bcdaedb5975bc5bb4a830604fafb/frontend/discourse/app/components/category-permission-row.gjs#L9-L9>

Аналогичным образом “everyone” также жестко прописана для предупреждения, отображаемого ниже, и для отключения флажков:

> <https://github.com/discourse/discourse/blob/dd384fedaa42bcdaedb5975bc5bb4a830604fafb/frontend/discourse/admin/components/edit-category-security.gjs#L19-L21>

Считаю, что самым надежным решением будет проверка по ID. Если использовать название группы “everyone” на основе языка по умолчанию форума, то при смене языка форума и выполнении задачи DBConsistency имена всё равно не будут совпадать.

---

<div class="post-metadata">

### Author: ![zogstrip](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/zogstrip/32/512781_2.png) [@zogstrip](https://meta.discourse.org/u/zogstrip)
#### Post date: [12.Декабрь.2025 11:23:12 UTC](https://meta.discourse.org/t/everyone-group-in-category-permissions-in-non-english-forums/335600/13 "2025-12-12T11:23:12Z")

</div>

Надеюсь, в этот раз всё получится? 😅

> <https://github.com/discourse/discourse/pull/36656>
>
> In non-English forums, the "everyone" group name is localized (e.g., "jeder" in …German). The frontend was comparing against the hardcoded English string "everyone", which caused several issues:
> 
> \- Broken links (linking to \`/g/jeder\` instead of showing plain text)
> \- Permission checkboxes not being properly disabled
> \- Permission protection logic failing for the everyone group
> 
> The fix uses \`group\_id\` instead of \`group\_name\` for identifying the "everyone" group, since the ID (0) is constant regardless of locale.
> 
> Changes:
> \- Add \`group\_id\` to category permissions in CategorySerializer
> \- Update frontend to compare against \`AUTO\_GROUPS.everyone.id\`
> \- Replace all hardcoded group ID checks (0) with \`AUTO\_GROUPS.everyone.id\`
> \- Replace hardcoded group name checks with \`AUTO\_GROUPS.\*.name\`
> 
> Ref - meta/t/335600

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [13.Декабрь.2025 21:56:45 UTC](https://meta.discourse.org/t/everyone-group-in-category-permissions-in-non-english-forums/335600/14 "2025-12-13T21:56:45Z")

</div>

Отчасти 😐

Баннер, отключенные флажки и ссылка в группе «все» исправлены.

 ![image](https://global.discourse-cdn.com/meta/original/4X/a/e/0/ae066382acfce3ac77d54040657e4557d0d5e3ba.png)

Однако журналы действий персонала всё ещё ведут себя так, будто изменение разрешений произошло.  
Если локаль — немецкая, то группа называется «jeder». Если я сохраню категорию, ничего не меняя, в журнале действий персонала я вижу следующее:

 ![image](https://global.discourse-cdn.com/meta/original/4X/5/1/5/515cb5f12aaa7e05763e538071700c6399775e8c.png)

Если локаль — английская и название группы «everyone», то при сохранении категории изменение разрешений не фиксируется.  
 ![image](https://cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/e/f/b/efbf76f25b28deda68aba1ec7a4755042697df61_2_690x61.png)

Дело не в том, что при последнем сохранении категории её название было другим. Я могу несколько раз нажать «Сохранить», и каждый раз в журнале будет указано, что разрешения изменились с «everyone» на «jeder».

 ![image](https://global.discourse-cdn.com/meta/original/4X/d/b/8/db8d9b64d6a0f2c7d3c7f8d0ac2bd4ee5632ecb4.png)

---

<div class="post-metadata">

### Author: ![zogstrip](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/zogstrip/32/512781_2.png) [@zogstrip](https://meta.discourse.org/u/zogstrip)
#### Post date: [13.Декабрь.2025 22:23:05 UTC](https://meta.discourse.org/t/everyone-group-in-category-permissions-in-non-english-forums/335600/15 "2025-12-13T22:23:05Z")

</div>

Отличное замечание, это должно исправить проблему

> <https://github.com/discourse/discourse/pull/36676>
>
> When saving a category with default "everyone" permissions in non-English forums…, staff action logs incorrectly showed a permission change even when nothing changed.
> 
> The issue occurred because the backend fallback for empty permissions used the hardcoded English string "everyone", but the frontend sends the localized group name (e.g., "jeder" in German). This mismatch triggered false log entries.
> 
> Changed the fallback in categories\_controller.rb to use Group\[:everyone\].name which returns the actual localized group name from the database.
> 
> Ref - https://meta.discoure.org/t/335600/14

---

<div class="post-metadata">

### Author: ![zogstrip](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/zogstrip/32/512781_2.png) [@zogstrip](https://meta.discourse.org/u/zogstrip)
#### Post date: [17.Декабрь.2025 07:00:37 UTC](https://meta.discourse.org/t/everyone-group-in-category-permissions-in-non-english-forums/335600/16 "2025-12-17T07:00:37Z")

</div>

Эта тема была автоматически закрыта через 14 часов. Новые ответы больше не принимаются.
