[FIX] gamification: accpet and discard challenges wizard should work as superuser...
authorMartin Trigaux <mat@openerp.com>
Tue, 18 Feb 2014 13:08:00 +0000 (14:08 +0100)
committerMartin Trigaux <mat@openerp.com>
Tue, 18 Feb 2014 13:08:00 +0000 (14:08 +0100)
bzr revid: mat@openerp.com-20140218130800-vth6elmbtrjmdouq

addons/gamification/models/challenge.py

index fec8e04..d66c95f 100644 (file)
@@ -620,21 +620,25 @@ class gamification_challenge(osv.Model):
         return self.write(cr, uid, challenge.id, {'last_report_date': fields.date.today()}, context=context)
 
     ##### Challenges #####
-    def accept_challenge(self, cr, uid, challenge_ids, context=None, user_id=None):
+    def accept_challenge(self, cr, uid, challenge_ids, context=None):
         """The user accept the suggested challenge"""
-        user_id = user_id or uid
+        return self._accept_challenge(cr, SUPERUSER_ID, uid, challenge_ids, context=context)
+
+    def _accept_challenge(self, cr, uid, user_id, challenge_ids, context=None):
         user = self.pool.get('res.users').browse(cr, uid, user_id, context=context)
         message = "%s has joined the challenge" % user.name
         self.message_post(cr, uid, challenge_ids, body=message, context=context)
-        self.write(cr, SUPERUSER_ID, challenge_ids, {'invited_user_ids': [(3, user_id)], 'user_ids': [(4, user_id)]}, context=context)
+        self.write(cr, uid, challenge_ids, {'invited_user_ids': [(3, user_id)], 'user_ids': [(4, user_id)]}, context=context)
         return self.generate_goals_from_challenge(cr, uid, challenge_ids, context=context)
 
-    def discard_challenge(self, cr, uid, challenge_ids, context=None, user_id=None):
+    def discard_challenge(self, cr, uid, challenge_ids, context=None):
         """The user discard the suggested challenge"""
-        user_id = user_id or uid
+        return self._discard_challenge(cr, SUPERUSER_ID, uid, challenge_ids, context=context)
+
+    def _discard_challenge(self, cr, uid, user_id, challenge_ids, context=None):
         user = self.pool.get('res.users').browse(cr, uid, user_id, context=context)
         message = "%s has refused the challenge" % user.name
-        self.message_post(cr, SUPERUSER_ID, challenge_ids, body=message, context=context)
+        self.message_post(cr, uid, challenge_ids, body=message, context=context)
         return self.write(cr, uid, challenge_ids, {'invited_user_ids': (3, user_id)}, context=context)
 
     def reply_challenge_wizard(self, cr, uid, challenge_id, context=None):