Почему мы не можем создавать подкатегории для модов в категории Staff?

Вот что мы получаем при попытке создать подкатегорию для администраторов (та же проблема и для модераторов) в категории «Staff»:

«Любая группа, которой разрешен доступ к подкатегории, должна также иметь доступ к родительской категории. Следующие группы имеют доступ к одной из подкатегорий, но не имеют доступа к родительской категории: администраторы».

Однако:

  • модераторы имеют доступ к категории «Staff», как и администраторы. Значит, мы должны иметь возможность это сделать.

  • Я администрирую другой форум, существующий уже несколько лет, где в категории «Staff» есть подкатегории только для администраторов или только для модераторов.

Что думаете?

[EDIT: просто для интереса я сделал скриншот сообщения, которое появляется при попытке создать категорию только для администраторов:

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

И, конечно, вы не можете отредактировать раздел безопасности категории «Staff», чтобы явно добавить модераторов и администраторов в общую категорию.]

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

Вот что я думал, поэтому и удалил своё сообщение, но перечитайте сообщение об ошибке ещё раз:

«Любая группа, которой разрешён доступ к подкатегории, должна также иметь доступ к родительской категории. Следующие группы имеют доступ к одной из подкатегорий, но не имеют доступа к родительской категории: модераторы».

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

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

Я думаю, что проблема возникает из-за того, что права доступа определяются на уровне групп, а не возможностей.

Модератор входит одновременно в группы staff и moderator.

Но если бы существовала категория staff и подкатегория moderators, что бы произошло с пользователем, который принадлежит только к группе moderator? Он мог бы получить доступ к подкатегории, но не к родительской категории, а Discourse не допускает такой ситуации.

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

Кроме того, это было бы бессмысленно, поскольку группа staff включает как модераторов, так и администраторов, а у администраторов есть доступ ко всем категориям.

Кто-то должен это проверить. Но, по моему предположению, пользователя можно добавить в группу модераторов, не имея класса модератора.

В то время как для статуса Staff необходимы права модератора или администратора.

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

Хотя раньше это было возможно. И, исходя из правил прав доступа, это должно быть возможно.

Я думаю, что это так.

Есть вопросы, которые могут читать только администраторы из-за конфиденциальности и других причин. Поэтому нам нужны подкатегории, доступные только администраторам.

Подкатегории для модераторов созданы для удобства: они объединяют обсуждения тем, касающихся модераторов, в одном конкретном месте. Поскольку администраторы в любом случае видят всё, мы могли бы пометить их как предназначенные для модераторов, но сделать доступными для всего персонала, и это сработало бы. Это решило бы половину проблемы, хотя, конечно, только обманным путём.

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

Это неверно. Модераторы могут получать доступ к категории «Сотрудники». Поэтому наличие подкатегории для модераторов (или администраторов) должно быть разрешено в Discourse. Правило гласит: любая группа, имеющая доступ к подкатегории, должна также иметь доступ к родительской категории.

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

Прочитайте моё сообщение внимательнее: система устроена так, что работает правильно, и ошибка, с которой вы столкнулись, является нормальной. Доступ к форуму определяется исключительно группами.

Родовая категория «Staff» (Сотрудники), автоматически создаваемая Discourse, доступна только для группы Staff.
Если вы попытаетесь создать подкатегорию для группы Moderators (Модераторы), это не сработает, потому что родительская категория доступна только группе Staff, а не группе Moderators.

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

Вы всё ещё можете создать подкатегорию с названием «moderation» и настроить права доступа так: «сотрудники могут читать/создавать/отвечать» — это будет работать.

Это было бы бессмысленно, и вы можете создать категорию или подкатегорию, доступную только для группы Administrators (Администраторы), без каких-либо проблем.

Чтобы прояснить: я считаю, что это действительно причина проблемы. Изначально я планировал упомянуть это в качестве объяснения, но решил опубликовать пост без него…

Однако в таком случае это один из тех коварных багов, когда правила, которые вы разрабатываете, не отражают причины, по которым они были созданы. Совершенно очевидно, что модераторы являются частью персонала, как и администраторы, и именно поэтому они должны иметь возможность создавать подкатегории внутри раздела «Персонал».

