Odoo 10:安全访问自定义模块

时间:2018-10-11 12:38:32

标签: xml security customization odoo multiple-users

我尝试通过以下线程Odoo 10 : Custom module doesn't appear in top black menu after installation

为自定义模块创建自定义用户组,以使其显示在顶部菜单中

模块名称:simcard

型号名称:simcard.simcard

我的csv文件:

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

我的user_groups.xml:

<odoo>
  <data>
    <record model="ir.module.category" id="module_management">
      <field name="name">Simcard</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="users" eval="[(4, ref('base.user_root'))]"/>
     <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"/>
    </record>
   </data>
</odoo>

当我以./odoo-bin -u simcard启动odoo时,出现以下我不明白的错误:

    [12/Oct/2018 08:41:34] "POST /longpolling/poll HTTP/1.1" 500 -
2018-10-12 08:41:34,354 470 ERROR Dev-DB werkzeug: Error on request:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/werkzeug/serving.py", line 180, in run_wsgi
    execute(self.server.app)
  File "/usr/lib/python2.7/dist-packages/werkzeug/serving.py", line 168, in execute
    application_iter = app(environ, start_response)
  File "/odoo/odoo-server/odoo/service/server.py", line 244, in app
    return self.app(e, s)
  File "/odoo/odoo-server/odoo/service/wsgi_server.py", line 186, in application
    return application_unproxied(environ, start_response)
  File "/odoo/odoo-server/odoo/service/wsgi_server.py", line 172, in application_unproxied
    result = handler(environ, start_response)
  File "/odoo/odoo-server/odoo/http.py", line 1326, in __call__
    return self.dispatch(environ, start_response)
  File "/odoo/odoo-server/odoo/http.py", line 1300, in __call__
    return self.app(environ, start_wrapped)
  File "/usr/lib/python2.7/dist-packages/werkzeug/wsgi.py", line 591, in __call__
    return self.app(environ, start_response)
  File "/odoo/odoo-server/odoo/http.py", line 1482, in dispatch
    odoo.registry(db).check_signaling()
  File "/odoo/odoo-server/odoo/__init__.py", line 52, in registry
    return modules.registry.Registry(database_name)
  File "/odoo/odoo-server/odoo/modules/registry.py", line 59, in __new__
    return cls.new(db_name)
  File "/odoo/odoo-server/odoo/modules/registry.py", line 83, in new
    odoo.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/odoo/odoo-server/odoo/modules/loading.py", line 373, in load_modules
    force, status, report, loaded_modules, update_module, models_to_check)
  File "/odoo/odoo-server/odoo/modules/loading.py", line 270, in load_marked_modules
    perform_checks=perform_checks, models_to_check=models_to_check
  File "/odoo/odoo-server/odoo/modules/loading.py", line 182, in load_module_graph
    _load_data(cr, module_name, idref, mode, kind='data')
  File "/odoo/odoo-server/odoo/modules/loading.py", line 96, in _load_data
    tools.convert_file(cr, module_name, filename, idref, mode, noupdate, kind, report)
  File "/odoo/odoo-server/odoo/tools/convert.py", line 845, in convert_file
    convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
  File "/odoo/odoo-server/odoo/tools/convert.py", line 915, in convert_xml_import
    obj.parse(doc.getroot(), mode=mode)
  File "/odoo/odoo-server/odoo/tools/convert.py", line 796, in parse
    self.parse(rec, mode)
  File "/odoo/odoo-server/odoo/tools/convert.py", line 799, in parse
    self._tags[rec.tag](rec, de, mode=mode)
  File "/odoo/odoo-server/odoo/tools/convert.py", line 707, in _tag_record
    id = self.env(context=rec_context)['ir.model.data']._update(rec_model, self.module, res, rec_id or False, not self.isnoupdate(data_node), noupdate=self.isnoupdate(data_node), mode=self.mode)
  File "/odoo/odoo-server/odoo/addons/base/ir/ir_model.py", line 1197, in _update
    record.write(values)
  File "/odoo/odoo-server/odoo/addons/base/res/res_users.py", line 724, in write
    self._update_user_groups_view()
  File "/odoo/odoo-server/odoo/addons/base/res/res_users.py", line 786, in _update_user_groups_view
    view.with_context(lang=None).write({'arch': xml_content, 'arch_fs': False})
  File "/odoo/odoo-server/odoo/addons/base/ir/ir_ui_view.py", line 380, in write
    return super(View, self).write(self._compute_defaults(vals))
  File "/odoo/odoo-server/odoo/models.py", line 3586, in write
    field.determine_inverse(records)
  File "/odoo/odoo-server/odoo/fields.py", line 1046, in determine_inverse
    getattr(records, self.inverse)()
  File "/odoo/odoo-server/odoo/addons/base/ir/ir_ui_view.py", line 220, in _inverse_arch
    view.write(data)
  File "/odoo/odoo-server/odoo/addons/base/ir/ir_ui_view.py", line 380, in write
    return super(View, self).write(self._compute_defaults(vals))
  File "/odoo/odoo-server/odoo/models.py", line 3568, in write
    self._write(old_vals)
  File "/odoo/odoo-server/odoo/models.py", line 3732, in _write
    self._validate_fields(vals)
  File "/odoo/odoo-server/odoo/models.py", line 1081, in _validate_fields
    raise ValidationError("%s\n\n%s" % (_("Error while validating constraint"), tools.ustr(e)))
ParseError: "Error while validating constraint

Field `ignore_on_api` does not exist

Error context:
View `res.users.groups`
[view_id: 155, xml_id: base.user_groups_view, model: res.users, parent_id: 152]
None" while parsing /odoo/odoo-server/addons/simcard/security/user_groups.xml:37, near
<record id="group_simcard_user" model="res.groups">
        <field name="name">Officer2</field>
        <field name="category_id" ref="base.module_category_human_resources"/>
        <field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
        <field name="comment">the user will be able to approve document created by employees.</field>
    </record>

ignore_on_api 字段存在于res.partner和user表中。我相信这不是错误的根源,因为当我删除 users_groups.xml 时,此错误就消失了。

信息:同一模块已安装在另一台计算机上的另一个odoo中,并且不会出现任何错误。

任何想法我应该为这个错误做什么?

0 个答案:

没有答案