odoo开发笔记 -- 用户配置界面如何增加模块访问权限

时间:2023-03-09 04:51:28
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权限相关的配置文件,修改之后,需要重启服务,并升级相应的模块才能生效。