rp-community
Назначение
Структура форума и владение: разделы, темы, кто их создал и кто может их видеть. Обсуждение внутри темы находится не здесь — тема содержит , а сообщения хранятся в threadId.rp-threads
Граница ответственности
Владеет разделами и темами. Не вызывает или какой-либо другой репозиторий: rp-threads создаёт createTopic и возвращает его, а вызывающая сторона сама регистрирует ветку и записывает первое сообщение.threadId
Идентификация и авторство
никогда не принимается от вызывающей стороны. Он считывается из проверенного токена через createdBy, который getCurrentWorkspaceContext() предпочитает любым данным, заявленным в конверте. Идентификаторы тем и веток по той же причине создаются здесь — идентификатор, который может выбрать клиент, можно украсть, а таблица тегов доступа не хранит тип объекта, чтобы обнаружить такое столкновение.messaging-backend
Видимость
Разделы и темы содержат столбец (visibility | public | authenticated | private), и новая тема наследует значение своего раздела, если только не запрашивает более узкое. Теги, лежащие в основе tagged, должны находиться в общей связи tagged, описанной в access_tags; эта часть ещё не реализована, поэтому сейчас значение access-control.md сохраняется, но не применяется.visibility
Блокировка
— единственное место, где можно обеспечить блокировку: touchTopicActivity принимает сообщение, не зная о существовании тем, поэтому экран вызывает этот метод после публикации и считает отказ неудачной публикацией.rp-threads
Прямые зависимости модуля
,back-core,nrpcg-community
Принадлежность решению
communications
Исходный код
modules/repositories/communications/rp-community