def validateGroupParams(params): if len(params['name']) <= 4: raise ValidationError( errors={ 'name': 'Use a name that\'s at least 5 letters or numbers' }) slots = params['slots'] if slots != '': try: slots = int(params['slots']) except ValueError as e: raise ValidationError( errors={'slots': 'Number of spots must be a whole number'}) if slots > 30: raise ValidationError( errors={'slots': 'Maximum group size is 30'}) if slots < 0: raise ValidationError(errors={'slots': 'Nice try, but no'}) params['slots'] = slots if len(params['password']) <= 4: raise ValidationError(errors={ 'password': '******'s at least 5 letters or numbers' }) return params
def post(self): waiver = self.request.get('waiver') if waiver != 'yes': raise ValidationError( errors={'waiver': 'You must accept the waiver'}) name = self.request.get('name') email = self.request.get('email') user = User.findByEmail(email) if user != None: code = 9202 if user.pending == True else 4482 return self.redirect('/sign-in', {'error': code, 'email': email}) password = self.request.get('password') if len(password) < 5: raise ValidationError( errors={'password': '******'}) pid = self.request.get('pid') project = Project.get(pid) if pid else None gid = self.request.get('group[key]') group = Group.get(gid) if gid else None group_code = self.request.get('group[password]') group = group if group and group.password == group_code else None user = User.create(name, email, password, project, group) self.setUser(user) redirect = self.request.get('redirect') redirect = redirect if redirect else '/account' self.redirect(redirect)
def post(self, key): group = self.getGroup(key) if group is None: group = Group() group.name = self.request.get('group[name]') group.password = self.request.get('group[password]') try: slots = int(self.request.get('group[slots]')) if slots <= 0: raise ValueError('Below zero') group.slots = slots except ValueError as e: raise ValidationError( errors={ 'group[slots]': 'Must be an integer number above zero' }) project_key = self.request.get('group[project]') project = Project.get(project_key) if project_key != '' else None group.setProject(project) group.put() error_code = 1 if key == 'new' else 2 self.redirect('/admin/groups/{}'.format(group.key()), {'error': error_code})
def post(self): self.throw404If(self.user.is_group_leader == False) group = self.user.group params = { 'name': self.request.get('name'), 'slots': self.request.get('slots'), 'password': self.request.get('password'), } logging.info(params) params = Create.validateGroupParams(params) slots = params['slots'] if slots != '': if slots < group.members.count(): raise ValidationError( errors={ 'slots': 'Too few slots for the number of people in your group already' }) group.slots = slots group.name = params['name'] group.password = params['password'] group.put() self.redirect('/groups/edit', {'errors': 1})
def post(self, key): project = self.getProject(key) if project is None: project = Project() project.name = self.request.get('project[name]') project.description = self.request.get('project[description]') project.location = self.request.get('project[location]') project.type_of_work = self.request.get('project[type_of_work]') try: spots = int(self.request.get('project[max_volunteers]')) if spots <= 0: raise ValueError('Below zero') project.max_volunteers = spots except ValueError as e: raise ValidationError(errors={ 'project[max_volunteers]': 'Must be an integer number above zero' }) project.put() error_code = 1 if key == 'new' else 2 self.redirect('/admin/projects/{}'.format(project.key()), {'error': error_code})
def post(self): key = self.request.get('key') user = User.get(key) code = self.request.get("code") password = self.request.get("password") password_match = self.request.get("password_match") if password == '': raise ValidationError( errors={'password': '******'}) if password_match != password: raise ValidationError( errors={'password_match': 'Password does not match'}) user.setPassword(password) self.redirect('/sign-in', {'error': 23455})
def post(self): verification = self.request.get('verification') if verification != 'delete all groups': raise ValidationError( errors={'verification': 'Insufficient verification'}) taskqueue.add(url='/tasks/delete-all-groups') return self.redirect('/admin/groups', {'error': '2'})
def post(self): verification = self.request.get('verification') if verification != 'clear all flags': raise ValidationError( errors={'verification': 'Insufficient verification'}) taskqueue.add(url='/tasks/clear-flags-on-all-volunteers') return self.redirect('/admin/volunteers', {'error': '2'})
def post(self): verification = self.request.get('verification') if verification != 'close group registration': raise ValidationError( errors={'verification': 'Insufficient verification'}) groups = Group.all() for group in groups: group.slots = group.spots_taken group.put() return self.redirect('/admin/groups', {'error': '3'})
def post(self): email = self.request.get('email') logging.info('Trying to reset {}'.format(email)) user = User.findByEmail(email) if not user: raise ValidationError( errors={'email': "No user with that email. Try another?"}) PasswordResetEmail(user).send() self.addFlash('success', 'Password reset email sent') return {}
def post(self): group = self.getGroup() if group == None: raise Exception('Failed to find group') password = self.request.get('password') if group.password != password: raise ValidationError(errors={'password': '******'}, values={ 'group': group, 'password': password }) self.user.setGroup(group) self.redirect('/account')
def post(self): email = self.request.get('email') password = self.request.get('password') logging.info("Trying to login {}".format(email)) user = User.findByEmail(email) if user is None: raise ValidationError(errors={'email': "No user with that email"}, values=self.getAllParams()) return {'message': "No account for that email", 'email': email} elif user.password != User.digestPassword(password): raise ValidationError(errors={'password': "******"}, values=self.getAllParams()) elif user.pending == True: raise ValidationError(errors={ 'email': "Pending account confirmation. Check your inbox." }, values=self.getAllParams()) self.setUser(user) redirect = self.request.get('redirect') self.redirect(redirect if redirect else '/account')