配置ODOO12安全权限控制

Odoo自带有权限控制机制,用户仅能使用被授权了的功能。这就意味着我们自建的库功能不对普通用户甚至是管理员开放。

Odoo 安全权限通过安全组来设置访问权限。每个用户的权限根据所属组来决定,对于我们的测试项目,我们将创建一个 to-do 用户组,然后通过组来分配可使用功能的用户。我们通常使用 ACL 为某个组赋予指定模块的读或写权限,就当前项目,我们对添加的 to-do 项模型添加读和写权限。

此外,我们还可以设置用户对指定模型的记录范围的访问规则。本项目中 to-do 项为用户私有,所以用户仅能访问自己创建的记录,这通过安全记录规则实现。

安全组

访问控制基于组,通过安全组对模型设置权限,控制组内用户所能使用的菜单项。要做更精细化的控制,我们可以对指定菜单项、视图、字段甚至是(带有记录规则的)数据记录进行权限控制。

安全组还可以对应用进行管理,通常每个应用有两个组:用户组(Users)可执行日常操作、管理员组(Manager)可对应用执行所有配置。

下面我们新建一个安全组,在开发者模式下菜单中访问设置>管理中心>群组
在这里插入图片描述
点击创建按钮,通过如下值创建一条新记录:

  • 应用: 留空
  • 名称: To-do User
  • 继承标签下: 添加用户类型/内部用户项

效果如下:
在这里插入图片描述
在应用下拉列表中还没有to-do 应用,所以我们直接通过组表单来添加。我们还继承了内部用户用户组,那么这个组的成员也会自动(递归)成为所继承组的成员,以获取他们原有的权限。内部用户是基础权限组,通常应用的安全组都继承它。
安全权限控制列表
现在我们可以对指定组(To-do User)进行指定模型的权限授予,在上述表单的访问权限标签下添加一条记录,对应的值为:

  • 名称: To-do Item User Access
  • 对象: 在列表中选择To-do Item
  • 勾选Read Access, Write Access, Create Access, and Delete Access
    在这里插入图片描述
    模型权限也可通过设置>技术>安全>访问权限进行管理。我们无需向Partner 模型添加权限,因为我们的组继承了内部用户组,已经获取了相应权限。
    在这里插入图片描述
    现在可以将 admin 用户添加到新建组来测试新加的权限设置

1、在菜单中点击设置>管理中心>用户,从用户列表中选择Mitchell Admin,然后编辑表单
在这里插入图片描述
2、在访问权限标签下的其他版块,会发现一个名为 To-do User 的复选框用于让用户加入权限组,勾选后点击保存按钮保存表单。
在这里插入图片描述
如果一切操作都正确的话,我们就可以看到 To-do 顶级菜单,用于添加任务清单项,并且我们只能访问自己的任务清单而看不到其它人的。
安全记录规则
在对模型赋予访问权限时,默认用户可以访问到他的所有记录。但有时我们要限制每个用户所能访问的特定记录。通过记录规则可以实现这一点,通过定义 domain 过滤器来对读和写操作进行控制。

比如我们这里的 to-do 应用,任务项应为用户私有,我们不希望其他用户看到自己的记录。需要添加记录规则来过滤出创建者自己的记录:

  • 框架会自动添加create_uid字段,并存储创建记录的用户,通过该字段可以确定每条记录的创建者
  • 在user变量中可获取到当前用户,user 变量读取上下文中 domain 过滤器过滤后的对象

通过[(‘create_uid’, ‘=’, user.id)]域表达式可实现这点。

通过菜单中的设置>技术>安全>记录规则进入记录规则设置页,
在这里插入图片描述
点击创建按钮并输入如下值:

  • 名称: 一个描述性的标题,这里使用 To-do Own Items
  • 对象: 在列表中选择模型,此处为To-do Item
  • 访问权限: 规则所授予的操作,这里保留全部勾选
  • 规则定义: 域筛选器,填写 [(‘create_uid’,‘=’, user.id)]
  • 群组: 作用的安全组,选择To-do User组

效果如下:
在这里插入图片描述
此时就完成了记录规则的设定,现在可以试试用 Admin 和 Demo 用户(需提前将 Demo 用户加入到安全组)分别创建几个任务项,各自将只能看到自己创建的任务。记录规则可通过右上角的切换按钮进行关闭,一旦关闭,用户就可以看到所有人的任务清单了。

视频演示:

