Keep user in context when browsing user

It is needed to allow override of user values per user like the change of
company by context.

review30003
This commit is contained in:
Cédric Krier committed 2011-06-07 11:35:50 +02:00
1 parent 4c30173530
commit 658735f5b4
1 file changed
+7 -3
+7 -3
View File
@@ -163,6 +163,7 @@ class Rule(ModelSQL, ModelView):
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 ' \
@@ -191,15 +192,17 @@ class Rule(ModelSQL, ModelView):
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,
})
@@ -226,7 +229,8 @@ class Rule(ModelSQL, ModelView):
'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]