2013-02-19 54 views
2

創建菜單項時,當我嘗試創建一個新的菜單項中的OpenERP 6.1打開一個窗口,通過訪問規則禁止的,我得到以下錯誤:操作的OpenERP 6.1

AccessError

Operation prohibited by access rules, or performed on an already deleted document (Operation: create, Document type: ir.values).

我可以一直使用繞過所有安全檢查的魔術管理員賬號,但如果可能的話,我寧願有更好的控制。爲什麼這是失敗的,我如何讓一些管理員創建菜單項?

我特別感興趣,因爲我要編寫創建菜單項的模塊。

回答

2

經過一堆挖掘,我找到了錯誤的原因。有一條記錄規則稱爲「默認值:僅更改個人值」。這是在revision 3560.1.7中加入併合並在revision 3713中。提交評論說:

[IMP] ir.values: improve security: users can only write to their personal defaults

Administrator access is required to set defaults for everybody, as well as to alter the action bindings.

似乎意,你應該只能夠改變使用魔法管理員帳戶,並更改菜單項的動作綁定需要你改變動作綁定。

你如何解決這個問題?那麼,你可以使記錄規則更復雜。您需要限制大多數用戶編輯其默認值,並讓管理用戶編輯ir_values表中的所有記錄。我們所有的用戶都在人力資源/員工組中,因此我將該組添加到「默認值:僅限個人值」規則中,以阻止其成爲全局規則。然後我爲ir_values添加了一個名爲「默認和操作:更改任何值」的新規則。我使用了虛擬域名過濾器:[(1,'=',1)]並將其分配給管理/配置組。現在大多數用戶只會匹配第一條規則,只能編輯自己的默認值。配置組中的任何人都將匹配這兩個規則,因此規則將與OR組合,並且他們將能夠編輯表中的所有記錄。做這項工作的重要之處在於你需要一組或所有用戶都是其成員的組。