Добавление пользователей напрямую в категории

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

В последнее время я использую форум для самых разных странных задач.

Я создаю категории только для чтения в личных целях, с доступом только для одного пользователя (чтобы упростить задачу всем, кто не хочет создавать полноценную учётную запись). Иногда пользователь создаёт учётную запись, и ему также предоставляются права на запись. Однако, как выяснилось, для этого необходимо создать группы category_xyz_see и category_xyz_write. Ну что ж, это просто дополнительная работа.

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

Я не пробовал подход с приглашениями (через SSO, хотя, вероятно, эта проблема уже исправлена).

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

1 лайк

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

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

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

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

Если подумать, определение ЛС — это тема с индивидуальным контролем доступа. Они отображаются в разных местах интерфейса, но наличие обоих вариантов было бы крайне запутанным.

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

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

2 лайка

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

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

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

Умер человек, и у него много наследников.
Создали пользователя с правами только на чтение для удобства доступа (добавили этого пользователя в группу «Просмотр»).
Некоторые люди, уже зарегистрированные на сайте, также были добавлены в эту группу (чтобы им не пришлось выходить из системы и переключать учётные записи).
Верхняя категория содержит общую информацию: похороны и т.д.
Одна подкатегория содержит финансовую информацию (которая пока неясна, поэтому не будет доступна всем, пока не будут решены все вопросы). Добавление здесь доверенного лица (которое может быть даже не наследником) не означает, что ему нужен (или даже следует предоставить) доступ к верхней категории.

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

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

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

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

У нас уже есть специальные группы, которые получают особое обращение, например, trust levels (уровни доверия), everyone (все) и moderator/admin (модератор/администратор). Возможно, мы могли бы также разрешить создание специальных групп, используемых исключительно для доступа к категориям «за кулисами», непосредственно из настроек безопасности категории? Например:

Для категории foo:

  • предоставить интерфейс для выбора пользователей и предоставления им доступа к просмотру, ответам и созданию тем;
  • при выборе пользователей создавать группы foo_see, foo_reply, foo_create и добавлять в них выбранных пользователей;
  • предоставить интерфейс для удаления пользователей и изменения их доступа к просмотру, ответам и созданию тем;
  • если включена модерация категории, также разрешить указание пользователей в качестве модераторов категории и создать для них группу foo_moderator;
  • группы доступа foo не должны отображаться на странице /groups и не должны предлагаться с помощью @ в редакторе сообщений;
  • группы доступа foo привязаны к конкретной категории foo и не могут использоваться для доступа к другим категориям;
  • подкатегории foo могут автоматически получать доступ к foo вместо текущей обработки циклических ошибок, которая запутывает пользователей.

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

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

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

1 лайк

Интересно. Всё ещё кажется немного запутанным (возможно, потому что построено поверх существующего и поэтому необходимо). Группы уже кажутся перегруженными (всегда теряешься, кто к чему относится — да, плохое название, я знаю). Поэтому подход типа «foo» должен быть в основном виден из категории. По крайней мере, нужен чекбокс, чтобы по умолчанию показывать их в группах.

Жаль, что Discourse создан с использованием инструментов, с которыми я совершенно не знаком. В лучшем случае я смогу создать утилиты, которые обращаются к базе данных напрямую. Что другие люди, впрочем, делают со своими скриптами гораздо лучше. Ну что ж, возможно, когда я выйду на пенсию :).