Merge lp:~fabien-morin/unifield-server/fm-us-3081 into lp:unifield-server

Proposed by jftempo
Status: Merged
Merged at revision: 4549
Proposed branch: lp:~fabien-morin/unifield-server/fm-us-3081
Merge into: lp:unifield-server
Diff against target: 139 lines (+33/-6)
6 files modified
bin/addons/base/ir/ir_model.py (+4/-0)
bin/addons/base/res/res_user.py (+8/-0)
bin/addons/msf_profile/data.xml (+7/-0)
bin/addons/sync_client/sync_client.py (+3/-0)
bin/addons/sync_client/update.py (+4/-0)
bin/osv/orm.py (+7/-6)
To merge this branch: bzr merge lp:~fabien-morin/unifield-server/fm-us-3081
Reviewer Review Type Date Requested Status
UniField Reviewer Team Pending
Review via email: mp+331324@code.launchpad.net
To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'bin/addons/base/ir/ir_model.py'
--- bin/addons/base/ir/ir_model.py 2017-05-12 15:07:08 +0000
+++ bin/addons/base/ir/ir_model.py 2017-09-26 07:32:18 +0000
@@ -524,6 +524,10 @@
524 # TODO: exclude xml-rpc requests524 # TODO: exclude xml-rpc requests
525 return True525 return True
526526
527 if uid== self.pool.get('res.users')._get_sync_user_id(cr):
528 # User for sync have all accesses
529 return True
530
527 assert mode in ['read','write','create','unlink'], 'Invalid access mode'531 assert mode in ['read','write','create','unlink'], 'Invalid access mode'
528532
529 if isinstance(model, browse_record):533 if isinstance(model, browse_record):
530534
=== modified file 'bin/addons/base/res/res_user.py'
--- bin/addons/base/res/res_user.py 2017-06-22 14:27:28 +0000
+++ bin/addons/base/res/res_user.py 2017-09-26 07:32:18 +0000
@@ -233,6 +233,7 @@
233233
234class users(osv.osv):234class users(osv.osv):
235 __admin_ids = {}235 __admin_ids = {}
236 __sync_user_ids = {}
236 _uid_cache = {}237 _uid_cache = {}
237 _name = "res.users"238 _name = "res.users"
238 _order = 'name'239 _order = 'name'
@@ -544,6 +545,13 @@
544 self.__admin_ids[cr.dbname] = ir_model_data_obj.read(cr, 1, [mdid], ['res_id'])[0]['res_id']545 self.__admin_ids[cr.dbname] = ir_model_data_obj.read(cr, 1, [mdid], ['res_id'])[0]['res_id']
545 return self.__admin_ids[cr.dbname]546 return self.__admin_ids[cr.dbname]
546547
548 def _get_sync_user_id(self, cr):
549 if self.__sync_user_ids.get(cr.dbname) is None:
550 ir_model_data_obj = self.pool.get('ir.model.data')
551 mdid = ir_model_data_obj._get_id(cr, 1, 'base', 'user_sync')
552 self.__sync_user_ids[cr.dbname] = ir_model_data_obj.read(cr, 1, [mdid], ['res_id'])[0]['res_id']
553 return self.__sync_user_ids[cr.dbname]
554
547 def _get_company(self,cr, uid, context=None, uid2=False):555 def _get_company(self,cr, uid, context=None, uid2=False):
548 if not uid2:556 if not uid2:
549 uid2 = uid557 uid2 = uid
550558
=== modified file 'bin/addons/msf_profile/data.xml'
--- bin/addons/msf_profile/data.xml 2017-08-21 10:09:52 +0000
+++ bin/addons/msf_profile/data.xml 2017-09-26 07:32:18 +0000
@@ -43,6 +43,13 @@
43 <field name="context_lang">en_MF</field>43 <field name="context_lang">en_MF</field>
44 </record>44 </record>
4545
46 <record model="res.users" id="base.user_sync">
47 <field name="signature">Synch</field>
48 <field name="name">Synch</field>
49 <field name="login">synch</field>
50 <field name="context_lang">en_MF</field>
51 </record>
52
46 <record id="sale.shop" model="sale.shop">53 <record id="sale.shop" model="sale.shop">
47 <field name="name">MSF</field>54 <field name="name">MSF</field>
48 </record>55 </record>
4956
=== modified file 'bin/addons/sync_client/sync_client.py'
--- bin/addons/sync_client/sync_client.py 2017-09-04 07:28:47 +0000
+++ bin/addons/sync_client/sync_client.py 2017-09-26 07:32:18 +0000
@@ -1059,6 +1059,9 @@
1059 def execute_message(self, cr, uid, context=None):1059 def execute_message(self, cr, uid, context=None):
1060 context = context or {}1060 context = context or {}
1061 logger = context.get('logger')1061 logger = context.get('logger')
1062 # force user to user_sync
1063 uid = self.pool.get('res.users')._get_sync_user_id(cr)
1064
1062 messages = self.pool.get(context.get('message_received_model', 'sync.client.message_received'))1065 messages = self.pool.get(context.get('message_received_model', 'sync.client.message_received'))
10631066
1064 # Get the whole list of messages to execute1067 # Get the whole list of messages to execute
10651068
=== modified file 'bin/addons/sync_client/update.py'
--- bin/addons/sync_client/update.py 2017-08-18 10:05:40 +0000
+++ bin/addons/sync_client/update.py 2017-09-26 07:32:18 +0000
@@ -434,6 +434,10 @@
434 def execute_update(self, cr, uid, ids=None, priorities=None, context=None):434 def execute_update(self, cr, uid, ids=None, priorities=None, context=None):
435 context = dict(context or {}, sync_update_execution=True)435 context = dict(context or {}, sync_update_execution=True)
436 context['lang'] = 'en_US'436 context['lang'] = 'en_US'
437
438 # force user to user_sync
439 uid = self.pool.get('res.users')._get_sync_user_id(cr)
440
437 local_entity = self.pool.get('sync.client.entity').get_entity(441 local_entity = self.pool.get('sync.client.entity').get_entity(
438 cr, uid, context=context)442 cr, uid, context=context)
439443
440444
=== modified file 'bin/osv/orm.py'
--- bin/osv/orm.py 2017-08-18 14:26:52 +0000
+++ bin/osv/orm.py 2017-09-26 07:32:18 +0000
@@ -2240,8 +2240,9 @@
2240 self.check_id = 02240 self.check_id = 0
2241 cr.execute('delete from wkf_instance where res_type=%s', (self._name,))2241 cr.execute('delete from wkf_instance where res_type=%s', (self._name,))
22422242
2243 def _check_access(self, uid, object_id, mode):2243 def _check_access(self, cr, uid, object_id, mode):
2244 if uid != 1 and self.datas[object_id]['internal.create_uid'] != uid:2244 user_obj = self.pool.get('res.users')
2245 if uid != 1 and uid != user_obj._get_sync_user_id(cr) and self.datas[object_id]['internal.create_uid'] != uid:
2245 raise except_orm(_('AccessError'), '%s access is only allowed on your own records for osv_memory objects except for the super-user' % mode.capitalize())2246 raise except_orm(_('AccessError'), '%s access is only allowed on your own records for osv_memory objects except for the super-user' % mode.capitalize())
22462247
2247 def vaccum(self, cr, uid, force=False):2248 def vaccum(self, cr, uid, force=False):
@@ -2293,7 +2294,7 @@
2293 for f in fields_to_read:2294 for f in fields_to_read:
2294 record = self.datas.get(id)2295 record = self.datas.get(id)
2295 if record:2296 if record:
2296 self._check_access(user, id, 'read')2297 self._check_access(cr, user, id, 'read')
2297 r[f] = record.get(f, False)2298 r[f] = record.get(f, False)
2298 if r[f] and isinstance(self._columns[f], fields.binary) and context.get('bin_size', False):2299 if r[f] and isinstance(self._columns[f], fields.binary) and context.get('bin_size', False):
2299 r[f] = len(r[f])2300 r[f] = len(r[f])
@@ -2347,7 +2348,7 @@
2347 else:2348 else:
2348 upd_todo.append(field)2349 upd_todo.append(field)
2349 for object_id in ids:2350 for object_id in ids:
2350 self._check_access(user, object_id, mode='write')2351 self._check_access(cr, user, object_id, mode='write')
2351 try:2352 try:
2352 self.datas[object_id].update(vals2)2353 self.datas[object_id].update(vals2)
2353 except KeyError:2354 except KeyError:
@@ -2557,7 +2558,7 @@
25572558
2558 def unlink(self, cr, uid, ids, context=None):2559 def unlink(self, cr, uid, ids, context=None):
2559 for id in ids:2560 for id in ids:
2560 self._check_access(uid, id, 'unlink')2561 self._check_access(cr, uid, id, 'unlink')
2561 self.datas.pop(id, None)2562 self.datas.pop(id, None)
2562 if len(ids):2563 if len(ids):
2563 cr.execute('delete from wkf_instance where res_type=%s and res_id IN %s', (self._name, tuple(ids)))2564 cr.execute('delete from wkf_instance where res_type=%s and res_id IN %s', (self._name, tuple(ids)))
@@ -2568,7 +2569,7 @@
2568 credentials = self.pool.get('res.users').name_get(cr, user, [user])[0]2569 credentials = self.pool.get('res.users').name_get(cr, user, [user])[0]
2569 create_date = time.strftime('%Y-%m-%d %H:%M:%S')2570 create_date = time.strftime('%Y-%m-%d %H:%M:%S')
2570 for id in ids:2571 for id in ids:
2571 self._check_access(user, id, 'read')2572 self._check_access(cr, user, id, 'read')
2572 result.append({2573 result.append({
2573 'create_uid': credentials,2574 'create_uid': credentials,
2574 'create_date': create_date,2575 'create_date': create_date,

Subscribers

People subscribed via source and target branches