jjzjj

【odoo14】【用户侧】权限配置

序说技术分享 2023-03-28 原文

以下内容仅适用于odoo的客户,不适用于开发人员。
下文介绍中涉及的概念及UI均是在odoo14社区版中进行。

一、 odoo中的对象

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

二、 权限控制

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

2.1 实现原理

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

2.2 UI方式实现权限控制

  1. 激活开发者模式

  2. 激活后,可在设置的二级菜单中看到多了群组翻译技术菜单。此处只讲权限,因此我们进入群组。

  3. 在群组页面下,已列出了目前系统中在用的群组。我们以【会计】模块下的【发票】群组为例进行讲解。

  4. 在发票群组的form视图下,我们可以配置属于该群组的用户、群组继承关系、菜单、视图、访问权限、记录规则。

下面我们针对以上提到的每一类对象进行详细说明

2.2.1 用户

直接将用户配置到该群组,同一用户可属于多个群组,因此即可具备多个群组的权限。
多个群组之间是的关系,即权限是累加的。因此,若用户需创建一个新的权限组,那么可以全部重新配置对象权限或者可以查找最接近目标的权限组进行集成,然后再添加需要的权限即可。

2.2.2 继承

该群组继承自另一个群组,且在该群组添加用户后,该用户也将同步属于继承的群组。

2.2.3 菜单

菜单是指该权限组允许访问的菜单。
用户可直接在UI层面增删改。但不建议,存在丢失风险。

2.2.4 视图

用户通过odoo系统,在后台中看到所有的页面均是以视图的形式存在,视图在服务器中的存在形式是XML文件,并以字符串的形式存储在数据库中。
用户可直接在UI层面增删改。但不建议,存在丢失风险。

2.2.5 访问权限

访问权限针对的对象是odoo中的数据模型,涉及的权限为其实就是数据库中的CURD(创建、写、读、删除)。
用户可直接修改该群组对于某一模型操作的权限控制,同样也可以针对模型进行新增、删除。但不建议,存在丢失风险。

2.2.6 记录规则

记录规则针对的是已存储在系统中的具体记录信息。比如,在数据库层面,销售订单是存储在同一个表结构中的。但在多公司的模式下,我们有时并不希望某些员工看到其他公司的销售情况。因此,就可以通过限制销售订单的访问记录实现。下图中的[(1,'=',1)]代表是具备针对该模型的全部访问权限。
其中记录规则还可以限制记录是在何种操作方式下生效,比如限制用户只能修改自己创建的销售单等。
以上内容,用户同样可直接在UI层面增删改。但不建议,存在丢失风险。

2.2.7 模型字段的控制

我们知道,在odoo中,所有的数据记录都是依赖于模型存在的,模型对应的又是数据库中的表。模型的组成中包括字段、类型等基本信息。分别对应数据库表中的列及列类型。在代码层面,我们可以实现针对特定模型某个字段的权限控制。比如,我们在销售单中新建利润字段,该字段可根据实际的成本价及售价自动生成。便于管理层直观的了解此次销售的基本情况。但是,我们并不想普通的员工了解到这些信息。那么,我们就可以将该字段分配到特定的群组。
以上内容,用户同样可直接在UI层面实现。但不建议,存在丢失风险。

  1. 配置页面在,一级菜单【设置】- 二级菜单【技术】- 三级菜单【模型】进入特定模型的列表视图。

  2. 点击进入具体的某个模型的form视图,将列出该模型的基本情况。

  3. 若此处,我们想限制部分用户访问库存模型下的会计日期字段,可点击该字段。在访问权限中添加针对该字段的特定群组的访问控制。但不建议,存在丢失风险。

odoo中的针对用户侧的权限控制基本操作如上,我在每个操作中都添加了存在丢失风险字样。
原因如下:

  1. 我们在通过UI进行的任何调整,都是直接体现数据库中的。那么当我们在特殊情况下,需要对数据库进行重建时,以上修改的内容全部都会丢失。
  2. 在使用odoo的过程中,一定会存在根据业务的调整,进行二开的需求。那么通过页面上直接调整的方式,将直接导致在后续二开中碰到非常多奇怪的问题。