http://ctdrive.tderp.com/file/13502532-460836714
https://www.tderp.com/alyun/20221113/配置ODOO12安全权限控制.mp4

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是在VSCode中配置Odoo的步骤: 1. 安装Python插件:在VSCode中点击左侧的扩展图标,搜索并安装Python插件。这个插件将提供Python语法高亮和代码提示功能。 2. 创建Python虚拟环境:在VSCode的终端中运行以下命令来创建一个Python虚拟环境: ```shell python3 -m venv odoo-env ``` 3. 激活虚拟环境:在VSCode的终端中运行以下命令来激活虚拟环境: - 在Windows上: ```shell .\odoo-env\Scripts\activate ``` - 在Linux/Mac上: ```shell source odoo-env/bin/activate ``` 4. 安装Odoo:在激活的虚拟环境中运行以下命令来安装Odoo: ```shell pip install odoo ``` 5. 配置Odoo模块路径:在VSCode的设置中搜索"python.autoComplete.addBrackets",将其设置为true。然后在VSCode的设置中搜索"python.autoComplete.addCallParenthesis",将其设置为true。这样可以使得VSCode在自动补全Odoo模块中的字段和方法时添加括号。 6. 配置Odoo模块路径:在VSCode的设置中搜索"python.autoComplete.addBrackets",将其设置为true。然后在VSCode的设置中搜索"python.autoComplete.addCallParenthesis",将其设置为true。这样可以使得VSCode在自动补全Odoo模块中的字段和方法时添加括号。 7. 配置Odoo模块路径:在VSCode的设置中搜索"python.autoComplete.addBrackets",将其设置为true。然后在VSCode的设置中搜索"python.autoComplete.addCallParenthesis",将其设置为true。这样可以使得VSCode在自动补全Odoo模块中的字段和方法时添加括号。 8. 配置Odoo模块路径:在VSCode的设置中搜索"python.autoComplete.addBrackets",将其设置为true。然后在VSCode的设置中搜索"python.autoComplete.addCallParenthesis",将其设置为true。这样可以使得VSCode在自动补全Odoo模块中的字段和方法时添加括号。 9. 配置Odoo模块路径:在VSCode的设置中搜索"python.autoComplete.addBrackets",将其设置为true。然后在VSCode的设置中搜索"python.autoComplete.addCallParenthesis",将其设置为true。这样可以使得VSCode在自动补全Odoo模块中的字段和方法时添加括号。 10. 配置Odoo模块路径:在VSCode的设置中搜索"python.autoComplete.addBrackets",将其设置为true。然后在VSCode的设置中搜索"python.autoComplete.addCallParenthesis",将其设置为true。这样可以使得VSCode在自动补全Odoo模块中的字段和方法时添加括号。 11. 配置Odoo模块路径:在VSCode的设置中搜索"python.autoComplete.addBrackets",将其设置为true。然后在VSCode的设置中搜索"python.autoComplete.addCallParenthesis",将其设置为true。这样可以使得VSCode在自动补全Odoo模块中的字段和方法时添加括号。 12. 配置Odoo模块路径:在VSCode的设置中搜索"python.autoComplete.addBrackets",将其设置为true。然后在VSCode的设置中搜索"python.autoComplete.addCallParenthesis",将其设置为true。这样可以使得VSCode在自动补全Odoo模块中的字段和方法时添加括号。 13. 配置Odoo模块路径:在VSCode的设置中搜索"python.autoComplete.addBrackets",将其设置为true。然后在VSCode的设置中搜索"python.autoComplete.addCallParenthesis",将其设置为true。这样可以使得VSCode在自动补全Odoo模块中的字段和方法时添加括号。 14. 配置Odoo模块路径:在VSCode的设置中搜索"python.autoComplete.addBrackets",将其设置为true。然后在VSCode的设置中搜索"python.autoComplete.addCallParenthesis",将其设置为true。这样可以使得VSCode在自动补全Odoo模块中的字段和方法时添加括号。 15. 配置Odoo模块路径:在VSCode的设置中搜索"python.autoComplete.addBrackets",将其设置为true。然后在VSCode的设置中搜索"python.autoComplete.addCallParenthesis",将其设置为true。这样可以使得VSCode在自动补全Odoo模块中的字段和方法时添加括号。 16. 配置Odoo模块路径:在VSCode的设置中搜索"python.autoComplete.addBrackets",将其设置为true。然后在VSCode的设置中搜索"python.autoComplete.addCallParenthesis",将其设置为true。这样可以使得VSCode在自动补全Odoo模块中的字段和方法时添加括号。 17. 配置Odoo模块路径:在VSCode的设置中搜索"python.autoComplete.addBrackets",将其设置为true。然后在VSCode的设置中搜索"python.autoComplete.addCallParenthesis",将其设置为true。这样可以使得VSCode在自动补全Odoo模块中的字段和方法时添加括号。 18. 配置Odoo模块路径:在VSCode的设置中搜索"python.autoComplete.addBrackets",将其设置为true。然后在VSCode的设置中搜索"python.autoComplete.addCallParenthesis",将其设置为true。这样可以使得VSCode在自动补全Odoo模块中的字段和方法时添加括号。 19. 配置Odoo模块路径:在VSCode的设置中搜索"python.autoComplete.addBrackets",将其设置为true。然后在VSCode的设置中搜索"python.autoComplete.addCallParenthesis",将其设置为true。这样可以使得VSCode在自动补全Odoo模块中的字段和方法时添加括号。 20. 配置Odoo模块路径:在VSCode的设置中搜索"python.autoComplete.addBrackets",将其设置为true。然后在VSCode的设置中搜索"python.autoComplete.addCallParenthesis",将其设置为true。这样可以使得VSCode在自动补全Odoo模块中的字段和方法时添加括号。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

r_nznf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值