天天看點

odoo10參考系列--Odoo中的安全機制

除了手動管理使用自定義代碼通路,Odoo提供了兩種主要的資料驅動機制來管理或限制對資料的通路。

這兩種機制是通過組與特定的使用者實作:一個使用者屬于任何個數的組,和安全機制相關聯的組,進而将安全機制應用與使用者。

通路控制

通過 

ir.model.access

 記錄管理,定義了對整個模型的通路。

每個通路控制都有一個授予權限的模型、授予的權限和可選的組。

通路控制是可加性的,對于給定的模型,使用者可以通路授予其任何組的所有權限: 如果使用者屬于一個允許寫和另一個允許删除的組,它們既可以寫也可以删除。

如果未指定任何組,則通路控制适用于所有使用者,否則隻适用于給定組的成員。

可用的權限建立(perm_create),搜尋和閱讀(perm_read),更新現有記錄(perm_write)和删除現有記錄(perm_unlink)

記錄規則

記錄規則,記錄必須滿足被允許的操作條件(建立、讀取、更新或删除)。它是在已經應用的通路控制之後按記錄應用的

記錄規則有:

  • 它适用的模型
  • 它應用的一組權限(例如如果

    perm_read

     設定了值,隻有在閱讀記錄時才會檢查規則)
  • 規則應用的一組使用者組,如果沒有指定組,則規則是全局的
  • 用于檢查給定記錄是否與規則比對(或可通路)或不(不可通路)相比對的域。在上下文中使用兩個變量對域進行評估: 

    user

     是目前使用者的記錄并且

    time

     是時間子產品

全局規則群組規則(僅限于特定組的規則與應用于所有使用者的組)完全不同:

  • 全局規則是相減的,它們必須比對才能成為可通路的記錄
  • 組規則是可加的,如果其中任何一個比對(并且所有全局規則比對),則記錄是可通路的

這意味着,第一組規則限制通路,但任何進一步的組規則可擴充它,全局規則隻能限制通路(或沒有效果的時候)

警告

記錄規則不适用于管理者使用者

雖然應用了通路規則

字段通路

版本7中的新内容。

一個ORM 

Field

 可以有一個提供組清單(作為逗号分隔的外部辨別符字元串)的

groups

 屬性。

如果目前使用者不在所列出的組中,則他将無法通路該字段:

  • 受限字段會自動從請求視圖中删除
  • 受限字段會自動從

    fields_get()

    響應中删除
  • 試圖(顯式地)讀取或寫入受限制字段會導緻通路錯誤

工作流轉換規則

工作流轉換可以被限制到特定的組中。組外的使用者不能觸發轉換。

ps:有翻譯不當之處,歡迎留言指正。

原文位址:https://www.odoo.com/documentation/10.0/reference/security.html

繼續閱讀