2016-01-06 44 views
0

我正在使用Odoo v8並需要一種方法來阻止某些用戶(最好是銷售團隊或用戶組)訪問某些聯繫人(分配給不同的銷售團隊)或聯繫人。Odoo v8:如何限制用戶訪問聯繫人

我試圖通過Record rules達到這個目標,但似乎沒有得到這個工作。

回答

2

用戶和用戶角色是OpenERP內部安全性的關鍵點。 OpenERP提供了一些關於用戶角色的安全機制,全部在OpenERP服務器中實現。它們是在最低的服務器級別上實現的,這是ORM引擎。 OpenERP區分三種不同的概念:

  • user:用戶:通過其登錄名和密碼標識的人。請注意,公司的所有員工不一定是OpenERP用戶;用戶是訪問應用程序的人。
  • 組:一組具有一定訪問權限的用戶。一個組向其屬於該組的用戶授予其訪問權限。例如:銷售經理,會計師等
  • 安全規則:定義給定組授予其用戶的訪問權限的規則。安全規則附加到給定資源,例如發票模型。

安全規則附加到組。用戶被分配到幾個組。這爲用戶提供了附屬於他們組的權利。因此,通過管理用戶組並添加或修改附加到這些組的安全規則來完成控制用戶角色。

用戶

用戶表示使用OpenERP的自然人。他們被標識爲登錄名和密碼,他們使用OpenERP,他們可以編輯他們自己的偏好,...默認情況下,用戶沒有訪問權限。我們給用戶分配的組越多,他或她獲得執行某些操作的權利就越多。用戶可能屬於幾個組。

用戶組

在組確定訪問權限的不同的資源。用戶可能屬於幾個組。如果他屬於多個羣組,我們總是使用對選定資源擁有最高權限的羣組。一組可以從另一組

權利

安全規則連接到組繼承所有權利。您可以在組級別分配多個安全規則,每個規則是以下類型之一:

- access rights are global rights on an object, 
- record rules are records access filters, 
- fields access right, 
- workflow transition rules are operations rights. 

您也可以定義胡亂組的是全球性的,即它們適用於所有用戶的規則,他們屬於。例如,多公司規則是全球性的;用戶只能看到他或她所屬公司的發票。

關於配置,很難擁有適用於所有應用程序的默認通用配置。因此,與SAP一樣,OpenERP默認情況下預先配置了最佳做法。

訪問權限

訪問權限是定義訪問權限的用戶可以有一個特定的對象上的規則。這些全球權利是根據文件類型或型號定義的。權利遵循CRUD模型:創建,讀取(搜索),更新(寫入),刪除。例如,您可以定義關於發票創建的規則。默認情況下,向對象添加權限會爲該特定對象的所有記錄提供權限。

記錄規則

當訪問一個對象,記錄基於記錄的規則過濾。因此,記錄規則或訪問過濾器是限制組可以訪問的對象記錄的過濾器。記錄規則是每個記錄必須滿足才能創建,讀取,更新(寫入)或刪除的條件。不符合限制條件的記錄將被過濾。

例如,您可以創建一個規則來限制組,使該組的用戶可以看到他或她被標記爲推銷員的商機。規則可以是salesman = connected_user。通過該規則,只會顯示有關規則的記錄。

現場訪問權限

新的7.0版。

OpenERP現在支持現場級別的真正訪問控制,而不僅僅是在視圖方面。以前,已經可以在一個<field>元素(或者實際上大多數視圖元素)上設置一個groups屬性,但僅僅具有化妝品效果:該元素在客戶端不可見,同時仍然完全可用於讀/寫訪問RPC級別。

從OpenERP 7.0開始,視圖級別保留了現有行爲,但是在所有模型字段上都提供了新的組屬性,在每個字段上引入了模型級訪問控制。語法是相同的觀點級屬性:

_columns = { 
    'secret_key': fields.char('Secret Key', groups="base.group_erp_manager,base.group_system") 
} 

有一個與視圖級組的主要區別屬性:限制在模型級別的訪問實際上意味着該領域將是完全不可用不屬於授權羣組的用戶:

  • 限制字段將從所有相關視圖中完全刪除,而不僅僅是隱藏。記住這一點非常重要,因爲這意味着字段值在客戶端根本不可用,因此不可用,例如換電話。
  • 受限制的字段不會作爲對fields_get()或fields_view_get()的調用的一部分返回。例如,這是爲了避免它們出現在可用於高級搜索過濾器的字段列表中。這並不妨礙通過直接查詢ir.model.fields來獲取模型字段的列表,這很好。
  • 任何嘗試直接讀取或寫入限制字段的值都會導致AccessError異常。
  • 作爲前一項的結果,受限字段將不可用於搜索過濾器(域)或任何需要讀取或寫入訪問的內容。
  • 即使使用不同的值,也可以在模型和視圖級別爲相同字段設置組屬性。兩者都會發揮其作用,模型層面的限制優先,並在限制情況下完全刪除該字段。

有關此功能的測試是在OpenERP的/測試/ test_acl.py。

警告

在編寫此功能的實施時間是在部分 ,並且未限制讀取到外地/寫RPC訪問。 相應的測試已經寫入,但目前已禁用。

0

您可以爲用戶的添加規則。我剛剛製作完成,效果很好。