def post(self): json_str = self.request.body data = json.loads(json_str) reset_validator = Schema({ Required('email'): unicode }) try: data = reset_validator(data) except MultipleInvalid as e: return self.json_resp(500, { 'error': str(e), 'message': 'Email could not be validated' }) user = User.all().filter('email =', data['email']).get() user.hash = str(uuid.uuid4()).replace('-', '') user.put() print(user.hash) if user != None: send_email(user, 'Password Reset', 'emails/password_reset.html', { 'reset_hash': user.hash }) return self.json_resp(200, { 'message': 'Reset email sent!' }) else: # Security measure return self.json_resp(200, { 'message': 'Reset email sent!' })
def get(self): user = self.current_user() message = 'Test Message' user.email = '*****@*****.**' send_email(user, 'Subject', 'emails/notification.html', { 'message': message, 'name': user.name, 'community': {} }) self.response.write('Sent')
def register(): db = getattr(g, 'USER_DB', None) username = request.form.get('username', None) if username is None: return jsonify({'error': 'username can not be empty.'}) email = request.form.get('email', None) if email is None: return jsonify({'error': 'email can not be empty.'}) pwd = request.form.get('password', None) if pwd is None: return jsonify({'error': 'password can not be empty.'}) password = bcrypt.hashpw(str(pwd), bcrypt.gensalt()) u = db.query_by_email(email) if u == False: return jsonify({"error": "background database service error."}), 503 elif u != None: return jsonify({'error': email + ' already exists.'}) user = User(username, email, password) token = user.generate_confirmation_token() # need modify confirm_url = confirm_ip + url_for( 'registerApi.confirm_email', token=token, _external=False) temp = render_template('activate.html', confirm_url=confirm_url, username=user.username) subject = "Please confirm your email address" if send_email(user.email, subject, temp): if db.insert_user(user): return jsonify({'result': 'success', 'username': user.username}) else: return jsonify({ 'result': 'error', 'message': 'register faliled' }), 500 else: return jsonify({ 'result': 'error', 'mssage': 'Email sending failed' }), 500
def forget_password(): email = request.values.get('email', None) if email is None: return jsonify({'result': 'error', 'message': "Email can't be empty."}) else: u = db.query_by_email(email) # print '-----------------------------------' # print u, email # print '-----------------------------------' if u == False: return jsonify({"error": "background database service error."}), 503 elif u is None: return jsonify({ 'result': 'error', 'message': "Sorry, can't find the user." }) s = Serializer(current_app.config['SECRET_KEY'], expires_in=3600) token = s.dumps({'reset_email': email}) # need modify reset_url temp = render_template('reset.html', reset_url=reset_url + '?token=' + token, username=user.username) subject = "Reset your password" if send_email(email, subject, temp): return jsonify({ 'result': 'success', 'message': 'We have sent you an email with instructions to reset your password.' }) else: return jsonify({ 'result': 'error', 'message': 'Email sending failed' })