6

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

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

  • 未经身份验证时隐藏编辑器的链接。
  • 未经身份验证时拒绝来自编辑器的更新。

但我希望用户被踢出编辑器,以防他/她有编辑器的书签并且没有登录。

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

4

2 回答 2

7

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

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

在 config/routes.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

您可以在那里运行您的检查代码。也许像“如果 user_signed_in?&& current_user.admin?”

于 2012-04-06T18:27:43.983 回答