def render_page(self, errors=None):
     ''' Render page with extra arguments '''
     if errors is not None and not isinstance(errors, list):
         errors = [str(errors), ]
     self.render('admin/upgrades/swat.html',
                 pending_bribes=Swat.all_pending(),
                 in_progress_bribes=Swat.all_in_progress(),
                 completed_bribes=Swat.all_completed(),
                 errors=errors)
 def post(self, *args, **kwargs):
     ''' Validate user arguments for SWAT request '''
     target = User.by_uuid(self.get_argument('uuid', ''))
     if target is not None and not target.is_admin():
         if not Swat.user_is_pending(target) and not Swat.user_is_in_progress(target):
             user = self.get_current_user()
             if target not in user.team.members:
                 if Swat.get_price(target) <= user.team.money:
                     self.create_swat(user, target)
                     self.redirect('/swat')
                 else:
                     self.render_page("You cannot afford this bribe")
             else:
                 self.render_page("You cannot SWAT your own team")
         else:
             self.render_page("A bribe is already exists for this player")
     else:
         self.render_page("Target user does not exist")
 def render_page(self, errors=None):
     ''' Render page with extra arguments '''
     if errors is not None and not isinstance(errors, list):
         errors = [str(errors), ]
     user = self.get_current_user()
     targets = filter(
         lambda target: target not in user.team.members, User.all_users())
     self.render('upgrades/swat.html',
                 targets=targets,
                 user_bribes=Swat.ordered_by_user_id(user.id),
                 errors=None)
 def create_swat(self, user, target):
     ''' Create Swat request object in database '''
     price = Swat.get_price(target)
     assert 0 < price
     user.team.money -= price
     swat = Swat(
         user_id=user.id,
         target_id=target.id,
         paid=price)
     self.dbsession.add(swat)
     self.dbsession.add(user.team)
     self.dbsession.commit()
 def complete_bribe(self):
     """ Complete bribe and unlock user's account """
     swat = Swat.by_uuid(self.get_argument("uuid", ""))
     if swat is not None and not swat.completed:
         logging.info("Completed SWAT with uuid: %s", swat.uuid)
         swat.completed = True
         swat.target.locked = False
         self.dbsession.add(swat)
         self.dbsession.add(swat.target)
         self.dbsession.commit()
         self.render_page()
     else:
         logging.warn("Invalid request to complete bribe with uuid: %r" % (self.get_argument("uuid", ""),))
         self.render_page("Requested SWAT object does not exist")
 def accept_bribe(self):
     ''' Accept bribe, and lock user's account '''
     swat = Swat.by_uuid(self.get_argument('uuid', ''))
     if swat is not None and not swat.completed:
         logging.info("Accepted SWAT with uuid: %s", swat.uuid)
         swat.accepted = True
         swat.target.locked = True
         self.dbsession.add(swat)
         self.dbsession.add(swat.target)
         self.dbsession.commit()
         self.render_page()
     else:
         logging.warn("Invalid request to accept bribe with uuid: %r" %
                      (self.get_argument('uuid', ''), ))
         self.render_page('Requested SWAT object does not exist')
 def accept_bribe(self):
     ''' Accept bribe, and lock user's account '''
     swat = Swat.by_uuid(self.get_argument('uuid', ''))
     if swat is not None and not swat.completed:
         logging.info("Accepted SWAT with uuid: %s", swat.uuid)
         swat.accepted = True
         swat.target.locked = True
         self.dbsession.add(swat)
         self.dbsession.add(swat.target)
         self.dbsession.commit()
         self.render_page()
     else:
         logging.warn("Invalid request to accept bribe with uuid: %r" % (
             self.get_argument('uuid', ''),
         ))
         self.render_page('Requested SWAT object does not exist')
Exemple #8
0
 def complete_bribe(self):
     """ Complete bribe and unlock user's account """
     swat = Swat.by_uuid(self.get_argument("uuid", ""))
     if swat is not None and not swat.completed:
         logging.info("Completed SWAT with uuid: %s", swat.uuid)
         swat.completed = True
         swat.target.locked = False
         self.dbsession.add(swat)
         self.dbsession.add(swat.target)
         self.dbsession.commit()
         self.render_page()
     else:
         logging.warn(
             "Invalid request to complete bribe with uuid: %r"
             % (self.get_argument("uuid", ""),)
         )
         self.render_page("Requested SWAT object does not exist")