В настоящее время я работаю над проектом, в котором есть много потоков, которые могут создавать пользователи. Пользователи имеют разные разрешения для потоков, которые могут быть указаны пользователями с правами администратора. Пользователь должен быть добавлен в поток, прежде чем у него есть доступ к нему.
Когда пользователь добавляется в поток, ему предоставляются права на чтение, запись или права администратора. Пользователи также могут входить в группы. Затем эти группы могут быть добавлены в поток, и в этом случае все пользователи в группе будут добавлены вместе с разрешением, указанным для группы.
thread: {id: xxxxx, users:[{id:user01, permission: write, discovery: non}, {id:user02, permission: read, discovery: GroupA}]}
Таким образом, пользователь может быть добавлен с индивидуальным разрешением или с разрешения, предоставленного группе, в которую он входит. Обнаружение будет указывать, был ли пользователь добавлен индивидуально или как группа.
Мне интересно, будет ли это наилучшим способом настройки Mongo для такого рода системы разрешений, а также как я на самом деле определяю эту схему с помощью Mongoose? Я думаю, что было бы быстрее всего встроить все эти аспекты в каждый поток.