2011-11-09 32 views
6

Làm cách nào để bạn thêm kiểm tra xác thực trên các tuyến /editor/.* trong Mercury qua đá quý mercury-rails?xác thực bằng thủy ngân-ray

Ý tôi là, tôi biết bạn có thể:

  • ẩn liên kết đến các biên tập viên khi không được xác thực.
  • từ chối cập nhật từ trình chỉnh sửa khi không được xác thực.

Nhưng tôi muốn người dùng bị đuổi ra khỏi các biên tập viên trong trường hợp anh/cô ấy có một bookmark để trình biên tập và không đăng nhập

PS:. Ai đó có thể tạo ra một thẻ mercury-editor cho điều này ? Nếu không tìm kiếm thủy ngân-biên tập viên là neigh không thể.

Trả lời

3

Có vẻ như trình cài đặt thủy ngân sẽ hỏi bạn có muốn thêm mã xác thực không và nếu bạn tạo mã xác thực

lib/thủy ngân/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 

Nơi bạn có thể chạy mã kiểm tra của bạn trong đó. Có thể một cái gì đó như "nếu user_signed_in? & & current_user.admin?"

7

Phương pháp before_filter có lẽ là những gì bạn muốn sử dụng.

Bạn chỉ có thể thêm bộ điều khiển riêng của mình hơn là được thừa hưởng từ MercuryController và chỉ các tuyến đường để điều khiển của bạn:

Trong config/routes.rb:

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

Và app/controllers/my_mercury_controller.rb

class MyMercuryController < MercuryController 
    before_filter :login_required 
    def login_required 
     ... 
    end 
end 
Các vấn đề liên quan