Odoo15官方文档 开发 核心教程 第5章:安全简介

在前一章中,我们创建了第一个表,用于存储业务数据。在Odoo这样的业务应用程序中,首先要考虑的问题之一是谁可以访问数据。Odoo提供了一种安全机制,允许特定用户组访问数据。

高级主题B:ACL和记录规则更详细地介绍了安全性主题。本章旨在介绍新模块所需的最低要求。

数据文件(CSV)

Odoo是一个高度数据驱动的系统。虽然行为是使用Python代码自定义的,但模块的部分值存在于加载时设置的数据中。加载数据的一种方法是通过CSV文件。一个例子是在安装基本模块时加载的国家/地区列表

"id","country_id:id","name","code"
state_us_1,us,"Alabama","AL"
state_us_2,us,"Alaska","AK"
state_us_3,us,"Arizona","AZ"
state_us_4,us,"Arkansas","AR"
...
  • id:是一个外部标识符。它可以用来引用记录(不知道其在数据库中的标识符)。
  • country_id:id:指使用其外部标识符的国家。
  • name:是州的名称。
  • code:是州的代码。

这三个字段定义在res.country.state模型中。

按照惯例,导入数据的文件位于模块的data文件夹中。当数据与安全性相关时,它位于security文件夹中。当数据与视图和操作相关时(后面介绍),它位于views文件夹中。此外,所有这些文件都必须在__manifest__.py文件内的data列表中声明。我们的示例文件在base模块的__manifest__.py文件中定义。

还要注意,数据文件的内容仅在安装或更新模块时加载。

警告
数据文件按照__manifest __.py文件中排列的顺序加载。这意味着,如果数据A依赖于数据B,则必须确保A在B之前加载。

为什么这一切对安全很重要?因为模型的所有安全配置都是通过数据文件加载的,我们将在下一节中看到。

访问权限

参考:与本主题相关的文档可在访问权限中找到。

备注
目标:在本节末尾,以下警告不应再出现:

WARNING rd-demo odoo.modules.loading: The model estate.property has no access rules...

当模型上没有定义访问权限时,Odoo将确保没有用户可以访问数据。日志中甚至会通知:

WARNING rd-demo odoo.modules.loading: The model estate.property has no access rules, consider adding one. E.g. access_estate_property,access_estate_property,model_estate_property,base.group_user,1,0,0,0

访问权限定义为ir.model.access模型中的记录。每个访问权限都与模型、组(或无全局访问组)和一组权限相关联:创建、读取、写入和取消链接。此类访问权限通常在名为ir.model.access.csv的CSV文件中定义。

下面是我们之前的test.model的示例:

id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
access_test_model,access_test_model,model_test_model,base.group_user,1,0,0,0
  • id:是一个外部标识符

  • name:是ir.model.access的名称。

  • model_id/id:指的是访问权适用的模型。参考模型的标准方式是模型名称,其中模型名称是模型的名称,由替换为。看起来很麻烦?确实是…

  • group_id/id:指的是访问权限适用的组。我们将在专门讨论安全性的高级主题中介绍组的概念。

  • perm_read,perm_write,perm_create,perm_unlink:读取、写入、创建和取消链接权限

练习
添加访问权限。
在适当的目录创建ir.model.access.csv文件,并在__manifest __.py文件中定义它。
将读、写、创建和取消链接权限授予base.group_user
提示:日志中的警告消息提供了大部分解决方案;

重新启动服务器,警告消息应该已经消失!

现在是时候与UI进行最终交互了!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值