CouchDB для каждой привилегии чтения поля, основанной на ролях - PullRequest
0 голосов
/ 21 февраля 2019

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

Например, если у меня есть такой документ:

{
    firstname: 'firstname',
    lastname: 'lastname',
    email: ['home': 'foobar@foobar.net', 'work': 'foobar@foobar-working.net'],
    phone: ['home': '+81 00 0000 0000'],
}

И следующие роли:

{
   "admins": {
       "names": [
           "superuser"
       ],
       "roles": [
           "admins"
       ]
   },
   "members": {
       "names": [
           "user1",
           "user2"
       ],
       "roles": [
           "developers"
       ]
   }
}

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

1 Ответ

0 голосов
/ 21 февраля 2019

Функциональность, описанная в вашем посте, недоступна в CouchDB.

Безопасность в couchdb определяется в следующих терминах (извлечено из документа)

Объект безопасности состоит издва обязательных элемента: администраторы и участники, которые используются для указания списка пользователей и / или ролей, имеющих права администратора и участников на базу данных соответственно:

  • участники : они может читать все типы документов из БД, и они могут записывать (и редактировать) документы в БД, кроме проектных документов.
  • администраторы : у них есть всепривилегии участников плюс привилегии: написание (и редактирование) проектных документов , добавление / удаление администраторов и участников базы данных и установка предела ревизий базы данных.Они не могут ни создать базу данных, ни удалить базу данных.

В CouchDB

нет ограничений на доступ к отдельным документам или даже к частичным документам * В настоящее время выможно определить ограничения на запись для каждого документа, определив функцию проверки документа при обновлении в документе Desing.

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

...