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',
        ],
      
    • 最后安装或升级项目模块就可以试试效果了

  • 相关阅读:
    Amoeba -- 阿里巴巴工程师的开源项目之一陈思儒
    js表达式与语句的区别
    互联网公司github项目汇总
    CDN解决方案
    免费评论组件多说
    ajax同步的实现
    两种时间格式化对比
    Google Gson 使用简介
    使用XStream解析MXL文件用到的jar包---xpp3_min-1.1.3.4.O.jar和xstream-1.3.1.jar
    《Netty in Action》中文版
  • 原文地址:https://www.cnblogs.com/chenshuquan/p/10529718.html
Copyright © 2011-2022 走看看