我有一個標準的金字塔應用程序。在主要方法__init__.py
中,我有一個config.add_request_method(AuthHelper.get_user, 'user', reify=True)
來設置全局可訪問的用戶對象。如何在同一個應用程序中有兩個登錄/身份驗證策略?
我將所有用戶存儲在user
表中,我通過self.request.user
訪問當前登錄的用戶。我的問題是,我想創建一個管理員門戶網站,從應用程序的其它部分完全分開的,我想那些「管理員」將被存儲在一個名爲admin
表。這些管理員不是用戶 - 他們有一個單獨的登錄頁面,應該與用戶表沒有關係。
我有麻煩了管理員設置授權。例如,在remember(self.request, admin.id, max_age=...
中,就身份驗證過程而言,無法區分成功登錄的用戶與成功登錄的管理員。一個User.id = 1
可以訪問管理員門戶的Admin.id == 1
,即使他們在登錄時不同的看法不同的憑據。
我想過在remember
方法中使用Admin.username
,但它仍然與config.add_request_method(AuthHelper.get_user...)
(理解如此)衝突,這需要User.id
。
我怎樣才能建立一個授權策略,例如,如果您是從管理門戶登錄成功登錄,您的授權是誰從主索引頁面登錄,反之亦然普通用戶分開?
我覺得這是一個比較基本的需求,所以我必須失去了一個簡單的方法來實現這一點。謝謝。
正是我一直在尋找。謝謝!問題:對於新的啓動文件,.ini複合應用程序如何知道如何查找名爲say:init_admin.py的新啓動文件?我的主要應用程序文件默認情況下稱爲__init__.py,它在啓動時運行(不用說),但如果我的新文件被稱爲不同的東西,在哪裏「鏈接」它與我的.ini文件中的附加應用程序? – JohnZ
我已經將我的答案擴展了一下 – Sergey
這很完美。謝謝。 – JohnZ