[FIX] gamification: when auto-subscribing users to challenges, do it as superuser
authorMartin Trigaux <mat@openerp.com>
Tue, 18 Feb 2014 14:04:03 +0000 (15:04 +0100)
committerMartin Trigaux <mat@openerp.com>
Tue, 18 Feb 2014 14:04:03 +0000 (15:04 +0100)
bzr revid: mat@openerp.com-20140218140403-eamxtm6dvwj3g5d3

addons/gamification/models/res_users.py

index d25d725..85cc186 100644 (file)
@@ -19,6 +19,7 @@
 #
 ##############################################################################
 
+from openerp import SUPERUSER_ID
 from openerp.osv import osv
 from challenge import MAX_VISIBILITY_RANKING
 
@@ -39,10 +40,10 @@ class res_users_gamification_group(osv.Model):
             user_group_ids += [id for command in vals['groups_id'] if command[0] == 6 for id in command[2]]
 
             challenge_obj = self.pool.get('gamification.challenge')
-            challenge_ids = challenge_obj.search(cr, uid, [('autojoin_group_id', 'in', user_group_ids)], context=context)
+            challenge_ids = challenge_obj.search(cr, SUPERUSER_ID, [('autojoin_group_id', 'in', user_group_ids)], context=context)
             if challenge_ids:
-                challenge_obj.write(cr, uid, challenge_ids, {'user_ids': [(4, user_id) for user_id in ids]}, context=context)
-                challenge_obj.generate_goals_from_challenge(cr, uid, challenge_ids, context=context)
+                challenge_obj.write(cr, SUPERUSER_ID, challenge_ids, {'user_ids': [(4, user_id) for user_id in ids]}, context=context)
+                challenge_obj.generate_goals_from_challenge(cr, SUPERUSER_ID, challenge_ids, context=context)
         return write_res
 
     def create(self, cr, uid, vals, context=None):
@@ -54,10 +55,10 @@ class res_users_gamification_group(osv.Model):
             user_group_ids += [id for command in vals['groups_id'] if command[0] == 6 for id in command[2]]
 
             challenge_obj = self.pool.get('gamification.challenge')
-            challenge_ids = challenge_obj.search(cr, uid, [('autojoin_group_id', 'in', user_group_ids)], context=context)
+            challenge_ids = challenge_obj.search(cr, SUPERUSER_ID, [('autojoin_group_id', 'in', user_group_ids)], context=context)
             if challenge_ids:
-                challenge_obj.write(cr, uid, challenge_ids, {'user_ids': [(4, write_res)]}, context=context)
-                challenge_obj.generate_goals_from_challenge(cr, uid, challenge_ids, context=context)
+                challenge_obj.write(cr, SUPERUSER_ID, challenge_ids, {'user_ids': [(4, write_res)]}, context=context)
+                challenge_obj.generate_goals_from_challenge(cr, SUPERUSER_ID, challenge_ids, context=context)
         return write_res
 
     # def get_goals_todo_info(self, cr, uid, context=None):
@@ -130,8 +131,8 @@ class res_groups_gamification_group(osv.Model):
             user_ids += [id for command in vals['users'] if command[0] == 6 for id in command[2]]
 
             challenge_obj = self.pool.get('gamification.challenge')
-            challenge_ids = challenge_obj.search(cr, uid, [('autojoin_group_id', 'in', ids)], context=context)
+            challenge_ids = challenge_obj.search(cr, SUPERUSER_ID, [('autojoin_group_id', 'in', ids)], context=context)
             if challenge_ids:
-                challenge_obj.write(cr, uid, challenge_ids, {'user_ids': [(4, user_id) for user_id in user_ids]}, context=context)
-                challenge_obj.generate_goals_from_challenge(cr, uid, challenge_ids, context=context)
+                challenge_obj.write(cr, SUPERUSER_ID, challenge_ids, {'user_ids': [(4, user_id) for user_id in user_ids]}, context=context)
+                challenge_obj.generate_goals_from_challenge(cr, SUPERUSER_ID, challenge_ids, context=context)
         return write_res