【问题标题】:Security Access rules for custom module自定义模块的安全访问规则
【发布时间】:2013-10-08 03:27:12
【问题描述】:

我在尝试将 access rules 添加到我的自定义 openerp 模块时遇到问题。

已有security文件夹,并将文件夹和文件声明到__openerp__.py文件中。

还是没有运气。

我已经用另一个自定义模块做了这个,一切都很顺利,代码如下:

ir.model.access

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_solvencia_solvencia,solvencia.solvencia,model_solvencia_solvencia,compra_grafibond.group_purchase_usuario,1,1,1,1
access_solvencia_solvencia_manager,solvencia.solvencia manager,model_solvencia_solvencia,compra_grafibond.group_purchase_jefe,1,0,0,0
access_solvencia_solvencia_stock_manager,solvencia.solvencia,model_solvencia_solvencia,stock.group_stock_manager,1,0,1,0

module.py 中的模型:

import time
from datetime import datetime
from osv import osv, fields

class solvencia_solvencia(osv.osv):

_name = 'solvencia.solvencia'
_description = "Modulo para llevar las solvencias"


_columns = {
    'ministerio' : fields.char('Ministerio', size=64),
    'Fecha_de_Emision': fields.date('Fecha de Emision', required=True, select=True),
    'Fecha_de_Vence': fields.date('Fecha de Vencimiento', required=True, select=True),
    'user_id': fields.many2one('res.users', 'Responsible'),
    'ins_em' : fields.char('Institucion emisora', size=30),
    'cod_ver': fields.integer('Codigo de verificacion'),
    'nsol' : fields.char('Numero de solvencia'),
    'cadidate' : fields.date('Fecha de entrega CADIVI', required=True, select=True),
    'observa' : fields.text('Observaciones'),
}

_defaults = {
'user_id': lambda self, cr, uid, c: self.pool.get('res.users').browse(cr, uid, uid, c).id ,
}
solvencia_solvencia()

还有安全xml:

<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="0">

<record model="ir.module.category" id="module_category_purchase_management">
    <field name="name">Solvencias</field>
    <field name="parent_id" ref="base.module_category_purchase_management"/>
    <field name="sequence">9</field>
</record>

<record id="group_solvencias_user" model="res.groups">
    <field name="name">User</field>
    <field name="category_id" ref="module_category_purchase_management"/>
</record>

<record id="group_solvencias_manager" model="res.groups">
    <field name="name">Manager</field>
    <field name="category_id" ref="module_category_purchase_management"/>
    <field name="implied_ids" eval="[(4, ref('group_solvencia_user'))]"/>
    <field name="users" eval="[(4, ref('base.user_root'))]"/>
</record>

</data>

</openerp>

任何人都可以对此有所了解吗?

提前致谢!

【问题讨论】:

    标签: python xml module openerp


    【解决方案1】:

    快速查看代码,我建议您寻找以下更正:

    • 在您的 security.xml 文件组记录中,group_solvencias_manager 暗示 id 指的是不存在的 xml,我相信 eval="[(4, ref('group_solvencia_user'))]" 应该是 eval="[(4, ref('group_solvencias_user'))]"
    • 模块compra_grafibond 和模块stock 在此模块依赖项中。
    • 建议:字段名称不要使用标题或驼峰式。
    • 检查 __openerp__.py 是否有如下安全文件声明:

      '数据':[

      'security/solvica_security.xml',
      'security/ir.model.access.csv',
      

      ],

    我假设您使用的是 v7,如果您仍然面对,请告诉我。

    谢谢。

    【讨论】:

    • 完成!非常感谢,它是 'solvencias' 的名称,但它也是 openerp 文件中的错误,我有两个 'data' 行,哈哈。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-23
    • 1970-01-01
    • 2013-10-05
    • 1970-01-01
    • 2013-08-23
    • 1970-01-01
    相关资源
    最近更新 更多