0
votes

I have created a new module in OpenERP. I have created two user groups, manager and user. Next I want give permission to the manager, that he needs to access only the details of his own projects. I have added the below code in a security XML file.

<record id="property_rule_mat_mgmt_manager" model="ir.rule">
            <field name="name">Material Manage Rule</field>
            <field model="ir.model" name="model_id" ref="model_project_project"/>
            <field name="domain_force">['|',('project_id.members','=',user.id),('project_id.user_id','=',user.id)]</field>
            <field name="groups" eval="[(4,ref('group_mat_mgmt_manager')), (4,ref('group_mat_mgmt_user'))]"/>
        </record>  

but I got an error like this

Server Traceback (most recent call last): File "C:\OpenErp\openerp\openerp-web\addons\web\session.py", line 91, in send return openerp.netsvc.dispatch_rpc(service_name, method, args) File "C:\OpenErp\openerp\openobject-server\openerp\netsvc.py", line 361, in dispatch_rpc result = ExportService.getService(service_name).dispatch(method, params) File "C:\OpenErp\openerp\openobject-server\openerp\service\web_services.py", line 582, in dispatch security.check(db,uid,passwd) File "C:\OpenErp\openerp\openobject-server\openerp\service\security.py", line 40, in check pool = pooler.get_pool(db) File "C:\OpenErp\openerp\openobject-server\openerp\pooler.py", line 50, in get_pool return get_db_and_pool(db_name, force_demo, status, update_module)[1] File "C:\OpenErp\openerp\openobject-server\openerp\pooler.py", line 33, in get_db_and_pool registry = RegistryManager.get(db_name, force_demo, status, update_module, pooljobs) File "C:\OpenErp\openerp\openobject-server\openerp\modules\registry.py", line 154, in get update_module, pooljobs) File "C:\OpenErp\openerp\openobject-server\openerp\modules\registry.py", line 176, in new openerp.modules.load_modules(registry.db, force_demo, status, update_module) File "C:\OpenErp\openerp\openobject-server\openerp\modules\loading.py", line 329, in load_modules processed = load_marked_modules(cr, graph, states_to_load, force, status, report, loaded_modules) File "C:\OpenErp\openerp\openobject-server\openerp\modules\loading.py", line 244, in load_marked_modules loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules) File "C:\OpenErp\openerp\openobject-server\openerp\modules\loading.py", line 180, in load_module_graph load_data(module_name, idref, mode) File "C:\OpenErp\openerp\openobject-server\openerp\modules\loading.py", line 78, in load_data = lambda *args: _load_data(cr, *args, kind='data') File "C:\OpenErp\openerp\openobject-server\openerp\modules\loading.py", line 125, in _load_data tools.convert_xml_import(cr, module_name, fp, idref, mode, noupdate, report) File "C:\OpenErp\openerp\openobject-server\openerp\tools\convert.py", line 955, in convert_xml_import obj.parse(doc.getroot()) File "C:\OpenErp\openerp\openobject-server\openerp\tools\convert.py", line 848, in parse self._tags[rec.tag](self.cr, rec, n) File "C:\OpenErp\openerp\openobject-server\openerp\tools\convert.py", line 806, in _tag_record f_val = self.id_get(cr, f_ref) File "C:\OpenErp\openerp\openobject-server\openerp\tools\convert.py", line 825, in id_get res = self.model_id_get(cr, id_str) File "C:\OpenErp\openerp\openobject-server\openerp\tools\convert.py", line 834, in model_id_get return model_data_obj.get_object_reference(cr, self.uid, mod, id_str) File "C:\OpenErp\openerp\openobject-server\openerp\tools\cache.py", line 18, in lookup r = self.lookup(self2, cr, *args) File "C:\OpenErp\openerp\openobject-server\openerp\tools\cache.py", line 46, in lookup value = d[key] = self.method(self2, cr, *args) File "C:\OpenErp\openerp\openobject-server\openerp\addons\base\ir\ir_model.py", line 857, in get_object_reference data_id = self._get_id(cr, uid, module, xml_id) File "C:\OpenErp\openerp\openobject-server\openerp\tools\cache.py", line 18, in lookup r = self.lookup(self2, cr, *args) File "C:\OpenErp\openerp\openobject-server\openerp\tools\cache.py", line 46, in lookup value = d[key] = self.method(self2, cr, *args) File "C:\OpenErp\openerp\openobject-server\openerp\addons\base\ir\ir_model.py", line 850, in _get_id raise ValueError('No such external ID currently defined in the system: %s.%s' % (module, xml_id)) ValueError: No such external ID currently defined in the system: mat_mgmt.model_project_project

2

2 Answers

0
votes

Replace this line with

<field model="ir.model" name="model_id" ref="model_project_project"/> to

<field model="ir.model" name="model_id" ref="project.model_project_project"/>
0
votes

If anyone else if finding it difficult to find the correct model id, you can do the following.

  • Activate the developer mode
  • Go to Settings | Technical | Database Structure | Models
  • Find and select the model that you want
  • At the drop down at the top where it says "Debug view#", select "View Log (perm read)"

You will see the XML ID there