odoo-10 - 如何在odoo11中为用户创建规则
问题描述
如何在odoo11中为用户创建规则。我只想向经理显示特定的菜单项,而不是向用户显示。在这里,我为用户和经理创建了组,但无法为用户创建规则。我的代码是:
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<record model="ir.module.category" id="rights_current_weather">
<field name="name">Weather Info</field>
<field name="sequence">2</field>
</record>
<record id="rights_current_weather_user" model="res.groups">
<field name="name">User</field>
<field name="category_id" ref="rights_current_weather"/>
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
</record>
<record id="rights_current_weather_manager" model="res.groups">
<field name="name">Manager</field>
<field name="category_id" ref="rights_current_weather"/>
<field name="implied_ids" eval="[(4, ref('rights_current_weather_user'))]"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
</record>
</data>
</odoo>
解决方案
创建规则后,您需要将组添加到菜单项上的属性,例如:- 如果您想为特定用户代码显示菜单,例如
<menuitem
id="sub_menu"
parent="main_menu"
name="Sub Menu1"
groups="weather.group_manager"
action="weather.sub_menu_action"/>
或者您也可以在现场级别提供组
<record id="weather.weather_menu_view_form" model="ir.ui.view">
<field name="name">form</field>
<field name="model">my.app</field>
<field name="arch" type="xml">
<form>
<field name="name"/>
<field name="description"/>
<field name="verified_at" groups="weather.rights_current_weather_manager"/>
</form>
</field>
</record>
[编辑]
在您的代码中,两组
1.User(rights_current_weather_user) 这个用户从“base.group_user”继承
2.Manager(rights_current_weather_manager) 管理员用户从“rights_current_weather_user”继承
这意味着 base.group_user > User > Manager
现在,如果您想隐藏“用户”的某些菜单。并仅显示“经理”,现在当您使用“用户”登录时,向 menuitem groups="weather.rights_current_weather_manager" 添加一个属性,您看不到该菜单
现在关于规则,记录规则限制访问权限,例如:-您只想显示“用户”的今天天气数据,您可以编写如下代码
<record id="today_weather_data_only" model="ir.rule">
<field name="name">Only Today Data For User</field>
<field name="model_id" ref="weather.model_name"/>
<field name="groups" eval="[(4,ref('weather.rights_current_weather_user'))]"/>
<field name="perm_read" eval="1"/>
<field name="perm_write" eval="0"/>
<field name="perm_create" eval="0"/>
<field name="perm_unlink" eval="0" />
<field name="domain_force">[('state','=','today')]</field>
</record>
当“用户”登录时,它只会显示今天的数据。
推荐阅读
- javascript - 为单页应用中被点击的元素生成css选择器
- c++ - 如何在 C++ 中更改对象的动态数组的大小
- git - 使用 Github 中主分支的所有提交创建新分支
- database - 有没有办法存储 python 类,以便我可以根据属性搜索它们?
- javascript - 处理可能具有或不具有嵌套对象的对象的最有效方法是什么?
- python - 将 CSV 保存在文档文件夹中
- javascript - 在 MongoDB 中登录并保存会话后 - 会话未定义
- c# - ManifestEmbeddedFileProvider() 在 Windows 上抛出异常
- node.js - Firebase 功能 - 部署失败
- autohotkey - 使用 AHK ControlClick,找不到所需的行为