使用水银轨道进行认证

doc*_*hat 6 authentication ruby-on-rails mercury-editor

如何通过gem 在Mercury的/editor/.*路由上添加身份验证检查mercury-rails

我的意思是,我知道你可以:

  • 未经过身份验证时隐藏指向编辑器的链接.
  • 未经过身份验证时拒绝编辑器的更新.

但是我希望用户被踢出编辑器,因为他/她有一个书签给编辑器但没有登录.

PS:有人可以mercury-editor为此创建标签吗?否则,搜索水银编辑器几乎是不可能的.

小智 7

before_filter方法可能就是您想要使用的方法.

您可以添加自己的控制器,而不是从MercuryController继承,并将路由指向您的控制器:

在config/routes.rb中:

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

和app/controllers/my_mercury_controller.rb

class MyMercuryController < MercuryController
    before_filter :login_required
    def login_required
        ...
    end
end
Run Code Online (Sandbox Code Playgroud)


Jos*_*ews 3

看起来现在 Mercer-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
Run Code Online (Sandbox Code Playgroud)

您可以在其中运行检查代码。也许类似于“如果 user_signed_in?&& current_user.admin?”