### 访问权限
访问权被定义为模型的记录,`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>
~~~