Я тестирую Deadbolt в приложении Scala Play. Мои методы контроллера выглядеть примерно так:Разрешение на Deadbolt на основе параметров
def getProject(projectId: Int) = actionBuilder.RestrictAction("user").defaultHandler() {
authRequest =>
//retrieves project
}
В этом случае, я только хочу, чтобы пользователь иметь право получить проект, если projectId
принадлежит этому пользователю. Другие более сложные случаи включают несколько параметров как из строки запроса, так и из тела сообщения.
Из того, что я понимаю, подход здесь состоял в том, чтобы передать параметры на DynamicResourceHandler
, а затем обрабатывать разрешения для каждого случая отдельно. Это возможно, но я ожидал немного поддержки от Deadbolt для этого варианта использования. Каков наилучший подход для авторизации запроса на основе полученных параметров?
Спасибо за ответ. Это было похоже на то, как я думал сделать это. Я также читал об использовании deadbolt в маршрутах вместо контроллера, но я думаю, мне было бы труднее получить доступ к значениям параметров там правильно? – nmat
Действительно - в маршрутах вы можете только жестко закодировать мета. Кроме того, вы можете самостоятельно проанализировать URL-адрес, чтобы получить значение, но это уже становится довольно тяжелым. –