аутентификация с ртутными рельсами - PullRequest
6 голосов
/ 09 ноября 2011

Как добавить проверки подлинности на маршруты /editor/.* в Mercury через mercury-rails gem?

Я имею в виду, я знаю, что вы можете:

  • скрывать ссылку на редактор, когда не аутентифицирован.
  • отклонять обновления от редактора, если они не прошли проверку подлинности.

Но я бы предпочел, чтобы пользователя выгнали из редактора, если он / она имеет закладку для редактора и не вошел в систему.

PS: Кто-нибудь может создать для этого тег mercury-editor? В противном случае поиск ртутного редактора практически невозможен.

Ответы [ 2 ]

7 голосов
/ 11 ноября 2011

Вероятно, вы захотите использовать метод before_filter.

Вы можете просто добавить свой собственный контроллер, который наследуется от MercuryController, и указать маршруты на ваш контроллер:

В config /маршруты.рб:

...
match '/editor(/*requested_uri)' => "my_mercury#edit", :as => :mercury_editor
Mercury::Engine.routes
...

и приложение / контроллеры / my_mercury_controller.rb

class MyMercuryController < MercuryController
    before_filter :login_required
    def login_required
        ...
    end
end
3 голосов
/ 06 апреля 2012

Похоже, что теперь установщик mercury-rails спросит вас, хотите ли вы, чтобы они добавили некоторый код аутентификации, и если вы это сделаете, то создаст

Библиотека / ртуть / authentication.rb

module Mercury
  module Authentication

    def can_edit?
      true # check here to see if the user is logged in/has access
    end
  end
end

Где вы можете запустить свой контрольный код там. Может быть что-то вроде «if user_signed_in? && current_user.admin?»

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