This question has been flagged
1 Reply
5261 Views

import xmlrpclib

username = 'admin' #the user
pwd = 'admin'      #the password of the user
dbname = 'openerp' #the database

# Get the uid
sock_common = xmlrpclib.ServerProxy ('http://localhost:8069/xmlrpc/common')
uid = sock_common.login(dbname, username, pwd)

#replace localhost with the address of the server
sock = xmlrpclib.ServerProxy('http://localhost:8069/xmlrpc/object'

diki = {'id':1,'name':"myname",'model_id':1,'group_id': 1,'perm_read':0,'perm_write':1,'perm_create':0,'perm_unlink':1}


group = {
  'category_id': 1, # many2one
  'name': 'newgroup14', #simple field
  'implied_ids': [(6,0,[3, 2, 1])], #one2many
  'users' : [(6,0,[1])],
  'menu_access' : [(6,0,[1])], #many2many
  'view_access' : [(6,0,[1])],
  'comment' : 'chopito',
  'model_access' :diki
 
   } #many2many


#Read partner data

 

 

partner_id = sock.execute(dbname, uid, pwd, 'res.groups', 'create', group)

Avatar
Discard
Best Answer

It is easier to see from ir.model.access model perspective. So, after create that group with your script (no need model_access in group hash), you make access control with script like this

ret = sock.execute(dbname, uid, pwd, 'ir.model.access', 'create', {
                'name': diki['name'],
                'model_id': diki['model_id'],
                'group_id': partner_id,
                'perm_create': diki['perm_create'],
                'perm_read': diki['perm_read'],
                'perm_unlink': diki['perm_unlink'],
                'perm_write': diki['perm_write']
                })
            if ret:
                print 'ACL {} created'.format(diki['name'])

Avatar
Discard