diff options
| -rw-r--r-- | res/client/css/partials/top-bar.scss | 6 | ||||
| -rw-r--r-- | res/client/css/style.css | 3 | ||||
| -rw-r--r-- | res/templates/index.html | 2 | ||||
| -rw-r--r-- | res/templates/login.html | 27 | ||||
| -rw-r--r-- | src/client/buttons.js | 5 | ||||
| -rw-r--r-- | src/server/rz_api.py | 6 |
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 <span id="user_id">Anonymous</span>! <span id="logout-button" class="button">Logout</span></div> + <div class="profile-username">Welcome <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 |
