我必须设置两个用户角色 CEO 和董事总经理
他们的许可如下
1) 采购申请
-> CEO - 阅读、写作、创造
-> 总经理 - 阅读
2) 库存
-> CEO - 阅读、写作、创造
-> 总经理 - 读、写、创建
我怎么能在openerp中做到这一点?
OpenERP 中的安全性:用户、组 用户和用户角色是涉及 OpenERP 内部安全的关键点。OpenERP 提供了几种有关用户角色的安全机制,所有这些都在 OpenERP 服务器中实现。它们在最低的服务器级别实现,即 ORM 引擎。OpenERP 区分了三个不同的概念:
用户:由其登录名和密码标识的人。请注意,公司的所有员工不一定都是 OpenERP 用户;用户是访问应用程序的人。组:具有某些访问权限的用户组。组将其访问权限授予属于该组的用户。例如:销售经理、会计等。 安全规则:定义给定组授予其用户的访问权限的规则。安全规则附加到给定资源,例如 Invoice 模型。安全规则附加到组。用户被分配到几个组。这为用户提供了附加到其组的权限。因此,控制用户角色是通过管理用户组并添加或修改附加到这些组的安全规则来完成的。
用户
用户代表使用 OpenERP 的自然人。他们通过登录名和密码来识别,他们使用 OpenERP,他们可以编辑自己的偏好,... 默认情况下,用户没有访问权限。我们为用户分配的组越多,他或她就越有权执行某些操作。一个用户可能属于多个组。
用户组
这些组确定对不同资源的访问权限。一个用户可能属于多个组。如果他属于多个组,我们总是使用对选定资源具有最高权限的组。一个组可以继承另一个组的所有权限
图 3 显示了组成员身份在 Web 客户端中的显示方式。用户属于销售/经理、会计/经理、管理/访问权限、管理/配置和人力资源/员工组。这些组定义用户访问权限。
图 3:给定用户的组成员身份示例
权利
安全规则附加到组。您可以在组级别分配多个安全规则,每个规则属于以下类型之一:
访问权限是对象的全局权限,记录规则是记录访问过滤器,字段访问权限,工作流转换规则是操作权限。您还可以定义全局规则,即它们适用于所有用户,不分青红皂白地属于他们的组。例如,多公司规则是全局的;用户只能查看他或她所属公司的发票。
关于配置,很难有适合所有应用程序的默认通用配置。因此,与 SAP 一样,OpenERP 默认预配置了最佳实践。
访问权限
访问权限是定义用户可以对特定对象拥有的访问权限的规则。这些全局权限是按文档类型或模型定义的。权限遵循 CRUD 模型:创建、读取(搜索)、更新(写入)、删除。例如,您可以定义发票创建规则。默认情况下,向对象添加权限会授予对该特定对象的所有记录的权限。
图 4 显示了 Accounting / Accountant 组的一些访问权限。用户对某些对象具有某些读取访问权限。
图 4:某些对象的访问权限。
记录规则
访问对象时,会根据记录规则过滤记录。因此,记录规则或访问过滤器是限制组可以访问的对象记录的过滤器。记录规则是每个记录必须满足才能创建、读取、更新(写入)或删除的条件。不满足约束的记录将被过滤。
例如,您可以创建一个规则来限制组,使该组的用户可以看到将他或她标记为推销员的商机。规则可以是 salesman = connected_user。使用该规则,只会显示符合该规则的记录。
字段访问权限
7.0 版中的新功能。
OpenERP 现在支持现场级别的真正访问控制,而不仅仅是视图方面。以前已经可以在元素(或者实际上是大多数视图元素)上设置组属性,但仅具有装饰效果:该元素在客户端不可见,但仍然可以在 RPC 上完美地进行读/写访问等级。
从 OpenERP 7.0 开始,现有行为保留在视图级别,但所有模型字段都提供了一个新的组属性,在每个字段上引入了模型级别的访问控制。语法与视图级属性相同:
_columns = { 'secret_key': fields.char('Secret Key', groups="base.group_erp_manager,base.group_system") } 视图级别的 groups 属性有一个主要区别:实际上是在模型级别限制访问表示该字段对于不属于授权组的用户将完全不可用:
受限字段将从所有相关视图中完全删除,而不仅仅是隐藏。记住这一点很重要,因为这意味着字段值在客户端根本不可用,因此对于 on_change 调用不可用。
受限字段不会作为调用 fields_get() 或 fields_view_get() 的一部分返回,例如,这是为了避免它们出现在可用于高级搜索过滤器的字段列表中。这并不妨碍通过直接查询 ir.model.fields 来获取模型的字段列表,这很好。
任何直接读取或写入受限字段值的尝试都将导致 AccessError 异常。
作为上一项的结果,受限字段将不可用于搜索过滤器(域)或任何需要读取或写入访问权限的内容。
很有可能在模型和视图级别为同一字段设置组属性,即使具有不同的值。两者都将发挥作用,模型级别的限制优先,并在限制的情况下完全删除该字段。
笔记
与此功能相关的测试在 openerp/tests/test_acl.py 中。
工作流转换规则
工作流转换规则是将某些操作限制到某些组的规则。这些规则处理工作流程中从一个步骤转到另一个步骤的权限。例如,您可以限制验证发票的权利,即从草稿操作变为经过验证的操作。
菜单访问
在 OpenERP 中,可以使用用户组来授予对菜单的访问权限。每个用户都可以访问未授予任何组的菜单。可以在管理面板中定义可以访问给定菜单的组。
但是,应该注意,使用组来隐藏或访问菜单更多地属于人体工程学或可用性领域,而不是安全领域。将规则放在文档上而不是将组放在菜单上是最佳实践。比如隐藏发票可以通过修改发票对象的记录规则来实现,比隐藏发票相关的菜单更加高效和安全。
视图自定义
在 OpenERP 中可以基于组自定义视图。您可以根据组规则放置规则以显示某些字段。但是,与菜单访问自定义一样,出于安全考虑,不应考虑此选项。这种自定义视图的方式更多地属于可用性。
行政
在安装您的特定 OpenERP 实例时,默认情况下会安装特定的第一个用户。第一个用户是超级用户或管理员。默认情况下,管理员添加了对每个现有组以及在新模块安装期间创建的每个组的访问权限。他还可以通过管理菜单访问特定的管理界面,从而可以管理 OpenERP。
管理员有权管理群组;他可以添加、创建、修改或删除组。他还可以修改用户和组之间的链接,例如添加或删除用户。他还管理访问权限。有了这些权限,管理员就可以精确地定义每个 OpenERP 用户的安全访问权限。
有介于普通组和超级用户之间的用户组。这些组是管理/配置和管理/访问权限。它为这些组的用户提供了配置访问权限的必要权限。
您可以忽略这一点并为
转到设置-> 组-> 创建组
而不是分配访问权限,您可以创建自己的访问权限
设置 -> 用户和组将为您提供执行配置
您可以为用户和组添加读、写、删除、创建权限
您还可以添加域过滤器。
您也可以添加规则