2011-11-06 194 views
1

我的用戶使用Shibboleth進行身份驗證,所以我使用RemoteUserBackend作爲我的AUTHENTICATION_BACKENDS元組。這是工作正常的任何網址,除了管理員。 當我嘗試登錄時,我收到一條消息,告訴我我的密碼是錯誤的。 爲什麼是這樣,我能做些什麼來解決它?我可能會使用不同的後端,一個用於我的項目,另一個用於我的管理界面,但我不知道如何做到這一點。Django管理員登錄不起作用沒有默認後端

+0

我目前正試圖用django設置shibboleth任何機會,你可以指向我的良好範例嗎?或者你能分享一個例子嗎?謝謝。 –

回答

2

Django管理站點僅允許is_staff標誌設置爲True的用戶訪問。

作爲一次性的,你可以設置is_staff標誌通過shell一個特定的用戶:

>>> from django.contrib.auth.models import User 
>>> u = User.objects.get(username="fernando") 
>>> u.is_staff = True 
>>> u.save() 

進行上述更改後,用戶應該能夠訪問管理站點。

對於未來的新用戶,您可能希望子類RemoteUserBackend並覆蓋configure_user方法以在適當的位置設置is_staff標誌。

+0

我已經是數據庫的工作人員。此外,我試圖覆蓋configure_user像這樣:def configure_user(self,user):user.is_staff = True user.save(),但它不起作用。 –

+0

您是否檢查過「REMOTE_USER」標題設置正確?您是否添加了一些打印語句以確保'request.user'是您認爲是的用戶?使用具有不同後端的管理應用程序沒有什麼特別之處。如果你看不到管理頁面,那麼我很確定你沒有用'is_staff = True'的活動用戶登錄。 – Alasdair