2012-05-14 104 views
0

軌版本如何限制通過ip訪問ActiveAdmin登錄頁面?

軌3.2.1

目標:

訪問ActiveAdmin登錄頁面只有辦公室的電腦。

代碼:

route.rb

約束(:IP => /(^127.0.0.1$)|(^192.168.10.[0-9]*$)/)做

match 'admin/' => 'admin#login' 

這是不行的,任何suesstion?

==========================

編輯我route.rb後續代碼

constraints(:ip => /(^127.0.0.1$)|(^192.168.10.[0-9]*$)/) do 
    ActiveAdmin.routes(self) 
    end 
    devise_for :admin_users, ActiveAdmin::Devise.config 

它工作!

回答

3

參考Rails的指導章路由(http://guides.rubyonrails.org/routing.html#advanced-constraints):

class WhitelistConstraint 
  def initialize 
    @ips = Whitelist.retrieve_ips 
  end 
  
  def matches?(request) 
    @ips.include?(request.remote_ip) 
  end 
end 
  
TwitterClone::Application.routes.draw do 
  match 'admin/' => 'admin#login', 
    :constraints => WhitelistConstraint.new 
end 

我敢肯定,這也可以用另一種方式做,但我相信你明白了。

+1

謝謝您的回覆^^ 我讀Rails的指導章路由和編輯route.rb 約束(:IP => /(^127.0.0.1$)|(^192.168.10.[0-9]* $)/)do \t ActiveAdmin.routes(self) end devise_for:admin_users,ActiveAdmin :: Devise.config 這是工作,謝謝! – joehwang

+0

這個答案對你有幫助嗎?如果是的話,如果你把我的答案標記爲接受,我會很感激。否則,請告訴我你還有什麼需要知道的。 :) – flooooo

相關問題