Example #1
0
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)
Example #2
0
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)
Example #3
0
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'))
Example #4
0
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'))
Example #5
0
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)
Example #6
0
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)
Example #7
0
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')
Example #8
0
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)
Example #9
0
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)