我正在啓動具有複雜權限結構的應用程序,該結構將不可避免地由用戶自己管理。我在模型以下權限:Django-guardian - 在對象創建時分配默認權限的位置
class Meta:
permissions = (
('can_view', 'View project'),
('manage_view', 'Can assign View project'),
('can_edit', 'Edit project'),
('manage_edit', 'Can assign Edit project'),
('can_delete', 'Delete project'),
('manage_delete', 'Can assign Delete project'),
('creator', 'Full access to model features.'),
)
這些將在與Django的監護人對象級別進行管理,我使用自定義的混入應對所有各種組合和功能。
「創建者」權限被分配給對象的最初創建者,他們可以通過基於電子郵件的邀請系統爲用戶分配其他權限。
我的問題圍繞的選項是分配創建者的權限創建對象。
我已經想到了迄今爲止一些方法:
分配鑑於後保存
newObject.save()
assign('creator', User, newObject)
一般情況下,我寧願讓這些類型的事件了自己的看法,雖然。
覆蓋保存()
這種方法的問題是,我必須給保存訪問用戶對象,這意味着還重寫INIT設置self.request獲取=請求。
post_save信號
我知道我可以把這個信號的優勢,但相比前兩次我還沒有嘗試這樣的實現呢。
希望這可以提供足夠的見解,瞭解我在哪裏與事情。
我很想知道這些方法中最好的方法是什麼,或者如果它們都是壞主意,那麼可能的實現方式是什麼。
感謝,
JD