def users(): """ GET REQUEST """ if request.method == 'GET': return cors_response((jsonify(users = [user.serialize for user in models.User.query.all()]),200)) """ POST REQUEST """ if request.method == 'POST': email = request.form.get('email') user = models.User.query.filter(models.User.email==email).first() if user: return cors_response(("Email already registered",400)) firstName = request.form.get('firstName') lastName = request.form.get('lastName') password = request.form.get('password') university = request.form.get('university') if (firstName and lastName and email and password and university): pw_hash = bcrypt.generate_password_hash(password) user = models.User(firstName = firstName, lastName = lastName, email = email, password = pw_hash, university = university) profile = models.Profile() grad_year = request.form.get('grad_year') major = request.form.get('major') courses = request.form.get('classes') bio = request.form.get('bio') avatar = generator.generate(firstName + lastName, 240, 240, output_format="png") if (grad_year): profile.grad_year = grad_year if (major): profile.major = major if (courses): courseList = json.loads(courses) user.courses = ",".join(courseList) if (bio): profile.bio = bio profile.avatar = avatar user.profile = profile db.session.add(user) db.session.commit() # Send email to new user. regEmail = generateEmail("registration", firstName = firstName) sendEmail(email, "Welcome to Deku!", regEmail[0], regEmail[1]) return cors_response((jsonify(user = user.serialize), 201)) else: return cors_response(("Bad Request.", 400)) else: pass
def contact(): try: if request.method == 'POST': if request.form: # ReCaptcha client token token = request.headers.get("Authorization").split(" ") if token[0] == 'Bearer': # Verify token response = requests.post( url=app.config['RECAPTCHA_VERIFY_URL'], params={ 'secret': app.config['RECAPTCHA_SECRET'], 'response': token[1] }) result = response.json() # Return error if token verification fails if response.status_code != 200 or not result['success']: return jsonify({ 'status': 'error', 'data': [], 'message': '', 'error': 'Token verification failed, try again.' }) # Send form data name = request.form['name'] email = request.form['email'] subject = request.form['subject'] phone = request.form['phone'] message = request.form['message'] sendEmail(name=name, email=email, phone=phone, subj=subject, message=message) return jsonify({ 'status': 'ok', 'data': [], 'message': 'Your message was sent, thank you.', 'error': '' }) except: return jsonify({ 'status': 'error', 'data': [], 'message': '', 'error': 'Your message did not send. Try again.' })
def generateTemporaryPassword(): if request.method == 'POST': email = request.form.get('email') if email: # Find user by email address. user = models.User.query.filter(models.User.email==email).first() if user: # Send reset email tempPassword = ''.join([random.choice(string.ascii_letters + string.digits) for n in xrange(32)]) user.password = bcrypt.generate_password_hash(tempPassword) db.session.commit() resetEmail = generateEmail("reset", firstName = user.firstName, tempPassword = tempPassword) sendEmail(email, "Forgot your password?", resetEmail[0], resetEmail[1]) return cors_response(("Email sent.", 200)) else: return cors_response(("User not found.", 404)) else: return cors_response(("Bad Request.", 400)) else: pass