odoo14开发侧权限配置(代码片段)

老韩头的开发日常 老韩头的开发日常     2022-12-01     779

关键词:

欢迎转载,但需标注出处,谢谢!

说明: 本文面向开发人员,普通用户可参考【odoo14】【用户侧】权限配置。文章结构与用户侧一致。

一、 odoo中的对象

菜单、视图、访问权限(对应 模型)、记录规则(对应 模型记录)

二、 权限控制

总的来说,odoo中的权限控制颗粒度还是非常细的。最小可以到模型中的某个具体的字段,以及在odoo系统中的每一条记录。

2.1 实现原理

以上提到的所有的对象,都是以权限组为最小单位进行控制的。有点类似于库存中商品与变体的感觉。

2.2 代码方式实现权限控制

以下内容以account模块为例

  1. 新建权限组所属类型,可添加到现有类别。一般情况是一个模块一个类别做,该模块所属的权限组属于该模块的类别中。
<record model="ir.module.category" id="base.module_category_accounting_accounting">
	<field name="description">Helps you handle your accounting needs, if you are not an accountant, we suggest you to install only the Invoicing.</field>
	<field name="sequence">7</field>
</record>
  1. 新建权限组
<record id="group_show_line_subtotals_tax_included" model="res.groups">
	<field name="name">Tax display B2C</field>
	<field name="comment">Show line subtotals with taxes included (B2C)</field>
	<field name="category_id" ref="base.module_category_hidden"/>
</record>

权限组中设计的核心字段介绍

  • category_id:当前权限组所属的类别
  • name:权限组名称
  • implied_ids:继承的其他群组,数据当前群组的用户将添加为所继承群组的用户
  • users:属于当前群组的用户

说明
implied_ids及users字段在初始化的时候遵循一对多、多对多的数据更新策略。

  1. 我们在新建菜单的时候,可将该菜单配置为特定组可见。
<menuitem id="menu_board_journal_1" name="Dashboard" action="open_account_journal_dashboard_kanban" groups="account.group_account_readonly" sequence="1"/>
  1. 视图,对groups添加初始值
<record id="analytic_rule_action_user" model="ir.actions.act_window">
	<field name="name">Analytic Rules</field>
	<field name="res_model">account.analytic.default</field>
	<field name="context">\'search_default_user_id\': [active_id], \'default_user_id\': active_id</field>
	<field name="binding_model_id" ref="base.model_res_users"/>
	<field name="binding_view_types">form</field>
	<field name="groups_id" eval="[(4, ref(\'analytic.group_analytic_accounting\'))]"/>
