• Odoo安装教程7-创建新的插件模块第六讲


    添加权限组

    普通用户在使用功能前需获得相应的权限。 Odoo 中使用安全组来实现,权限授予组,组中分配用户。 Odoo 应用通常有两个组:针对普通用户的用户组,包含额外应用配置权限的管理员组。
    下面我们就来添加这两个安全组。权限安全相关的文件通常放在模块下/security 子目录中,这里我们创建 security/library_security.xml 文件来进行权限定义。安全组使用分类来更好地组织关联应用。所以第一步我们在 ir.module.category 模型中创建针对图书应用的分类:

    <?xml version="1.0" ?>
    <odoo>
    <record id="module_library_category" model="ir.module.category">
    <field name="name">Library</field>
    </record>
    </odoo>

    下一步,我们要添加两个安全组,首先添加用户组。在以上结束标签前添加如下 XML 代码块:

    <!-- Library User Group -->
    <record id="library_group_user" model="res.groups">
    <field name="name">User</field>
    <field name="category_id" ref="module_library_category" />
    <field name="implied_ids" eval="[(4, ref('base.group_user'))]" />
    </record>

    记录在 res.groups 模型中创建,添加了三个字段:
    ⚫ name:组名
    ⚫ category_id:关联应用,这是一个关联字段,因此使用了 ref 属性来通过 XML ID 连接已
    创建的分类
    ⚫ implied_ids:这是一个 one-to-many 关联字段,包含一系列组来对组内用户生效。这里使用了一个特殊语法,在本系列文章第五篇 Odoo 12 开发之导入、导出以及模块数据中会进行介绍。我们使用了编号 4 来连接基本内部用户组 base.group_user。
    然后我们创建管理员组,授予用户组的所有权限以及为应用管理员保留的其它权限:

    <!-- Library Manager Group -->
    <record id="library_group_manager" model="res.groups">
    <field name="name">Manager</field>
    <field name="category_id" ref="module_library_category" />
    <field name="implied_ids" eval="[(4, ref('library_group_user'))]" />
    <field name="users" eval="[
    (4, ref('base.user_root')),
    (4, ref('base.user_admin'))
    ]" />
    </record>

    像用户组一样,这里也有 name, category_id 和 implied_ids , implied_ids 关联了图书用户
    组,以继承其权限。还添加了一个 users 字段,让管理员和内部 root 用户自动成为应用管理员。
    “ 小贴士: 在 Odoo 老版本中, admin 管理员用户同时也是 root 用户。 Odoo 12 中有一个系统 root 用户,在用户列表中不显示,仅在框架需要进行提权(sudo)时在内部使用。 admin 可以登入系统并应拥有所有功能的访问权限,但不再像系统 root 用户那样可以绕过访问限制。 ”同样需要在声明文件中添加该 XML 文件:

    'data': [
    'security/library_security.xml',
    'views/library_menu.xml',
    ],

    注意 library_security.xml 加在 library_menu.xml 文件之前,数据文件的加载顺序非常重要,因为我们只能引用已经定义过的标识符。菜单项经常引用到安全组,所以建议将安全组定义文件放到菜单和视图文件之前。

    更多教程:https://www.erpdaxue.cn/odoo/odoo-teach/

  • 相关阅读:
    ASP.NET实现进度条效果【转】
    删除指定创建日期前的文件夹、文件
    MS SQL SERVER执行大脚本文件时,提示“内存不足”的解决办法
    solr之functionQuery(函数查询)【转】
    解决Jenkins连接git时报错Permission denied (publickey)
    vscode csharp c#开发 自动引入命名空间
    nginx配置后外网无法访问
    jenkins node 版本无法使用最新的版本
    jenkins npm install WARN checkPermissions Missing write access 权限问题
    小程序setData只修改对象中的某个属性的方法
  • 原文地址:https://www.cnblogs.com/odoo14/p/12867881.html
Copyright © 2020-2023  润新知