RavenDB: как проверить разрешения для пользователя, желающего выполнить операцию над конкретным документом - PullRequest
3 голосов
/ 03 марта 2012

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

Большая часть кода, который я пишу в моей системе, использует вызов метод documentSession.IsAllowed, чтобы проверить и убедиться, что AuthorizationUser имеет разрешения для указанного действия. Это имеет работал чудесно для нас, нет проблем. Я расширяю свое приложение авторизация для использования тегов сейчас, и мне интересно:

Учитывает ли метод documentSession.IsAllowed теги для документа разрешения, роли и пользовательские права?

Например:

Если Бобу назначена роль менеджера. Роль менеджера назначил разрешение разрешить операцию «Просмотр» с тегом «ReadyForReview» на это разрешение. Как мне позвонить documentSession.isAllowed таким образом, чтобы убедиться, что Боб может «просмотреть» вещи, которые помечены "ReadyForReview"?

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

Конечная цель на самом деле сказать: «Может ли Боб пересмотреть это задание?» куда Назначение - это документ в RavenDB, который может иметь или не иметь Тег «ReadyForReview». Бобу должно быть разрешено только просматривать задания которые имеют тег «ReadyForReview». Я хотел бы иметь метод, который дает мне логическое значение, сообщающее, может ли Боб просмотреть этот документ.

1 Ответ

2 голосов
/ 04 марта 2012

Дерик,

В дополнение к просто IsAllowed, у вас также есть IsOperationAllowedOnDocument.Это позволяет вам задавать вопросы безопасности о конкретном экземпляре документа, а не только глобально.

...