我一直在使用URL調度的應用程序。我根據這裏發現的一些很好的信息設置了我的根工廠:https://github.com/mmerickel/pyramid_auth_demo(謝謝邁克爾!)混合URL調度和遍歷
現在我正在嘗試使用pyramid_formalchemy。似乎pyramid_formalchemy使用遍歷來確定授權。沒關係,但我堅持一點...
對於遍歷對象需要位置感知,這意味着他們需要有一個名稱和父母。所以我有一個用戶對象。
class User(Base):
__name__ = 'user'
__parent__ = ...
我在我的RootFactory中定義了我想要的ACL。當RootFactory的構造函數被調用時,這一切都得到設置。我想我所有的班的父母設爲RootFactory,但是創建你需要在請求中傳遞給構造(尤其是因爲我RootFactory子類pyramid_formalchemy.resources.Models)
一個RootFactory實例,但設立時我的課我沒有要求。
如何正確設置我的類上的父到RootFactory?
謝謝。
是的,我以前看到這個答案。我仍然面臨的問題是pyramid_formalchemy機制沒有在我的模型上設置__parent__屬性。因此,當模型成爲上下文並且授權策略向上移動時,ACLAuthorizationPolicy.permits()會在模型本身出現底層,並且永遠不會將其傳遞到我的自定義RootFactory。 pyramid_formalchemy在模型上設置__parent__在哪裏? – lostdorje
我現在在Models中看到代碼.__ getitem __()你說得對,這樣做對模型設置__parent__。查看.../admin /用戶作品和用戶列表。什麼是破壞是... /管理頁面本身。它應該列出我在調用formalchemy_admin()時配置的所有模型。但是當/ admin頁面被調用__getitem __()永遠不會被調用,所以模型的__parent__沒有設置correclty,我沒有看到列出的模型。 – lostdorje