Realm JS получает записи, принадлежащие пользователю с правами администратора

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

1 ответ

Решение

Вариант 1 - фильтр по пользователю

Этот параметр зависит от того, как вы настроили свои роли пользователя и как вы применяете их к объектам. Если вы используете роль __User по умолчанию, созданную для каждого пользователя, и создаете для нее свои разрешения, при условии, что у вас есть userId, вы можете запросить разрешения для объекта, чтобы найти их у конкретного пользователя.

например, получить первое разрешение на объект

let permission = object.permissions[0];

Имя роли будет:

let roleName = permission.role.name

roleName будет в формате '__User:Id'

Итак, теоретически вы можете запросить это так (не проверено):

realm.objects('YourObject').filtered(permissions.role.name == '__User: $ {id}');,

Вариант 2 - войти как пользователь

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

Другие вопросы по тегам