zoukankan      html  css  js  c++  java
  • Odoo访问权限(一)

    Odoo访问权限(一)

    四个ODOO权限管理层次

    • 一. Odoo 菜单级别: 即,不属于指定菜单所包含组的用户看不到该菜单。不安全,只是隐藏菜单,若用户知道菜单ID,仍然可以通过指定URL访问

    • 二. Odoo 对象级别: 即,对某个对象是否有‘创建,读取,修改,删除“的权限。OE中的对象可以简单理解为表对象,比如“客户”,“产品”,“销售订单”等都是对象

    • 三. Odoo 记录级别: 即,对对象表中的数据的访问权限。比如同样访问“客户”对象,业务员只能对自己创建的客户有访问的权限,而经理可以访问其所辖的业务员的所有“客户”对象,这里的访问也可以进一步明细到“创建,读取,修改,删除”的权限

    • 四. 字段级别: 即,一个对象或表上的某些字段的访问权限。比如产品的成本字段只有经理有读权限,比如订单上的单价字段只有经理才有修改的权限等。

    本章节介绍一二层次的权限

    在security文件夹下新建两个文件夹

    • model_security.xml

    • ir.model.access.csv

    用户组实例

    <?xml version="1.0" encoding="utf-8"?>
    <odoo>
    	<data noupdate="0">
        	<record model="ir.module.category" id="module_category_activity">
            	<field name="name"> 活动管理 </field>
        	</record>
        	<record model="res.groups" id="group_activity_user">
            	<field name="name"> 用户 </field>
            	<field name="category_id" ref="module_category_activity"/>
        	</record>
        	<record model="res.groups" id="group_activity_manager">
            	<field name="name"> 管理 </field>
            	<field name="implied_ids" eval="[(4, ref('group_activity_user'))]"/>
            	<field name="category_id" ref="module_category_activity"/>
        	</record>
    	</data>
    </odoo>
    

    权限分配实例

    id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
    
    access_activity_event_user,读权限,model_activity_event,group_activity_user,1,0,0,0
    access_activity_event_system_user,管理权限,model_activity_event,group_activity_manager,1,1,1,1
    
    access_activity_type_user,分类读权限,model_activity_type,group_activity_user,1,0,0,0
    access_activity_type_system_user,分类管理权限,model_activity_type,group_activity_manager,1,1,1,1
    
    • id: 可以自定义,不能重复

    • name: 自定义就可以

    • model_id:id: model_模型名称。注意,这里要把“.”全部换成“_”,否则会报错。

    • perm_read:读权限。有权限写‘1’,没权限写‘0’

    • perm_write: 编辑权限。有权限写‘1’,没权限写‘0’

    • perm_create: 创建权限。有权限写‘1’,没权限写‘0’

    • perm_unlink: 删除权限。有权限写‘1’,没权限写‘0’

    重点注意

    • 要在__manifest__.py文件中引入以上新建的两个文件

        # always loaded
        'data': [
        	'security/activity_security.xml',
        	'security/ir.model.access.csv',
        	'views/views.xml',
        	'views/templates.xml',
        	'views/menus.xml',
        	'data/activity_data.xml',
        ],
      
    • 最后安装或升级项目模块就可以试试效果了

  • 相关阅读:
    LeetCode 93. Restore IP Addresses
    LeetCode 92. Reverse Linked List II
    LeetCode 94. Binary Tree Inorder Traversal
    javaweb中重定向和请求转发(response.sendRedirect()和request.getRequestDispatcher(rul).forward(request,response)))的区别
    java关于jdbc的配置与使用步骤
    关于php中的include html文件的问题,为什么html可以在php中执行
    yii2 无法显示debug条的问题解决方法
    elasticsearch报错expected <block end>, but found BlockMappingStart解决方法
    sysctl -p 报错问题的解决方法
    yii2 Rbac使用yii命令一键建表
  • 原文地址:https://www.cnblogs.com/chenshuquan/p/10529718.html
Copyright © 2011-2022 走看看