6

gemを介してMercuryの /editor/.* ルートに認証チェックを追加するにはどうすればよいですmercury-railsか?

つまり、次のことができることを知っています。

  • 認証されていない場合、エディターへのリンクを非表示にします。
  • 認証されていない場合、エディターからの更新を拒否します。

ただし、ユーザーがエディターへのブックマークを持っていて、ログインしていない場合に備えて、ユーザーをエディターから追い出すことをお勧めします。

PS: 誰かmercury-editorがこれ用のタグを作成できますか? そうでなければ、mercury-editor を探すのはほぼ不可能です。

4

2 に答える 2

7

before_filterメソッドは、おそらく使用したいものです。

MercuryControllerから継承するのではなく、独自のコントローラーを追加して、ルートをコントローラーにポイントすることができます。

config / routers.rb内:

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

そしてapp/controllers / my_mercury_controller.rb

class MyMercuryController < MercuryController
    before_filter :login_required
    def login_required
        ...
    end
end
于 2011-11-10T21:01:24.337 に答える
3

Mercury-Rails のインストーラーが、認証コードを追加するかどうかを尋ねてきたようです。

lib/mercury/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?」のようなものかもしれません。

于 2012-04-06T18:27:43.983 に答える