def api_token_request(): username = request.form.get('email') password = request.form.get('password') token = request.form.get('token') if len([x for x in [username,password,token] if x == None]) > 1: return Response(response=jfail("missing required parameters"), status=200) user = User(username) if user.is_valid(): if password: if user.check_pass_hash(password): return Response(response=jsuccess_with_token(user.get_token()), status=200) else: return Response(response=jfail("incorrect password"), status=200) else: checked = user.check_token(token) if checked == 1: return Response(response=jsuccess(), status=200) elif checked == 0: return Response(response=jfail("expired token"), status=200) else: return Response(response=jfail("invalid token"), status=200) else: return Response(response=jfail("user does not exist"), status=200)
def incoming_letter_email(): body = EmailReplyParser.parse_reply(unicode(request.form.get('text')).encode('ascii','xmlcharrefreplace')) body = '\n'.join(body.split('\n')).replace("\n","<br />") regexp = re.findall(r'[\w\.-]+@[\w\.-]+',request.form.get('from')) try: attachments = int(request.form.get('attachments')) except Exception: attachments = 0 if len(regexp) > 0 and len(regexp[-1]) > 0: username = regexp[-1].lower() else: return_bad_params(username) return Response(response=jfail("missing parameters"), status=200) to_name = request.form.get('to') to_address = unicode(request.form.get('subject')).encode('ascii','xmlcharrefreplace').lower().replace("fw:","").replace("re:","").strip() if None in [body,username,to_name,to_address]: return_bad_params(username) return Response(response=jfail("missing parameters"), status=200) user = User(username) if user.is_valid(): send_letter(user,to_name,to_address,body,attachments) else: return_unknown_sender(username) return Response(response=jfail("unknown sender"), status=200) return Response(response=jsuccess(), status=200)
def documents(): if session.get('userid') == None: return redirect(url_for('index')) user = User(None,userid=session["userid"]) if user.is_valid(): return render_template('documents.html',user=user) else: return redirect(url_for('logout'))
def get_letter(_hash): l = letters.find_one({"jobid": _hash}) if session.get('userid') == None or l == None: return redirect(url_for('index')) user = User(None,userid=session["userid"]) if user.is_valid(): return render_template('document.html',l=l) else: return redirect(url_for('logout'))
def api_login(): username = request.form.get('email') password = request.form.get('password') if None in [username,password]: return Response(response=jfail("missing required parameters"), status=200) user = User(username) if user.is_valid(): if user.check_pass_hash(password): return Response(response=jsuccess(), status=200) else: return Response(response=jfail("incorrect password"), status=200) else: return Response(response=jfail("user does not exist"), status=200)
def add_new_email(): regexp = re.findall(r'[\w\.-]+@[\w\.-]+',request.form.get('from')) if len(regexp) > 0: new_email = regexp[len(regexp)-1].lower() else: return Response(response=jfail("missing parameters"), status=200) userid = unicode(request.form.get('subject')).encode('ascii','xmlcharrefreplace') user = User(None,userid=userid) if user.is_valid(): user.add_email(new_email) confirm_email_addition(user, new_email) else: return Response(response=jfail("unknown sender"), status=200) return Response(response=jsuccess(), status=200)
def index(): if 'userid' in session: return redirect(url_for('documents')) if request.method == "POST": user = User(request.form.get('email')) if user.is_valid(): if user.check_pass(request.form.get('password')): session["userid"] = str(user.get("_id")) return redirect(url_for('documents')) else: flash("Your password was incorrect.") else: session["username"] = request.form.get('email').lower() session["password"] = request.form.get('password') return redirect(url_for('signup')) return render_template('index.html')
def api_user(): username = request.form.get('email') token = request.form.get('token') if None in [username,token]: return Response(response=jfail("missing required parameters"), status=200) user = User(username) if user.is_valid(): checked = user.check_token(token) if checked == 1: return Response(response=api_user_json(user), status=200) elif checked == 0: return Response(response=jfail("expired token"), status=200) else: return Response(response=jfail("invalid token"), status=200) else: return Response(response=jfail("user does not exist"), status=200)
def api_postcard_create(): username = request.form.get('email') token = request.form.get('token') name = request.form.get('name') message = request.form.get('message') address = request.form.get('address') picture = request.files['picture'] if None in [username,password,name,message,address,picture]: return Response(response=jfail("missing required parameters"), status=200) user = User(username) if user.is_valid(): checked = user.check_token(token) if checked == 1: return Response(response=send_postcard(user,name,address,message,picture), status=200) elif checked == 0: return Response(response=jfail("expired token"), status=200) else: return Response(response=jfail("invalid token"), status=200) else: return Response(response=jfail("user does not exist"), status=200)