2017-07-13 41 views
2

我需要用兩個groups兩條規則的一個模型

組上res_partner表應用兩個規則:StaffManager

的菜單項:Customer和「工作人員」

型號:res_partner兩種觀點。在組Staff

  1. 用戶只能看到staff菜單的詳細信息(只能讀取)
  2. 但他們需要有Customer(讀,寫,創建和取消鏈接)
  3. 用戶管理器應該有充分的機會完全訪問這兩個視圖。

我嘗試下面的代碼

<record model="ir.rule" id="staff_staff_rule"> 
    <field name="name">Readonly for staff</field> 
    <field name="model_id" ref="base.model_res_partner"/> 
    <field name="domain_force">[(1,'=',1)]</field> 
    <field name="perm_create" eval="False"/> 
    <field name="perm_read" eval="True"/> 
    <field name="perm_write" eval="False"/> 
    <field name="perm_unlink" eval="False"/> 
    <field name="groups" eval="[(4, ref('appartment.group_appartment_staff'))]"/> 
    </record> 

但用戶仍然可以創建,編輯,閱讀,並從工作人員組中刪除記錄。

我該如何做到這一點。

回答

1

你應該給出只顯示員工的正確域名。當您將 設爲域時,您表示該組被禁止只讀這些記錄。

<record model="ir.rule" id="staff_staff_rule"> 
    <field name="name">Readonly for staff</field> 
    <field name="model_id" ref="base.model_res_partner"/> 
         <!-- put the right domain --> 
    <field name="domain_force">[('partner_type','=', 'staff')]</field> 
    <field name="perm_create" eval="False"/> 
    <field name="perm_read" eval="True"/> 
    <field name="perm_write" eval="False"/> 
    <field name="perm_unlink" eval="False"/> 
    <field name="groups" eval="[(4, ref('appartment.group_appartment_staff'))]"/> 
    </record> 
+0

並確保您將xml文件清單 – Cherif

1

我認爲這將很容易使用csv(安全訪問文件)來完成。 您可以直接從csv文件管理這種情況,並且您需要將該文件添加到openerp .py/清單 .py文件中。

CSV文件,例如

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 
access_res_partner,res_partner_user_access,model_res_partner,appartment.group_appartment_staff,1,0,0,0 
access_manager_res_partner,res_partner_manager_access,model_res_partner,appartment.group_appartment_manager,1,1,1,1 

規則

規則用於應用條件對每個記錄,而他們有 一直試圖訪問。

訪問控制列表

ir.model.access /訪問控制列表是用來管理權限 (僅模型訪問用戶是否可以讀/寫/創建/刪除或 沒有)。

@Cherif Odoo已經解釋了規則,這裏是訪問控制列表。通過這兩種方式odoo管理證券。

+0

謝謝Emipro。但我的要求是,組員''應該有訪問創建,編輯,刪除和閱讀客戶視圖,但'職員視圖'只讀。這兩個視圖使用相同的模型'res.partner'。 – KbiR

+0

它會做同樣的事情,你剛剛解釋。 –

+0

Emipro,只是忘了組'經理',只考慮組'員工'。根據你的答案,訪問列表應該是access_res_partner,res_partner_user_access,model_res_partner,appartment.group_appartment_staff,1,0,0,0和access_res_partner,res_partner_user_access,model_res_partner,appartment.group_appartment_staff,1,1,1,1'。它是否可行? – KbiR