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