我在啓用Shibboleth的服務器上運行Django站點,因此使用Remote User authentication backend。所有用戶都通過此服務進行身份驗證(如LDAP)。這對我有用。但是,我的網站已被鎖定,因此只有屬於員工組的用戶才能訪問視圖 - 因此這需要「超級用戶」才能進入數據庫或管理站點並將用戶更改爲員工。我想轉換這個工作流程,以便我可以在Django管理站點預先創建/預授權遠程用戶,所以當他們第一次嘗試登錄時,他們不必等待有人翻轉他們賬戶中的「員工」標誌。Django通過管理站點添加遠程用戶
問題是,Django管理網站希望您爲所有新用戶輸入一個密碼。然而,在我的數據庫中,遠程用戶有空白密碼字段 - 儘管看起來密碼字段的內容對遠程認證無關緊要,但我更希望超級管理員不必爲每個人設置「假」密碼。
如果我直接在MySQL數據庫中創建用戶,我可以創建遠程用戶就好了,因爲我可以將密碼字段留空。但是,我不希望將直接數據庫訪問權交給其他超級管理員。
我試過從this SO post的管理網站刪除密碼字段。但它仍然帶着一個驗證錯誤,我缺少一個字段(即密碼)。
我的admin.py:
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
admin.site.unregister(User)
class MyUserAdmin(UserAdmin):
add_fieldsets = (
(None, {
'classes': ('wide',),
'fields': ('username', 'email',)}
),
)
admin.site.register(User, MyUserAdmin)
問:什麼是預填充授權的遠程用戶在Django設置的最佳方式?我正在用MySQL運行1.5.1。如果我創建一個自定義的添加用戶視圖,那是最簡單的方法嗎?或者有沒有辦法利用現有的Django管理視圖?
謝謝!
簡單的方法是使用django-social-authentication後端。這個對我有用。 – drabo2005
謝謝drabo,我不知道那個插件!可悲的是,我沒有在受支持的站點列表上看到Shibboleth(或者甚至不知道它是否可能)......並且嘗試創建單獨的插件可能相當於在此時創建自己的表單? – user