Member 14817567 Ответов: 1

Rails complex model association, общий документ между пользователями и командами пользователей


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

- У меня есть модель пользователя и модель документа
- Пользователь А может создать документ. Теперь он является администратором документа.
1. затем он может добавить других отдельных пользователей в свой документ и назначить им разрешения, например: (редактор, просмотрщик, администраторы)
2. Он также может создать команду, группу пользователей и добавить несколько команд в свой документ. Каждый пользователь в команде, которую пользователь А добавил в свой документ, также будет иметь определенный уровень разрешений. Пользователь может принадлежать ко многим командам.
Я немного запутался в ассоциациях, которые мне придется настроить.

Что я уже пробовал:

This is the code I have so far, which has not incorporated the team aspect:

<pre>
 class User < ApplicationRecord
   has_many :participations
   has_many :documents, through: :participations
 end

 class Document < ApplicationRecord
   has_many :participations
   has_many :users, through: :participations
 end

 class Participation < ApplicationRecord
   belongs_to :user
   belongs_to :document
   enum role: [ :admin, :editor, :viewer ]
 end

1 Ответов

Рейтинг:
2

MadMyche

То, что вы предлагаете, будет гибридом.

Авторизация На Основе Ролей Пользователи могут быть назначены на различные роли (например, DocumentAdmin), а затем эти роли сопоставляются с документами

Авторизация На Уровне Пользователя также известный как список контроля доступа Разрешения пользователя назначаются непосредственно документу.

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