基于工作流状态的不同权限

2023-12-05

我需要根据对象的工作流程状态对对象设置不同的权限。例如,“经理组”仅在状态=草稿时才可以编辑对象,但“超级经理组”在状态=已验证时也可以编辑对象。

似乎不可能使用ir.model.access我正在评估是否可以使用ir.rule。看来不是...

有没有official获得此功能的方法还是我需要实现此功能(也许通过在 ir.model.access 机制中添加条件)。


默认情况下这是不可能的ir.model.access,因为此权限模型的设计类似于 CRUD 操作上的简单 Unix 权限,并且它是按模型和按组静态定义的。

您也许可以使用以下方法来实现类似的东西ir.rule,因为它实现了基于字段值的动态每记录访问控制。通过仅定义一组规则write and unlink操作并基于state字段,您将能够阻止某些组修改某些状态下的记录。通过使用永远正确的规则技术[(1,'=',1)]然后,您可以放宽对拥有“超级访问权限”组的用户的非全局规则。另请参阅此answer.
但是,此选项有重要的警告:

  • 小心不要让这些规则适用read,因为它会使记录完全消失,并且通常会对您的流程造成严重破坏
  • 当规则生效时,界面不会变成只读,如果你想让字段和按钮只读,你必须找到一种方法来指定它attrs以取决于用户组的方式。另请参阅此启动板问题.
  • UI 中的“保存”按钮不会被禁用
  • 在以下情况下的标准错误报告ir.rule限制不是很明确,所以肯定会让用户感到困惑(注:7.0 正在改进)

如您所见,使用ir.rule用于此目的的过滤器远非完美的解决方案,您首先需要为上述问题找到适当的解决方案。

