odoo开发笔记 -- 用户配置界面增加模块访问权限
在odoo设置界面,点击用户,进入用户配置界面,会看到:
访问权 | 个人资料菜单
在访问权 page菜单界面,可以看到系统预制的一些模块都会显示在这里,
那么,我们自己开发的模块如何显示在这块呢,从而方便在创建用户的时候,给该用户访问我们自己开发模块的权限!
实现方式:
在odoo后台代码中增加两个文件,并在__manifest__.py中申明引用这两个文件。
具体编写:
新建两个文件夹:
(1) 在自己模块根目录下,创建data 和 security 两个目录,一般这两个目录也是平时odoo模块开发时的标准目录结构。
(2) 在security目录下,创建名为:xxx_security.xml的文件,xxx为你的模块名,切记不要含中文。
文件内容编写格式:[ 注意:把所有的xxx换成自己的模块名!] ref="module_category_xxx" 这句中引用的id就是在下个文件夹data中要写的id
<?xml version="1.0" encoding="utf-8"?> <odoo> <record id="group_xxx_user" model="res.groups"> <field name="name">xxx user</field> <field name="category_id" ref="module_category_xxx"/> <field name="users" eval="[(4, ref('base.user_root'))]"/> </record> </odoo>
(3)在第二个目录data下,创建名为:ir_module_category.xml的文件,文件内容:id="module_category_xxx" 和上边提到的ref引用id对应。
<?xml version="1.0" encoding="utf-8"?> <odoo> <record model="ir.module.category" id="module_category_xxx"> <field name="name">这块写你的模块名,可以写中文,用于界面显示</field> <field name="description">Manage xxx applications</field> <field name="sequence">35</field> </record> </odoo>
另外需要说明一下,上方文件中的<field name="sequence">35</field> sequence对应的数值,来控制菜单界面的显示顺序,可以根据自己本地的实际环境进行设置相应的值,不要跟odoo设置菜单默认的sequence值一样就行。
(4) 在__manifest__.py中申明引用这两个文件。
(5) 重启服务,升级你的模块,ok 验证一下,在设置 - 用户 - 访问权 下,是不是出现了你自己开发的模块。
ps: odoo权限相关的配置文件,修改之后,需要重启服务,并升级相应的模块才能生效。