odoo model注意事项-3-权限(个人总结,不喜勿喷)

23.如果是新创建的model,原来没有的,则需要在ir.model.access.csv权限文件中添加模型权限,然后重启升级,格式:

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink

id唯一,name唯一,model_id(model_model名称),group_id:id可忽略,1,1,1,1

菜单权限,添加权限组:

1.创建用户组;2.创建用户组的用户类型;3.将用户绑定到菜单上;

noupdate="1"代表升级模块时不对数据权限文件进行操作;

noupdate="0"代表升级模块时对数据权限文件进行更新;

<data noupdate="1">

<!--用户和用户组,用来设置菜单权限-->

<!--创建用户组-->

<record id="module_category_write_off_system" model="ir.module.category">

<field name="name">核销权限组</field>

<field name="description">Helps you manage your manufacturing processes and generate reports on those processes.</field>

<!--<field name="sequence">5</field>-->

</record>

<!--创建用户组的用户类型-->

<record id="group_write_off_manager" model="res.groups">

<field name="name">客户经理</field>

<!--继承哪些角色的权限,base.group_user为普通用户-->

<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>

<!--属于哪个用户组-->

<field name="category_id" ref="module_category_write_off_system"/>

</record>

</data>

使用方式:

<menuitem id="menu_write_off_list" name="核销清单" parent="write_off_system" action="act_write_off_list" groups="group_write_off_manager,group_write_off_user"/>

2.权限规则,在菜单权限的基础上进行权限细化,比如规定了菜单可视化的用户,需要点击菜单后显示的数据是在这个用户下绑定的,看不到其他用户的相关联的数据;

<!--权限规则-->

<!--客户经理只能看到自己的核销申请单-->

<record id="write_off_list_rule" model="ir.rule">

<field name="name">write_off_list_access</field>

<field name="model_id" ref="model_write_off_list"/>

<field name="global" eval="[(4,ref('group_write_off_manager'))]"/>

<field name="domain_force">[('customer_manager','=',user.id)]</field>

</record>

<!--核保专员只能看到分配给自己的任务-->

<record id="write_off_route_task_rule" model="ir.rule">

<field name="name">write_off_route_task_access</field>

<field name="model_id" ref="model_write_off_route"/>

<!--针对所有用户-->

<!--<field name="global" eval="True"/>-->

<!--针对某个用户组的-->

<field name="groups" eval="[(4,ref('group_write_off_commissioner'))]"/>

<field name="domain_force">[('write_off_person','=',user.id)]</field>

</record>

其中的model_id,指源model,ref的格式是model_model名称,domain_force指定筛选条件;

3.对于有用户组的菜单进行分组:

<record id="group_purchase_menu" model="res.groups">

<field name="name">采购菜单</field>

</record>

 

<record id="purchase.menu_purchase_rfq" model="ir.ui.menu">

<field name="groups_id" eval="[(6,0,[ref('group_purchase_menu')])]"/>

</record>

创建一个用户组,然后用(6,0,[ ])来清除原有的用户组,赋予新的用户组,这个写法简单;

4.如果权限出现问题,大概就是这几个原因:

1)没有给菜单增加指定的权限组;

2)没有给csv增加模型权限;

5.增加权限,可以首先考虑,增加一个公共的权限组,一方面是考虑用来增加模型权限指定组,一方面是考虑用来给所有的一级菜单或者二级菜单增加公共组,只有一个名字,方便给多个菜单加组,这样一来,所有的组都能访问每个菜单,但是只要有一个菜单增加了不同的权限组,那么其他的权限组就看不到这个菜单;

比如:一级菜单menu,menu下的具有action的子菜单sub,公共权限组public,继承public的权限组A和B,如果menu加了public,那么A和B都可以访问sub,如果sub加了A,那么B就看不到sub了

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值