最终,您可能会更轻松地为此实现自己的逻辑,在 ORM 原始 API 方法中插入新机制:fields_view_get(用于根据用户组使字段动态只读)和 CRUD 方法(用于实际限制操作)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于工作流状态的不同权限 的相关文章

  • 使用 java.nio.Files 更改 Linux 下的文件所有者组

    我有一台 Linux 服务器 并且正在 Java 中为服务器上的多个网站运行图像调整大小作业 网站文件由不同的操作系统用户 组拥有 新创建的缩略图 预览由运行调整大小作业的用户拥有 现在我正在谷歌搜索如何在调整大小程序中更改新创建的预览 缩
  • adb shell 的 BroadcastReceiver 权限

    考虑一个简单的工具 使用BroadcastReceiver实现一个简单的目标 因为这不应该被其他应用程序使用 所以它定义了一个保护级别为signature or signatureOrSystem
  • 无法在 odoo 10 Windows 中执行命令 lessc

    我想问一下在windows上安装odoo 10的问题 我有这样的错误 无法执行命令 lessc 我在另一篇文章中看到过这个问题 但他们的文章只是讨论 mac 和 ubuntu 服务器 而不是在 Windows 中 任何人都可以帮我解决这个
  • 当请求太大时,Nginx(我认为)会以错误的权限保存文件

    所以 我对托管和 Linux 等都是完全陌生的 所以如果我说错了 请原谅我 我还在学习 我正在使用 Django 创建一个小型个人网站 我想把它放到网上看看是否一切正常 我从 linode 买了一台便宜的服务器 并使用 Digital Oc
  • 我的小程序需要客户端访问资源的权限的策略文件位置在哪里?

    我发现我必须编写一个策略文件来授予我的小程序权限 但我真的很困惑 我想编写一个小程序 它是一个地图查看器 我需要在运行我的小程序的客户端上保存图像图块以在本地访问图块 以获得安全地查看地图的速度和时间 这对用户有利 因此 小程序需要授予读
  • 是否可以允许jenkins访问只有root或某些特定程序可以访问的文件?

    我基本上想做的是允许 jenkins 访问我的 android sdk linux 文件夹和所有子目录 我的老板不想自己更改文件夹的权限 我应该在构建过程中这样做 我见过一些在构建过程中在执行 shell 中运行一些命令的示例 是否可以在该
  • 更新通过 JungleDisk 上传的 Amazon S3 文件的权限

    我开始使用 Jungle Disk 将文件上传到与 Cloudfront 发行版相对应的 Amazon S3 存储桶 即我可以通过 http URL 访问它 并且我使用 Amazon 作为 CDN 我面临的问题是 Jungle Disk 没
  • 发布操作权限错误

    我在发布操作时遇到问题 我将publish actions添加到Items中 但出现如下错误 It looks like you haven t made any API requests to access content with th
  • 使用 Jenkins 运行 ios-sim

    我正在尝试使用以下命令从命令行启动我的应用程序ios sim https github com downloads pegli ios sim ios sim xcode4 3 tar gz但这就是我得到的 Started by user
  • PyCharm:安装包失败

    我需要安装一些软件包 无论我尝试哪个方向 情况只会变得更糟 请帮忙 40 497 执行错误 目录 Users doekewartena Library Caches pip http 或其父目录 不属于当前用户并且缓存已被禁用 请检查该目录
  • 权限被拒绝,但在清单中设置了权限

    我收到此错误 删除失败 ENOENT 没有此类文件或目录 storage emulated 0 screenShot jpgFileNotFoundException storage emulated 0 screenShot jpg 打开
  • Android 6 getAccountName() 缺少 android.permission.GET_ACCOUNTS

    在 Android 6 设备上运行时出现以下异常 java lang SecurityException Missing android permission GET ACCOUNTS 这看起来像是一个相当简单的例外 但对我来说并非如此 我
  • 使用管理员帐户运行asp.net程序

    我需要使用管理员帐户并启用桌面交互从 ASP NET 应用程序运行一个控制台应用程序 我尝试过下面的代码 控制台应用程序运行正常 但在网络服务帐户内 有什么想法如何在管理员帐户下运行控制台吗 string enginePath Server
  • 将密钥对添加到现有 EC2 实例

    我被给予AWS控制台访问正在运行 2 个实例的帐户 但我无法关闭 在生产中 但是 我想获得对这些实例的 SSH 访问权限 是否可以创建一个新的密钥对并将其应用到实例 以便我可以通过 SSH 访问 获取现有的pem当前无法选择创建实例所用的密
  • Android模拟器sd卡权限

    我正在使用 Eclipse 并尝试让 Android 模拟器让我写入 SD 卡 当我在手机上安装该应用程序时 它会提示接受所需的权限 并且该程序可以运行 当我尝试使用模拟器测试应用程序时 我没有收到提示 并且使用该程序会导致权限被拒绝 我尝
  • Amazon s3 – 403 禁止使用正确的存储桶策略

    我正在尝试使用以下存储桶策略 使存储在 s3 存储桶中的所有图像可供公开读取 Id Policy1380877762691 Statement Sid Stmt1380877761162 Action s3 GetObject Effect
  • 如何组织和管理ACL?

    采取Zend ACL http framework zend com manual en zend acl html作为我的例子 我想知道应该如何为项目组织它 当然 这个例子非常漂亮和简洁 但真实的网站要复杂得多 acl new Zend
  • 编写 CherryPy 装饰器以进行授权

    我有一个cherrypy应用程序 在某些视图上我想开始只允许某些用户查看它们 并将其他任何人发送到需要授权的页面 有没有办法使用自定义装饰器来做到这一点 我认为这将是最优雅的选择 这是我想做的一个基本示例 class MyApp autho
  • 为什么docker容器提示“权限被拒绝”?

    我使用以下命令来运行 docker 容器 并从主机映射目录 root database 到容器 tmp install database docker run it name oracle install v root database t
  • 本地分支显示在 GitHub 的“网络”视图上

    我们使用 Git 我们的工作流程由 dev 和 master 分支组成 它们位于 GitHub 和每个开发人员的本地存储库上 不会直接在 master 或 dev 上执行任何工作 而是在本地分支中执行工作 并且仅在 dev 上进行合并 然后

随机推荐