Reviewers: ,


Please review this at http://codereview.tryton.org/30003/

Affected files:
  M trytond/ir/rule.py


Index: trytond/ir/rule.py
===================================================================

--- a/trytond/ir/rule.py
+++ b/trytond/ir/rule.py
@@ -158,6 +158,7 @@
         rule_group_user_obj = self.pool.get('ir.rule.group-res.user')
         rule_group_group_obj = self.pool.get('ir.rule.group-res.group')
         user_group_obj = self.pool.get('res.user-res.group')
+        user_obj = self.pool.get('res.user')

         cursor = Transaction().cursor
         cursor.execute('SELECT r.id FROM "' + self._table + '" r ' \
@@ -186,15 +187,17 @@
         clause_global = {}
         operand2query = self._operand_get('res.user', level=1,
                 recur=['many2one'], root_tech='user', root='User')
+        user_id = Transaction().user
+        with Transaction().set_user(0, set_context=True):
+            user = user_obj.browse(user_id)
         # Use root user without context to prevent recursion
-        user = Transaction().user
         with contextlib.nested(Transaction().set_user(0),
                 Transaction().set_context(user=0)):
             for rule in self.browse(ids):
                 dom = safe_eval("[('%s', '%s', %s)]" % \
                         (rule.field.name, rule.operator,
                             operand2query[rule.operand]), {
- 'user': self.pool.get('res.user').browse(user),
+                                'user': user,
                                 'time': time,
                                 })

@@ -221,7 +224,8 @@
'FROM "' + rule_group_group_obj._table + '" g_rel ' \
                             'JOIN "' + user_group_obj._table + '" u_rel ' \
                                 'ON g_rel.group_id = u_rel.gid ' \
-                        'WHERE u_rel.uid = %s))', (model_name, user, user))
+                        'WHERE u_rel.uid = %s))',
+            (model_name, user_id, user_id))
         fetchone = cursor.fetchone()
         if fetchone:
             group_id = fetchone[0]



--
[email protected] mailing list

Reply via email to