新需求
要求新建一个权限组,用户拥有以下权限:
1、更多联系人:全部权限;
2、销售:可见菜单:订单、产品、报表;可创建、编辑订单;
3、采购:可见菜单:订单、产品、报表、配置;可创建、编辑订单;
4、库存:可见菜单:概览、作业、主数据、报告;
5、产品:只可以查询,不能编辑;视图上关于制造相关的入口都不显示,包括:更新数量、补给,按钮:物料清单、制造、路线、上架规则、已售、已采购;
6、发票:销售和采购上关于的发票菜单不可见。
新问题
乍看以下,需求很简单,就是菜单的可见性问题,groups 就能解决。
细看,问题有:该权限组有销售采购的创建编辑权限,为啥产品上又不能看相关的已售、已采购呢;
背景:客户是怎么方便怎么来的,关于制造就细分到哪几个字段设一个权限组,未完成和完成的制造订单能否查看组件都各是一个权限组,仅制造就已有十几个权限组。
这次的需求,做起来后发现,有些菜单必须某些权限组才能看,是区分user 和 manager 的,而这里的是不管什么权限的,都是某个人单独的一个权限组,要这些功能。跟系统本身的功能是有些冲突的。
头大
试错过程
1、创建一个权限组,然后给这个权限组写对各个模型的 read、write、create、unlink 权限;
问题是:发现第一步很多菜单就显示不出来,即使重写加上这个组也不行;
2、创建的新权限组,默认继承的权限包含 销售用户: 所有文档;采购:用户;库存:用户的权限;
问题是:有些菜单或者按钮的权限是 user 的,隐藏不掉
3、创建的新权限组,默认继承销售用户: 所有文档、库存:用户的权限;
问题是:采购-报表菜单显示不出来。
4、群友提了一个修改获取根菜单的方法,测试了没有看到效果。
难重点
odoo 中对某个菜单可见,用 groups 轻松解决。
如果odoo 的权限组多,是只有一个权限组不可见某个菜单就麻烦了。
最终方法(不是最好的)
最终采用3,在3的基础上修改。
学到及更深理解
拿到需求需要先想好是怎么下手,这次是一直在反复一个过程,相当于每次重头来;
学到:
- groups 如果菜单原先已经对这个 groups 可见,可以直接添加需要新权限组的组,不用全部重写一次;(groups 默认是追加,不会删除原先权限组的)
- 菜单的可见性,首先是csv文件中至少要先对该模型有 read 的权限的,然后菜单也有相应的权限的话,也需要添加新权限组;如果子菜单有权限组要求,父菜单没有的话,新权限组对父菜单也是不可见的,必须先给子菜单赋予权限;
- 新建权限组,对 product.template 可读,为什么form视图上按钮看不见;(对父菜单有权限组的要求)
实现了,发现也就是这些平时常用的,没实现的时候,感觉恩很难。哈哈哈