Rails: блокировка пользователя с помощью rout.rb - PullRequest
2 голосов
/ 10 декабря 2008

У меня есть специальный URL, к которому я бы хотел, чтобы только несколько человек имели доступ. У меня есть список суперпользователей, хранящихся в виде массива в app.yml. Как я могу использовать этот массив в разделе: Requirements конкретного маршрута в файле rout.rb, чтобы разрешить доступ только тем суперпользователям к этому маршруту? Большое спасибо.

Ответы [ 2 ]

3 голосов
/ 10 декабря 2008

Как сказал Педро ... логика аутентификации должна быть в коде контроллера.
Взгляните на before_filters, где вы указываете методы, которые будут вызываться до (всех или указанных) действий в контроллере. Вы можете использовать такой метод, чтобы запретить выполнение действий. Ищите секцию, названную Остановка цепи фильтра здесь

: требования предназначены для указания ограничений для частей URL для сопоставляемого маршрута. Обычно регулярные выражения задаются как показано здесь.

map.geocode 'geocode/:postalcode', :controller => 'geocode',
              :action => 'show', :requirements => { :postalcode => /\d{5}(-\d{4})?/ }
3 голосов
/ 10 декабря 2008

Нет, вы не можете. :requirements относится только к параметрам маршрута.

Что, на мой взгляд, хорошо. Хорошо известно соглашение о наличии логики аутентификации в контроллерах.

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