Категории: публичные, только для авторизованных и с ограниченным доступом

Существует ли способ различать категории, видимые только авторизованным пользователям, и категории, видимые только определенным группам?

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

3 лайка

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

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

Мне кажется, что напоминание не нужно для категорий, доступных только авторизованным пользователям, поскольку очень мало категорий на моём сайте видны анонимным пользователям. (Вместо этого я помечаю общедоступные категории иконкой :eye:, чтобы напомнить пользователям, что они находятся в открытом доступе интернета.)

Для категорий с более строгими ограничениями, чем «необходимо быть авторизованным», может быть менее очевидно, что они предназначены для более или менее эксклюзивной группы. Новые пользователи могли получить доступ к группе сразу после создания аккаунта. Таким образом, с первого дня они видят другой набор категорий по сравнению с другими пользователями, но если название категории или её описание (если они его прочитают) не содержат подсказки, они не смогут понять, что категория видна только некоторым. Старые пользователи могут забыть, что доступ к этой конкретной категории, которую им когда-то предоставили, на самом деле не доступен всем.

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

2 лайка

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

1 лайк

Тем временем я решил указать перед каждой категорией уровень доступа. Для публичных категорий (доступ для анонимных пользователей) я использую значок глобуса, для категорий, доступных зарегистрированным пользователям — значок «группа», а для остальных ограниченных категорий — значок «друзья».

2 лайка

Как вам это удалось? Я считаю, что это отличная идея, и поскольку мы постепенно делаем наши категории общедоступными, я бы хотел реализовать что-то подобное для них. Мне нравится иконка глобуса!

Я бы хотел реализовать следующее:

  1. :globe_with_meridians: для категорий, доступных everyone
  2. Без иконки для категорий, доступных trust_level_0
  3. :unlock: для всех остальных категорий

Это TC должно сработать, Нейтан.

Да, именно это я и использую. В поле svg-icons введите users, user-friends и любой символ, который вы хотите использовать для публичного доступа (для глобуса я использую иконку от Freepik, которую я добавил в свой Discourse через спрайт, загруженный в компонент темы).

Я скрываю иконку замка с помощью этого CSS, добавленного в компонент темы:

// иконка замка для приватных категорий
.category .badge-category.clear-badge.restricted .d-icon-lock, 
.badge-category.clear-badge.restricted .d-icon-lock,
.category-list .category-text-title .d-icon-lock,
.category-box-heading .d-icon-lock {
    display:none;
}
1 лайк

Я придумал вариант вашей идеи, который позволяет скрывать иконку замка выборочно только для тех категорий, которые доступны TL_0 (вручную).

Так как для этого нет удобного CSS-класса, вам нужно обращаться к свойствам подсказки (title) и ссылки (href) вместо этого, и делать это для каждой категории, для которой вы хотите скрыть иконку замка:

// скрывает иконки замка для категории ux
[title = "ux"], [href = "/c/ux/9"] {
     .d-icon {
         display: none;
     }
}

Конечно, это будет конфликтовать с любыми иконками от компонента «Иконки категорий», но это можно исправить, обращаясь к .d-icon-lock (или к той иконке, которую вы используете) вместо .d-icon для этой категории.


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

2 лайка

Небольшое обновление, чтобы вы могли использовать это с боковой панелью:

// скрывает значки замка для категории ux
.sidebar-section-link-ux .prefix-badge {
    display: none;
}
.category-ux .list-controls, [href = "/c/ux/9"] {
    .d-icon-lock,  {
        display: none;
    }
}
1 лайк

Для выпадающих меню выбора категории я добавил ещё одну цель:

.category-ux .list-controls, [href = "/c/ux/9"], [data-value = "9"] {
    .d-icon-lock,  {
        display: none;
    }
}

Также для каналов чата предлагаю использовать: [href *= "chat/channel/9/"]

1 лайк