### 訪問權限
訪問權被定義為模型的記錄,`ir.model.access`模型。每個訪問權是一個模型,一組(或任何集團全球訪問),和一組權限:讀、寫、創建、取消。這樣的訪問權限,通常是由一個名為CSV文件創建后的模型:`ir.model.access.csv`。
~~~ csv
id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
access_idea_idea,idea.idea,model_idea_idea,base.group_user,1,1,1,0
access_idea_vote,idea.vote,model_idea_vote,base.group_user,1,1,1,0
~~~
練習
通過ERP的接口添加訪問控制
創建一個新的用戶“約翰史密斯”。然后創建一個組“openacademy /會話讀”讀訪問*會議*模型。
1. 通過設置的用戶創建一個新用戶*史密斯*
2. 創建一個新組`通過設置用戶組session_read `,它應該在*會議*模型具有讀訪問
3. 編輯 *約翰史密斯* 使他們的成員` session_read `
4. 登錄*史密斯*檢查訪問權限是正確的
練習
通過在模塊中的數據文件添加訪問控制
使用數據文件,
* 創建一個組* openacademy /Manager*完全訪問所有openacademy模型
* 使 *Session* 和 *Course* 所有用戶可讀
1. 創建一個新文件 `openacademy/security/security.xml` 把openacademy經理組
2. 編輯文件 `openacademy/security/ir.model.access.csv` 隨著模型的訪問權
3. 最后更新 `openacademy/__openerp__.py` 向它添加新的數據文件
*openacademy/__openerp__.py*
~~~ python
# always loaded
'data': [
'security/security.xml',
'security/ir.model.access.csv',
'templates.xml',
'views/openacademy.xml',
'views/partner.xml',
~~~
*openacademy/security/ir.model.access.csv*
~~~ csv
id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
course_manager,course manager,model_openacademy_course,group_manager,1,1,1,1
session_manager,session manager,model_openacademy_session,group_manager,1,1,1,1
course_read_all,course all,model_openacademy_course,,1,0,0,0
session_read_all,session all,model_openacademy_session,,1,0,0,0
~~~
*openacademy/security/security.xml*
~~~ xml
<openerp>
<data>
<record id="group_manager" model="res.groups">
<field name="name">OpenAcademy / Manager</field>
</record>
</data>
</openerp>
~~~