Частная категория для каждого пользователя

Всем привет :wave:

:dart: Что я ищу

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

:bulb: Решение, которое я придумал

Группа и категория для каждого пользователя, реализуемые следующим образом:

:spiral_notepad: Процесс

Следующая последовательность действий происходит при создании пользователя:

  1. Создаётся пользователь с именем user.
  2. Автоматически создаётся группа с именем user-group со следующими настройками:
    • Владелец: user
    • Участники: user
    • Доступ: Все три галочки сняты
    • Видимость: Только владельцы
    • Упоминания и сообщения: Никто
  3. Автоматически создаётся категория с именем user category со следующими настройками:
    • Безопасность: Только группа user-group имеет право просматривать, создавать и отвечать.
    • Настройки/приоритет поиска: Игнорировать

:chart_with_upwards_trend: Результат после применения описанного процесса

Я вручную протестировал этот подход в тестовой среде с двумя пользователями: userA и userB.

Результат таков: в списке категорий оба пользователя видят «глобальные» категории, но userA также видит категорию userA space, а userBuserB space. При этом userA не видит userB space, а userB не видит userA space.

userA создал тему внутри userA space. Затем я скопировал URL этой темы в сессии userB, и система не показала ничего, указывающего на то, что тема не существует или является частной.

:green_circle: Плюсы

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

:red_circle: Минусы и опасения

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

  • Столько же групп, сколько и пользователей: Не повлияет ли это на производительность?
    Это, вероятно, зависит от количества пользователей, однако я не хочу дойти до точки, где это решение станет ограничением для сообщества в плане производительности форума.

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

:thinking: Обходные пути и альтернативы

Существует ли другой способ достичь того, что я ищу? Есть ли какие-либо обходные пути для описанной функциональности? Не слишком ли я усложняю задачу, пытаясь найти решение для случая использования, который не является типичным для программного обеспечения форума? Я открыт к другим точкам зрения.

Что вы думаете?
Спасибо.

Почему бы им просто не отправить самим себе личное сообщение?

Потрясающий потенциальный подход!

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

И нет, я не считаю, что наличие множества категорий является очень практичным решением.

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

Думаю, настройка «разрешить теги для групп» решит эту проблему, но да, почтовые ящики… :laughing:

Для этого существует настройка сайта «pm tags allowed for groups».

Мы полностью согласны с этим!

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

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

Здесь можно запретить администраторам просматривать:

При таком подходе вам нужно создать всего одну категорию. Этот метод очень прост и не требует постоянного участия.

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

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

Учитывая этот сценарий:
Тема 1 ссылается на тему 2.

Случай 1: Обычное использование с типичными публичными темами
Пользователь читает тему 1 и видит ссылку на тему 2. Пользователь переходит по ссылке и начинает читать тему 2. В конце первого сообщения темы 2 есть список ссылок на другие темы, где упоминается тема 2, поэтому одна из ссылок в этом списке — тема 1.

Случай 2: Личные сообщения
Пользователь создает тему 2 как личное сообщение самому себе. Позже он создает тему 1 также как личное сообщение самому себе и делает ссылку на тему 2. Прежде всего, инструмент для вставки ссылок не учитывает личные сообщения. Это понятно. Однако после вставки ссылки в теме 2 не появляется список тем, из которых на тему 2 есть ссылки.

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

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


Краткое резюме

Личные сообщения самому себе — самое простое решение, но с одним крупным недостатком: отсутствием функциональности обратных ссылок. И двумя незначительными проблемами:

  • Инструмент вставки ссылок не отображает другие личные темы.
  • Личные сообщения отображаются в папке “Отправленные”, а не во входящих.

Есть ли способ исправить это? В противном случае это не большая проблема.
Спасибо, ребята.

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

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

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

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

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

Привет :blob_wave: и добро пожаловать в Discourse Meta :slight_smile:

Хочу лишь повторить то, что уже сказали другие. Вы вполне можете реализовать описанное вами с помощью личных сообщений (ЛС) и тегов. У меня настроен личный рабочий ящик, который работает именно так. У меня есть несколько личных сообщений самому себе, которые служат обложками для других ЛС. Я использую теги как подпапки, но даже лучше, потому что один пост может относиться к нескольким тегам. Ссылки на нужные мне инструменты в моём личном ящике (ЛС самому себе) находятся в боковом меню в разделе пользовательского меню.

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

Мне нравится ваш подход использовать некоторые PM в качестве точек входа для других PM. Эта концепция похожа на MOCs в мире систем управления личными знаниями (PKM), таких как Obsidian.

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

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

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

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

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

Я не стремлюсь создать какой-либо шаблон системы папок для ящиков пользователей. Моя цель — просто дать им знания о том, как использовать ЛС для хранения личных заметок, если они не хотят углубляться в более сложные инструменты.

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

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

Спасибо всем за ваши комментарии и советы.