加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xml – Odoo 10:为自定义模块创建安全规则

发布时间:2020-12-16 22:48:46 所属栏目:百科 来源:网络整理
导读:目标:使用下拉菜单在用户表单中添加具有“演示模块访问”标签的选项,以选择自定义模块的安全组. 型号名称:simcard_simcard 模块名称:simcard 我的ir.model.access.csv: id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlinkde
目标:使用下拉菜单在用户表单中添加具有“演示模块访问”标签的选项,以选择自定义模块的安全组.

型号名称:simcard_simcard

模块名称:simcard

我的ir.model.access.csv:

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
demo_admin,Model admin access,model_simcard_simcard,simcard.group_manager,1,1
demo_user,Model user access,simcard.group_user,0

和我的安全> user_groups.xml:

<record model="ir.module.category" id="module_management">
    <field name="name">Demo module access</field>
    <field name="description">User access level for this module</field>
    <field name="sequence">3</field>
</record>

<record id="group_user" model="res.groups">
    <field name="name">User</field>
    <field name="implied_ids" eval="[(4,ref('base.group_user'))]"/>
    <field name="category_id" ref="simcard.module_management"/>
</record>

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

我的清单文件:

# any module necessary for this one to work correctly
    'depends': ['base'],# always loaded
    'data': [
        'security/user_groups.xml','security/ir.model.access.csv','views/views.xml','views/templates.xml',],'qweb': ['static/xml/tree_view_button.xml'],# only loaded in demonstration mode
    'demo': [
        'demo/demo.xml','installable': True,'auto_install': False,'application': True,}

我收到了这个错误:

018-10-10 11:00:32,234 8890 ERROR test werkzeug: Error on request:
Traceback (most recent call last):
  File "/Users/anubhavjhalani/odoo-env10/lib/python2.7/site-packages/werkzeug/serving.py",line 193,in run_wsgi
    execute(self.server.app)
  File "/Users/anubhavjhalani/odoo-env10/lib/python2.7/site-packages/werkzeug/serving.py",line 181,in execute
    application_iter = app(environ,start_response)
  File "/Users/anubhavjhalani/odoo10/odoo/service/server.py",line 245,in app
    return self.app(e,s)
  File "/Users/anubhavjhalani/odoo10/odoo/service/wsgi_server.py",line 186,in application
    return application_unproxied(environ,start_response)
  File "/Users/anubhavjhalani/odoo10/odoo/service/wsgi_server.py",line 172,in application_unproxied
    result = handler(environ,start_response)
  File "/Users/anubhavjhalani/odoo10/odoo/http.py",line 1326,in __call__
    return self.dispatch(environ,line 1300,in __call__
    return self.app(environ,start_wrapped)
  File "/Users/anubhavjhalani/odoo-env10/lib/python2.7/site-packages/werkzeug/wsgi.py",line 599,line 1482,in dispatch
    odoo.registry(db).check_signaling()
  File "/Users/anubhavjhalani/odoo10/odoo/__init__.py",line 52,in registry
    return modules.registry.Registry(database_name)
  File "/Users/anubhavjhalani/odoo10/odoo/modules/registry.py",line 59,in __new__
    return cls.new(db_name)
  File "/Users/anubhavjhalani/odoo10/odoo/modules/registry.py",line 83,in new
    odoo.modules.load_modules(registry._db,force_demo,status,update_module)
  File "/Users/anubhavjhalani/odoo10/odoo/modules/loading.py",line 373,in load_modules
    force,report,loaded_modules,update_module,models_to_check)
  File "/Users/anubhavjhalani/odoo10/odoo/modules/loading.py",line 270,in load_marked_modules
    perform_checks=perform_checks,models_to_check=models_to_check
  File "/Users/anubhavjhalani/odoo10/odoo/modules/loading.py",line 182,in load_module_graph
    _load_data(cr,module_name,idref,mode,kind='data')
  File "/Users/anubhavjhalani/odoo10/odoo/modules/loading.py",line 96,in _load_data
    tools.convert_file(cr,filename,noupdate,kind,report)
  File "/Users/anubhavjhalani/odoo10/odoo/tools/convert.py",line 845,in convert_file
    convert_xml_import(cr,module,fp,line 898,in convert_xml_import
    doc = etree.parse(xmlfile)
  File "src/lxml/lxml.etree.pyx",line 3427,in lxml.etree.parse (src/lxml/lxml.etree.c:85131)

  File "src/lxml/parser.pxi",line 1803,in lxml.etree._parseDocument (src/lxml/lxml.etree.c:124287)

  File "src/lxml/parser.pxi",line 1823,in lxml.etree._parseFilelikeDocument (src/lxml/lxml.etree.c:124599)

  File "src/lxml/parser.pxi",line 1718,in lxml.etree._parseDocFromFilelike (src/lxml/lxml.etree.c:123258)

  File "src/lxml/parser.pxi",line 1139,in lxml.etree._BaseParser._parseDocFromFilelike (src/lxml/lxml.etree.c:117808)

  File "src/lxml/parser.pxi",line 573,in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:110510)

  File "src/lxml/parser.pxi",line 683,in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:112276)

  File "src/lxml/parser.pxi",line 613,in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:111124)

XMLSyntaxError: Extra content at the end of the document,line 7,column 1

我错过了什么吗?此错误来自user_groups.xml.

解决方法

通常,与Manager相比,User具有有限的访问权限.因此,管理员拥有更多的root权限权限.

我已更新它,请尝试使用以下代码:

<record model="ir.module.category" id="module_management">
    <field name="name">Demo module access</field>
    <field name="description">User access level for this module</field>
    <field name="sequence">3</field>
</record>

<record id="group_user" model="res.groups">
    <field name="name">User</field>
    <field name="implied_ids" eval="[(4,ref('base.group_user'))]"/>
    <field name="category_id" ref="user_access_rights_demo.module_management"/>
</record>

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

其他那么你的代码对我来说没问题.

注意

这两个文件.xml和.csv必须在__manifest__.py中列出,因为给出了其他视图文件.就像是,

'data': [
    'security/user_groups.xml',]

然后,重新启动Odoo服务并升级simcard_simcard模块.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读