summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--res/client/css/partials/top-bar.scss6
-rw-r--r--res/client/css/style.css3
-rw-r--r--res/templates/index.html2
-rw-r--r--res/templates/login.html27
-rw-r--r--src/client/buttons.js5
-rw-r--r--src/server/rz_api.py6
6 files changed, 17 insertions, 32 deletions
diff --git a/res/client/css/partials/top-bar.scss b/res/client/css/partials/top-bar.scss
index cffd200a..5aec704c 100644
--- a/res/client/css/partials/top-bar.scss
+++ b/res/client/css/partials/top-bar.scss
@@ -57,4 +57,8 @@
background: url(../img/CRI-logo.png);
min-height: 30px;
min-width: 30px;
-} \ No newline at end of file
+}
+
+.logout-form {
+ display: inline;
+}
diff --git a/res/client/css/style.css b/res/client/css/style.css
index b6231384..b4008d93 100644
--- a/res/client/css/style.css
+++ b/res/client/css/style.css
@@ -826,6 +826,9 @@ body.debug .debug-ui-right {
min-height: 30px;
min-width: 30px; }
+.logout-form {
+ display: inline; }
+
/* Headings */
h1 {
font-size: 30px; }
diff --git a/res/templates/index.html b/res/templates/index.html
index 13913ba2..6ef39e25 100644
--- a/res/templates/index.html
+++ b/res/templates/index.html
@@ -23,7 +23,7 @@
<div class="username">
<div class="profile-circle"></div>
<span class="profile-initials">AN<!-- must be two letters because of css --></span>
- <div class="profile-username">Welcome&nbsp;<span id="user_id">Anonymous</span>! <span id="logout-button" class="button">Logout</span></div>
+ <div class="profile-username">Welcome&nbsp;<span id="user_id">Anonymous</span>! <span><form action="/logout" method="POST" class="logout-form"><input type="submit" value="Logout" class="button"></input></form></span></div>
</div>
<img class="organization-logo" src="/static/img/CRI-logo.png">
</div>
diff --git a/res/templates/login.html b/res/templates/login.html
index f35bccdc..3e32eee3 100644
--- a/res/templates/login.html
+++ b/res/templates/login.html
@@ -4,28 +4,7 @@
<title>Welcome to Rhizi</title>
<link href="/static/css/style.css" rel="stylesheet" type="text/css">
<script src="/static/lib/jquery.js" type="text/javascript"></script>
-<script type="text/javascript">
- function submit_login_form() {
- var data = {
- username : $('#login_username').val(),
- password : $('#login_password').val()
- };
-
- // TODO: validate
-
- $.ajax({
- type : "POST",
- url: '/login',
- async : false,
- cache : false,
- data : JSON.stringify(data),
- dataType : 'json',
- contentType : "application/json; charset=utf-8"
- });
- }
-</script>
</head>
-
<body class="login-background">
<div class="welcome-box">
<img src="/static/img/logo-red.png" class="login-rhizi-logo">
@@ -39,9 +18,9 @@
</div>
<div id="login_form_panel" class="login-form">
<fieldset>
- <form action="javascript:void(0);" method="get" onsubmit="submit_login_form();" id="login_form">
- <input class="login-input" type="email" id="login_username" placeholder="Email">
- <input class="login-input" type="password" id="login_password" placeholder="Password" required value="Password">
+ <form action="/login" method="POST" id="login_form">
+ <input class="login-input" type="email" name="username" id="login-username" placeholder="Email">
+ <input class="login-input" type="password" name="password" id="login-password" placeholder="Password" required value="Password">
<input class="login-input" type="submit" value="Sign in">
<a class="forgot-password"> forgot password? </a>
</form>
diff --git a/src/client/buttons.js b/src/client/buttons.js
index e29a1729..5fd8d121 100644
--- a/src/client/buttons.js
+++ b/src/client/buttons.js
@@ -67,11 +67,6 @@ $('.local-storage-load a').click(function(){
rz_core.load_from_json(json_blob);
});
-var logout_button = $('#logout-button');
-logout_button.click(function() {
- $.ajax({ type: "POST", url: '/logout'}); // server should redirect back to /login
-});
-
$('a.save-history').click(function() {
if (rz_core.main_graph.history === undefined) {
throw "History is undefined";
diff --git a/src/server/rz_api.py b/src/server/rz_api.py
index 3b6d9585..fc2e2343 100644
--- a/src/server/rz_api.py
+++ b/src/server/rz_api.py
@@ -170,7 +170,7 @@ def index():
def login():
def sanitize_input(req):
- req_json = request.get_json()
+ req_json = request.form.to_dict()
u = req_json['username']
p = req_json['password']
return u, p
@@ -178,6 +178,10 @@ def login():
if request.method == 'POST':
try:
u, p = sanitize_input(request)
+ except:
+ log.warn('failed to sanitize inputs. request: %s' % request)
+ return render_template('login.html', login_failed=True)
+ try:
crypt_util.validate_login(flask.current_app.rz_config, u, p)
except Exception as e:
# login failed