Как добавить контроль доступа к именованным маршрутам в config / rout.rb? - PullRequest
1 голос
/ 16 марта 2012

Я часто использую require_admin! в своих контроллерах. Отлично работает.

Теперь я хочу добавить именованный маршрут примерно так:

# config/routes.rb
match "poniesandrainbows" => redirect("https://poniesandrainbows.com")
# ^sadly, not really a website, btw.^

Как мне ограничить доступ к этому маршруту? Это возможно? Очевидно, он перенаправляет на общедоступный URL-адрес, но я все еще хочу сохранить маршрут закрытым.

Ответы [ 3 ]

1 голос
/ 16 марта 2012

Вы не можете ограничить доступ с маршрутов.

Самый безопасный способ сопоставить «poniesandrainbows» с контроллером, где вы можете использовать require_admin!а затем перенаправьте их на общедоступный URL-адрес.

Вы можете попытаться решить эту проблему на внешнем интерфейсе.Может быть, только показать ссылку для пользователей-администраторов.Это не помешает другим пользователям вставлять ссылку непосредственно в URL своего браузера, хотя

1 голос
/ 16 марта 2012

Это на самом деле возможно, хотя, как упоминалось в других постерах, очень редко бывает хорошей идеей.Вы можете прочитать о том, как в этом блоге: (прокрутите вниз к разделу маршрутов)

http://collectiveidea.com/blog/archives/2011/05/31/user-centric-routing-in-rails-3/

1 голос
/ 16 марта 2012

Такая функциональность должна быть заключена в контроллере.Маршрутизатор обрабатывает передачу запроса правильному контроллеру.Задача контроллера - правильно понять, как обрабатывать запрос.В этом случае контроллер будет использовать службу аутентификации (например, require_admin!), Чтобы определить, разрешено ли перенаправление пользователя или он обречен на другую судьбу.

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