2010-06-12 67 views
0

我有一個用戶模型,其訪問由ACL9控制。acl9和devise似乎不能很好地協同工作

UsersController

#ACL9 related stuff 
before_filter :load_user, :only => [:show] 
    access_control do 
    allow :owner, :of => :user, :to => [:show] 
    end 

def load_user 
    user = User.find(params[:id]) 
end 

ApplicationController

rescue_from 'Acl9::AccessDenied', :with => :access_denied 

def access_denied 
    authenticate_user! # a method from Devise 
end 

這是在http://localhost:3000/users/sign_in頁籤中鍵入URL沒有問題,但是當例如我在輸入這是一個問題用戶頁面,我期望通過上面的邏輯重定向到自動登錄頁面。

http://localhost:3000/users/1 =>無限重定向地獄。它試圖再次重定向到users/1而不是指向users/sign_in

有沒有人有什麼意見可能會出錯?

回答

0

我想你不應該在Devise用戶控制器中使用Acl9。由於您未通過身份驗證,因此您沒有權限,並且您不會進行身份驗證:D。 您可能要禁止用戶刪除,所以它應該是這樣的:

access_control :only => [:destroy] do 
     allow :admin 
end 

對於UsersController你應該改寫你的ACCESS_CONTROL如果你想離開它是在應用控制器。

相關問題