summaryrefslogtreecommitdiff
path: root/src/server/rz_user.py
diff options
context:
space:
mode:
authorLV-426 <lv-426@taproot.org.il>2015-02-04 01:41:25 +0200
committerLV-426 <lv-426@taproot.org.il>2015-02-04 01:41:25 +0200
commit8eae137857a8b71bf6a303e2db92d3fa669f44c7 (patch)
treed23973e262cb175780fff1333c120fceea0f9667 /src/server/rz_user.py
parent51c45329fa5fcf76650537d9b9e6b88624ee6b3c (diff)
mv rest__login/logout to rz_user
Diffstat (limited to 'src/server/rz_user.py')
-rw-r--r--src/server/rz_user.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/server/rz_user.py b/src/server/rz_user.py
index 87f8f225..102efe40 100644
--- a/src/server/rz_user.py
+++ b/src/server/rz_user.py
@@ -79,6 +79,46 @@ def activate_user_account(us_req):
log.info('user account activated: email: %s, rz_username: %s' % (us_req['email_address'], us_req['rz_username']))
+def rest__login():
+
+ def sanitize_input(req):
+ req_json = request.get_json()
+ u = req_json['username']
+ p = req_json['password']
+ return u, p
+
+ if request.method == 'POST':
+ try:
+ u, p = sanitize_input(request)
+ except:
+ log.warn('failed to sanitize inputs. request: %s' % request)
+ return make_response__json(status=401) # return empty response
+ try:
+ salt = current_app.rz_config.secret_key
+ pw_hash = hash_pw(p, salt)
+ current_app.user_db.validate_login(u, pw_hash)
+ except Exception as e:
+ # login failed
+ log.warn('login: unauthorized: user: %s' % (u))
+ return make_response__json(status=401) # return empty response
+
+ # login successful
+ session['username'] = u
+ log.debug('login: success: user: %s' % (u))
+ return make_response__json(status=200) # return empty response
+
+ if request.method == 'GET':
+ return render_template('login.html')
+
+def rest__logout():
+ """
+ REST API endpoint: logout
+ """
+ # remove the username from the session if it's there
+ u = session.pop('username', None)
+ log.debug('logout: success: user: %s' % (u))
+ return redirect(url_for('login'))
+
def rest__user_signup():
"""
REST API endpoint: user sign up