</record>
  1. 访问权限,对groups添加初始值
 <record id="account_move_rule_group_readonly" model="ir.rule">
	<field name="name">Readonly Move</field>
	<field name="model_id" ref="model_account_move"/>
	<field name="domain_force">[(1, \'=\', 1)]</field>
	<field name="groups" eval="[(4, ref(\'account.group_account_readonly\'))]"/>
	<field name="perm_write" eval="False"/>
	<field name="perm_create" eval="False"/>
	<field name="perm_unlink" eval="False"/>
</record>
  1. 模型字段的控制
invoice_payments_widget = fields.Text(groups="account.group_account_invoice,account.group_account_readonly",
        compute=\'_compute_payments_widget_reconciled_info\')

综上,其实在实际使用中,通过代码层面去实现权限的控制相对于UI操作而言,更简单。且具有移植性。

odoo12开发之开发环境准备(代码片段)

...创建Odoo应用所需用到的工具和环境配置。将介绍如何在开发电脑上使用源码安装Odoo,建议使用系统是Ubuntu18.04,文中会介绍到如何在Windows下安装Linux子系统。使用Windows子系统安装Linux在Windows系统中,最简单的方案是使用Windows10... 查看详情

odoo权限(代码片段)

https://www.odoogo.com/manual/odoo-dev-doc/701ffd98id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlinkaccess_todo_todo,todo.todo,model_todo_task,,1,1,1,1access_todo_todo2,todo 查看详情

浅谈odoo权限(代码片段)

首先引用博主<郭欢欢>整理的一篇文章<Odoo权限机制>然后在此基础上,自己也研究了一番,有一定的收获。先整理如下:<场景一:安装模块后,只有admin(管理员)能进行增删改查。普通用户,只能访问到记录行,不能... 查看详情

星辉科技odoo开发教程5-配置安全权限控制01

Odoo自带有权限控制机制,用户仅能使用被授权了的功能。这就意味着我们自建的库功能不对普通用户甚至是管理员开放。“注意:Odoo12的修改管理员用户现在也像其它用户一样受权限控制所限制。在此前的Odoo版本中,admin都... 查看详情

odoo开发环境搭建(代码片段)

odooodoo是一套开源的ERP软件https://www.odoo.com/zh_CN/开发环境python环境gitpycharmodoo12postgresql10.7nodejsodoo12之后就不需要了安装绿色版解压执行批处理文件源码安装https://next.odoogo.com/post/72/gitclone创建虚拟环境1.odoo独立环境2.安装odoo环境pip... 查看详情

odoo10启动选项(代码片段)

...启动选项用在哪里  如果你是用Pycharm进行odoo二次开发的话,可以通过Run——EditConfigurations——Scriptparameters来配置启动选项,这样每次点击Run按钮,就会自动执行这些附加的启动选项。  如果你是用命... 查看详情

odoo二次开发的方法(代码片段)

...在代码中实现,框架会自动提供这些功能,但如果我们的开发需求不仅仅是对当前对象的CRUD时,就需要在框架原来方法的基础上扩展出一些自己所需要的操作。odoo8以前与odoo8以后使用两种不同的model接口形式(odoo8两者都可使用)... 查看详情

odoo开发之记录集–使用模型数据(代码片段)

Odoo12开发之记录集–使用模型数据一·启动服务链接数据库#1.启动服务,链接数据库 ./odoo-binshell-cdebian/odoo.conf-dlibrary_db#2.self当前操作的对象 res.users(1,)#3.self._name#当前模块名称,获得记录集模型名 ‘res.users‘#4.self.login#记录值,至于... 查看详情

odoo开发笔记--安装backenddebranding去除odoo信息模块后隐藏开发者模式(代码片段)

Backenddebranding<?xmlversion="1.0"encoding="UTF-8"?><templates><tt-extend="mail.client_action"><tt-jquery=".o_mail_request_permission"t-operation="inner">Yourpermissionisrequi 查看详情

如何在 ODOO-14 中激活开发者模式.....?

】如何在ODOO-14中激活开发者模式.....?【英文标题】:HowtoactivatedevelopermodeinODOO-14....?【发布时间】:2021-05-0607:57:22【问题描述】:我想知道如何在Odoo14CE中激活开发者模式我认为它与第13版相同,但我找不到如何操作提前感谢您... 查看详情

odoo开发bug记录(代码片段)

odoo12模块安装完毕,下拉栏不显示https://www.cnblogs.com/yifchan/p/odoo-1-3.htmlid,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlinkaccess_todo_task,todo.task,model_todo_task,,1,1,1,1读改增删外部标 查看详情

odoo基础开发之curd(增删查改)(代码片段)

odoo基础开发之增、删、查、改环境介绍操作介绍增加数据:修改数据:删除数据:查找数据:环境介绍odoo版本:odoo13python版本:3.7.3odoo环境低于12版本,某些操作方法需要加特定的装饰器(如:@a... 查看详情

odoo基础开发之curd(增删查改)(代码片段)

odoo基础开发之增、删、查、改环境介绍操作介绍增加数据:修改数据:删除数据:查找数据:环境介绍odoo版本:odoo13python版本:3.7.3odoo环境低于12版本,某些操作方法需要加特定的装饰器(如:@a... 查看详情

odoo13学习---15cms网站开发(代码片段)

管理静态资产web.assets_common:这个资源包包括所有应用程序通用的所有基本实用程序,如JQurey、Underscore.js、FontAwesome等。该资产包用于前端(网站)、后端、销售点、报表等。这一共同的资产加载几乎在Odoo的任何地方。它还包含了boo... 查看详情

odoo开发之macos开发环境安装配置教程

简单介绍一下Odoo在macOS上的开发环境配置,用到的工具有homebrew,pycharm,postgresapp安装python不推荐使用系统自带的python,避免权限或污染系统lib,所以我们用homebrew安装一个2.7,并使用virtualenv创建环境。首先安装homebrew(http://brew... 查看详情

odoo里视图开发案例---定义一个像treeform一样的视图(代码片段)

   odoo里视图模型MVC模式:例子:在原来的视图上修改他:varCustomRenderer=KanbanRenderer.extend(....);varCustomRendererModel=KanbanModel.extend(....);varCustomRendererController=KanbanController.extend(.. 查看详情

如何在docker中运行odoo来配置pycharm(代码片段)

我已经找到了如何配置pycharm来调试odoo,但是对于在docker中运行的odoo(我的系统是ubuntu18系统),我无法配置pycharm来调试odoo容器。答案正如您在评论中所说,我假设您的插件/custom_addons位于通过卷映射附加到容器的文件夹中。您... 查看详情

[实践篇]13.14如何在qnx侧,打印日志到slog2info缓冲区(代码片段)

...对Q侧的服务进行调试,尤其是对平台或QNX原生服务进行开发调试的时候,会遇到日志信息严重不足,尤其是在QNX作为闭源操作系统的情况下,很多的基础能力或者核心服务都只是一个库文件或者二进制交付的Binary,那么就需要... 查看详情