有关【odoo14】【用户侧】权限配置的更多相关文章

  1. ruby-on-rails - 独立 ruby​​ 脚本的配置文件 - 2

    我有一个在Linux服务器上运行的ruby​​脚本。它不使用rails或任何东西。它基本上是一个命令行ruby​​脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg

  2. ruby-on-rails - 使用 rails 4 设计而不更新用户 - 2

    我将应用程序升级到Rails4,一切正常。我可以登录并转到我的编辑页面。也更新了观点。使用标准View时,用户会更新。但是当我添加例如字段:name时,它​​不会在表单中更新。使用devise3.1.1和gem'protected_attributes'我需要在设备或数据库上运行某种更新命令吗?我也搜索过这个地方,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。 最佳答案 如果您想允许额外的参数,您可以在ApplicationController中使用beforefilter,因为Rails4将参数

  3. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  4. ruby-on-rails - 简单的 Ruby on Rails 问题——如何将评论附加到用户和文章? - 2

    我意识到这可能是一个非常基本的问题,但我现在已经花了几天时间回过头来解决这个问题,但出于某种原因,Google就是没有帮助我。(我认为部分问题在于我是一个初学者,我不知道该问什么......)我也看过O'Reilly的RubyCookbook和RailsAPI,但我仍然停留在这个问题上.我找到了一些关于多态关系的信息,但它似乎不是我需要的(尽管如果我错了请告诉我)。我正在尝试调整MichaelHartl'stutorial创建一个包含用户、文章和评论的博客应用程序(不使用脚手架)。我希望评论既属于用户又属于文章。我的主要问题是:我不知道如何将当前文章的ID放入评论Controller。

  5. ruby - RVM "ERROR: Unable to checkout branch ."单用户 - 2

    我在新的Debian6VirtualBoxVM上安装RVM时遇到问题。我已经安装了所有需要的包并使用下载了安装脚本(curl-shttps://rvm.beginrescueend.com/install/rvm)>rvm,但以单个用户身份运行时bashrvm我收到以下错误消息:ERROR:Unabletocheckoutbranch.安装在这里停止,并且(据我所知)没有安装RVM的任何文件。如果我以root身份运行脚本(对于多用户安装),我会收到另一条消息:Successfullycheckedoutbranch''安装程序继续并指示成功,但未添加.rvm目录,甚至在修改我的.bas

  6. Vscode+Cmake配置并运行opencv环境(Windows和Ubuntu大同小异) - 2

    之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m

  7. 神州数码无线产品(AC+AP)配置 - 2

    注意:本文主要掌握DCN自研无线产品的基本配置方法和注意事项,能够进行一般的项目实施、调试与运维AP基本配置命令AP登录用户名和密码均为:adminAP默认IP地址为:192.168.1.10AP默认情况下DHCP开启AP静态地址配置:setmanagementstatic-ip192.168.10.1AP开启/关闭DHCP功能:setmanagementdhcp-statusup/downAP设置默认网关:setstatic-ip-routegeteway192.168.10.254查看AP基本信息:getsystemgetmanagementgetmanaged-apgetrouteAP配

  8. hadoop安装之保姆级教程(二)之YARN的配置 - 2

    1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模

  9. ruby - rbenv 安装权限被拒绝 - 2

    大家好,我正在尝试设置一个开发环境,并且我一直在关注以下教程:Linktotutorial我做得不是很好,除了最基本的版本控制内容外,我对终端命令没有任何实际经验。我点击了第一个链接并尝试运行source~/.bash_profile我得到了错误;mkdir:/usr/local/rbenv/shims:权限被拒绝mkdir:/usr/local/rbenv/versions:权限被拒绝现在每次我加载终端时都会出现错误。bash_profile的内容;exportPATH=/usr/local/rbenv/bin:$PATHexportRBENV_ROOT=/usr/local/rbe

  10. Ruby 默认将 IRB 配置为 Pretty_Inspect - 2

    我是ruby​​的新手,正在配置IRB。我喜欢pretty-print(需要'pp'),但总是输入pp来漂亮地打印它似乎很麻烦。我想做的是默认情况下让它漂亮地打印出来,所以如果我有一个var,比如说,'myvar',然后键入myvar,它会自动调用pretty_inspect而不是常规检查。我从哪里开始?理想情况下,我将能够向我的.irbrc文件添加一个自动调用的方法。有什么想法吗?谢谢! 最佳答案 irb中默认pretty-print对象正是hirb被迫去做。Theseposts解释hirb如何将几乎所有内容转换为ascii表。虽

随机推荐