Более того, на самом деле несколько лет назад было возможно создавать подкатегории в разделе «Персонал» только для администраторов или «только» для модераторов: это было вполне правильно.

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

Не в категории «Персонал». Посмотрите на скриншот выше.

Я имел в виду, что это не бессмысленно, как вы и сказали. :slight_smile:

Да, вы правы.
Если вы хотите создать такие подкатегории, я полагаю, вам следует создать родительскую категорию «Новости персонала» с настройками доступа: «Администраторы, сотрудники, модераторы могут читать/создавать сообщения/создавать категории».

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

Я могу добавлять пользователей в несколько групп. Тот факт, что некоторые пользователи принадлежат к Группе B и, возможно, также входят в Группу A, не означает, что доступ Группы A к категории автоматически даёт доступ Группе B. Однако права доступа к категориям на основе уровней доверия работают на минимальном уровне.

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

В Discourse не существует иерархических разрешений. «Персонал» — это специальная группа, включающая администраторов и модераторов. Подкатегории не могут указывать группы, которых нет в родительской категории, а у группы «Персонал» фиксированные списки контроля доступа (ACL). Как указано в описании категории «Персонал»:

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

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

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

Это крайне незначительная ошибка в системе предупреждений о разрешениях категорий, поскольку она не понимает, что staff == admins + moderators.
Не стоит тратить 12 сообщений на споры.

Вы можете обойти это, явно добавив admins и moderators в родительскую категорию как разрешённые группы. Учтите, что у администраторов всё равно будет доступ к подкатегории moderators.

Да. Но у модераторов не будет доступа к подкатегориям администраторов.

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

Моё предложение — простое решение. Сейчас при автоматическом создании категории «Staff» устанавливаются следующие права (и изменить их невозможно):
staff могут создавать/отвечать/просматривать

Вместо этого при автоматическом создании категории «Staff» в Discourse должны быть установлены следующие права:
staff могут создавать/отвечать/просматривать
admins могут создавать/отвечать/просматривать
moderators могут создавать/отвечать/просматривать

С таким простым исправлением эта ошибка будет устранена, нам не придётся создавать дополнительные и бесполезные категории, и категория «Staff» будет работать так, как работала ранее.

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

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

Но это не имеет ничего общего с обратной совместимостью. В этой теме вы — единственный человек, настаивающий на изменениях. То, что вы предлагаете, всё равно требует времени на разработку, тестирования и поддержки. Тысячи установок, работающих с текущей конфигурацией, означают, что существуют и тысячи команд администраторов/модераторов, которых устраивает текущее положение дел.

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

В категории «Сотрудники» нет ничего особенного, как уже предлагалось несколько месяцев назад, вы могли бы создать другую категорию с соответствующими правами доступа. Проблема решена.

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

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

Да, да и нет. Я много лет работал разработчиком и менеджером программного обеспечения, поэтому прекрасно понимаю, что требуется для исправления ошибки. Это исправление займёт несколько минут разработки, несколько часов тестирования и не потребит больше усилий на поддержку, чем текущая версия.

Ваш аргумент означает, что вообще нет смысла разрабатывать что-то новое. Тысячи команд используют Discourse в текущем виде — зачем тратить ещё хотя бы один час на разработку? Давайте используем логику в наших спорах, пожалуйста.

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

На самом деле вы ошибаетесь. Оно работало иначе и лучше в течение долгого времени. Вот пример существующей хостинговой системы Discourse, которой 4–5 лет, с родной категорией «Персонал», позволяющей создавать подкатегории для модераторов:

Суть не в моей системе. Мне не нужно это изменение, чтобы она работала. Суть в том, что каждая система Discourse поставляется с категорией «Персонал», возможности которой уступают тем, которыми она могла бы обладать, и которыми обладала ранее. Если Discourse тратит усилия на автоматическое создание категории «Персонал», почему бы не спроектировать её качественно и чисто? Я предлагаю что-то простое и лёгкое в реализации, что вернёт возможности, полезные для тех из нас, кто работает с несколькими категориями персонала. Команда свободна рассмотреть моё предложение — или нет.

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

Просто создайте заново категорию для сотрудников и переместите туда темы?