环境
odoo版本:odoo13
需求
客户需要销售、采购、生产(制造)、库存的只读跟导出权限分别单独列出来供选择。
过程
- odoo 系统本身默认只有 CRUD 的权限,没有导出的权限,继承导出功能的模块
base_export_manager
; - 在 security 的 xml 文件里加上相关的权限组,就是
ir.groups
; - 在 security 的 csv 文件中写上对于这个权限组的对象模型的各个权限,例如
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink,perm_export
access_sale_order_readonly,sale.order.readonly,model_sale_order,km_sale_v13.group_sale_user_readonly,1,0,0,0,0
- 再然后,客户要看到还需要给菜单的权限,视图上显示的根菜单肯定要有的。
填坑
- 销售的根菜单跟子菜单框架中都是写了默认的权限组,所以需要特别关注下,也可以从设置-技术里面进行权限组的查看进行相应的开发;权限组的文件跟csv的先后顺序注意下;
- 销售还有一个坑,就是权限的类别 category,必须写
base.module_category_sales_sales
,即系统定义的权限组中,不能是自定义的,否则的话,必须选择一个系统销售组的权限,才能看见销售根菜单; - 其他,比如,只写了
sale.order
的只读权限,不一定就能 read 的,因为sale 里面的有的many2one
的字段或者是相关的采购或库存的模型是没有权限的;(我是写了基本的,其他的是提示哪个没有权限才去添加的,不知道有没有简单的方法); - 最后一个,看用户组中是否手动添加过只读/导出的权限租,是否继承了其他用户组。一个用户属于多个用户组的话,权限是叠加的。