title: Odoo 10 :Creating Security rules for custom module
body: <p><strong>Goal</strong> : To add an option in the user form that has the label ‘Demo module access’ with a drop down menu to choose the security groups for a custom module.</p>
  
  <p><strong>Model name</strong> : simcard_simcard</p>
  
  <p><strong>Module name</strong> : simcard</p>
  
  <p>my ir.model.access.csv :</p>
  
  <pre><code>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,1,1
  demo_user, Model user access,model_simcard_simcard,simcard.group_user,1,0,0,0
  </code></pre>
  
  <p>and my security>user_groups.xml :</p>
  
  <pre><code>    &lt;record model="ir.module.category" id="module_management"&gt;
      &lt;field name="name"&gt;Demo module access&lt;/field&gt;
      &lt;field name="description"&gt;User access level for this module&lt;/field&gt;
      &lt;field name="sequence"&gt;3&lt;/field&gt;
  &lt;/record&gt;
  
  &lt;record id="group_user" model="res.groups"&gt;
      &lt;field name="name"&gt;User&lt;/field&gt;
      &lt;field name="implied_ids" eval="[(4, ref('base.group_user'))]"/&gt;
      &lt;field name="category_id" ref="simcard.module_management"/&gt;
  &lt;/record&gt;
  
  &lt;record id="group_manager" model="res.groups"&gt;
      &lt;field name="name"&gt;Manager&lt;/field&gt;
      &lt;field name="implied_ids" eval="[(4, ref('simcard.group_user'))]"/&gt;
      &lt;field name="category_id" ref="simcard.module_management"/&gt;
      &lt;field name="users" eval="[(4, ref('base.user_root'))]"/&gt;
  &lt;/record&gt;
  </code></pre>
  
  <p>My manifest file : </p>
  
  <pre><code># 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,
  }
  </code></pre>
  
  <p>And i got this error : </p>
  
  <pre><code>    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, start_response)
    File "/Users/anubhavjhalani/odoo10/odoo/http.py", 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, in __call__
      return self.app(environ, start_response)
    File "/Users/anubhavjhalani/odoo10/odoo/http.py", 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, status, 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, module_name, filename, idref, mode, noupdate, kind, report)
    File "/Users/anubhavjhalani/odoo10/odoo/tools/convert.py", line 845, in convert_file
      convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
    File "/Users/anubhavjhalani/odoo10/odoo/tools/convert.py", 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
  </code></pre>
  
  <p>Am i missing something ? this error is coming from user_groups.xml.</p>