【问题标题】:authentication with mercury-rails使用水银导轨进行身份验证
【发布时间】:2011-11-09 02:18:53
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: ruby-on-rails authentication mercury-editor


    【解决方案1】:

    一个 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
    

    【讨论】:

      【解决方案2】:

      现在看来,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?”

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-17
        • 2017-06-13
        相关资源
        最近更新 更多