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

**URL:** https://meta.discourse.org/t/can-i-make-a-theme-available-to-specific-user-groups-only/362653
**Category:** Development
**Tags:** horizon-theme
**Created:** [20.Апрель.2025 01:53:12 UTC](https://meta.discourse.org/t/can-i-make-a-theme-available-to-specific-user-groups-only/362653 "2025-04-20T01:53:12Z")
**Posts on this page:** 12
**Page:** 1

<div class="post-metadata">

### Author: ![SubStrider](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/substrider/32/512604_2.png) [@SubStrider](https://meta.discourse.org/u/SubStrider)
#### Post date: [20.Апрель.2025 01:53:12 UTC](https://meta.discourse.org/t/can-i-make-a-theme-available-to-specific-user-groups-only/362653/1 "2025-04-20T01:53:12Z")

</div>

Возможно ли сделать тему доступной только для определённых групп пользователей? В общем, я хотел бы иметь «премиум-темы» для платных пользователей.

Аналогично в теме Horizon можно сделать доступными цветовые схемы только для определённых групп пользователей.

Понимаю, что это может быть невозможно из коробки, но если я захочу это реализовать, с чем мне нужно будет поработать?

PS: Я видел похожую тему, но она была опубликована 7 лет назад. Надеюсь, что с тех пор что-то изменилось или хотя бы стало проще создать собственный плагин для этого. Даже если потребуется кастомный плагин, пожалуйста, укажите мне дальнейшие шаги, чтобы я мог попробовать это сделать.

---

<div class="post-metadata">

### Author: ![Lilly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lilly/32/575047_2.png) [@Lilly](https://meta.discourse.org/u/Lilly)
#### Post date: [20.Апрель.2025 01:58:56 UTC](https://meta.discourse.org/t/can-i-make-a-theme-available-to-specific-user-groups-only/362653/3 "2025-04-20T01:58:56Z")

</div>

не без разработки плагина

> [@Restrict themes to certain groups?](https://meta.discourse.org/t/restrict-themes-to-certain-groups/87868/6?u=lilly):
>
> As a starting point, you could have a look at how theme access is overridden for the [theme-creator.discourse.org](http://theme-creator.discourse.org) system: The allow\_theme? method is used in Discourse’s application controller here: As Sam said, what you want to do is possible, but it will require a fair amount of development work to get it working smoothly

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [20.Апрель.2025 02:17:21 UTC](https://meta.discourse.org/t/can-i-make-a-theme-available-to-specific-user-groups-only/362653/4 "2025-04-20T02:17:21Z")

</div>

Ссылка на тему, которая помогла задавшему похожий вопрос:

> [@Show/hide themes for specific groups?](https://meta.discourse.org/t/show-hide-themes-for-specific-groups/115459):
>
> I’d like to offer a patreon tier that allows users access to particular themes. Is there any way of showing/hiding themes from particular groups?

---

<div class="post-metadata">

### Author: ![SubStrider](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/substrider/32/512604_2.png) [@SubStrider](https://meta.discourse.org/u/SubStrider)
#### Post date: [20.Апрель.2025 02:28:06 UTC](https://meta.discourse.org/t/can-i-make-a-theme-available-to-specific-user-groups-only/362653/5 "2025-04-20T02:28:06Z")

</div>

Это было решение только на CSS, которое не будет работать, если вы ограничиваете доступ для неоплачивающих участников. Это решение скрывало доступ для платящих участников.

---

<div class="post-metadata">

### Author: ![SubStrider](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/substrider/32/512604_2.png) [@SubStrider](https://meta.discourse.org/u/SubStrider)
#### Post date: [20.Апрель.2025 02:28:51 UTC](https://meta.discourse.org/t/can-i-make-a-theme-available-to-specific-user-groups-only/362653/6 "2025-04-20T02:28:51Z")

</div>

Да, я видел это раньше. Значит, концепция и подход остались прежними? Спрашиваю, потому что эта тема уже 7 лет.

---

<div class="post-metadata">

### Author: ![Lilly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lilly/32/575047_2.png) [@Lilly](https://meta.discourse.org/u/Lilly)
#### Post date: [20.Апрель.2025 03:50:07 UTC](https://meta.discourse.org/t/can-i-make-a-theme-available-to-specific-user-groups-only/362653/7 "2025-04-20T03:50:07Z")

</div>

Что ж, создатель тем всё ещё работает 🙂

---

<div class="post-metadata">

### Author: ![nat](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nat/32/235063_2.png) [@nat](https://meta.discourse.org/u/nat)
#### Post date: [21.Апрель.2025 02:30:34 UTC](https://meta.discourse.org/t/can-i-make-a-theme-available-to-specific-user-groups-only/362653/8 "2025-04-21T02:30:34Z")

</div>

Сообщение было перемещено в новую тему: [Изменить отображение заголовков пользователей, чтобы они выглядели как «команда» или «Тестер» сверху](https://meta.discourse.org/t/adjust-user-titles-to-look-like-team-or-tester-above/362748)

---

<div class="post-metadata">

### Author: ![nat](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nat/32/235063_2.png) [@nat](https://meta.discourse.org/u/nat)
#### Post date: [21.Апрель.2025 06:37:53 UTC](https://meta.discourse.org/t/can-i-make-a-theme-available-to-specific-user-groups-only/362653/9 "2025-04-21T06:37:53Z")

</div>

Пост был объединен с существующей темой: [Изменить отображение заголовков пользователей, чтобы они выглядели как «команда» или «Тестировщик» сверху](https://meta.discourse.org/t/adjust-user-titles-to-look-like-team-or-tester-above/362748/2)

---

<div class="post-metadata">

### Author: ![Heliosurge](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/heliosurge/32/571810_2.png) [@Heliosurge](https://meta.discourse.org/u/Heliosurge)
#### Post date: [21.Апрель.2025 00:08:52 UTC](https://meta.discourse.org/t/can-i-make-a-theme-available-to-specific-user-groups-only/362653/10 "2025-04-21T00:08:52Z")

</div>

Это решение на основе CSS, которое позволит скрыть премиум-темы в селекторе от пользователей. Предварительное условие: пользователь должен выбрать основную группу. Хотя также существует TC, который добавляет все группы пользователей в качестве классов.

> [@awesomerobot](#):
>
> Например, если я хочу скрыть тему «Dark Theme» от всех, _кроме_ тех, кто входит в группу Staff, я могу сделать следующее:
> 
> ```plaintext
> body:not(.staff) { 
> .user-preferences .select-kit-row[data-name="Dark Theme"] {
> display: none;
> }
> }
> 
> ```
> 
> Теперь «Dark Theme» не будет отображаться в выпадающем меню пользовательских настроек, если вы не состоите в группе Staff.
> 
> Кто-то может найти способ обойти это через веб-инспектор и включить эти темы, но, думаю, большинство людей даже не станут искать такой способ.
> 
> * * *
> 
> Тем не менее, в будущем мы определённо должны рассмотреть возможность внедрения функций «монетизации», которые позволят администратору легко стимулировать поддержку с помощью тем, титулов, наборов эмодзи и т. д.

> [@CSS Classes for Current User's Groups](https://meta.discourse.org/t/css-classes-for-current-users-groups/226068):
>
> discourse2Summary CSS Classes for Current User’s Groups adds the groups that a member is a part of as CSS classes on the \<body\> tag.eyeglassesPreview [Preview on theme-creator.discourse.org](https://discourse.theme-creator.io/theme/Johani/user-groups-css-classes)hammer_and_wrenchRepository Link [https://github.com/discourse/discourse-groups-css-classes-in-body](https://github.com/discourse/discourse-groups-css-classes-in-body)open_bookNew to Discourse Themes? [Beginner’s guide to using Discourse Themes](https://meta.discourse.org/t/beginners-guide-to-using-discourse-themes/91966) Install this theme component Before: [image] After: [image] Discourse only adds the current us…

---

<div class="post-metadata">

### Author: ![SubStrider](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/substrider/32/512604_2.png) [@SubStrider](https://meta.discourse.org/u/SubStrider)
#### Post date: [21.Апрель.2025 04:10:40 UTC](https://meta.discourse.org/t/can-i-make-a-theme-available-to-specific-user-groups-only/362653/11 "2025-04-21T04:10:40Z")

</div>

> [@awesomerobot](#):
>
> Кто-то мог бы найти способ покопаться в инспекторе веб-страницы и включить эти темы, но, думаю, большинство людей даже не стали бы смотреть.

Я веду техническое сообщество, там все бы разобрались! 😅

> [@awesomerobot](#):
>
> Мы определенно должны рассмотреть возможность добавления функций «монетизации», которые позволят администратору легко стимулировать поддержку через темы, заголовки, наборы эмодзи и т. д.

О да… это было бы потрясающе.

---

<div class="post-metadata">

### Author: ![Heliosurge](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/heliosurge/32/571810_2.png) [@Heliosurge](https://meta.discourse.org/u/Heliosurge)
#### Post date: [21.Апрель.2025 05:47:12 UTC](https://meta.discourse.org/t/can-i-make-a-theme-available-to-specific-user-groups-only/362653/12 "2025-04-21T05:47:12Z")

</div>

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

Однако, если ваше сообщество состоит из продвинутых пользователей, они могут создать скрипт Tampermonkey и настроить тему прямо в своём браузере.

---

<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: [21.Апрель.2025 18:43:19 UTC](https://meta.discourse.org/t/can-i-make-a-theme-available-to-specific-user-groups-only/362653/13 "2025-04-21T18:43:19Z")

</div>

Простого способа предотвратить выбор темы пользователями нет, но можно создать тему, которая проверяет группу текущего пользователя и, например, перенаправляет людей на страницу с предложением вернуть прежнюю тему или оформить подписку.
