diff options
Diffstat (limited to 'js/auth.js')
-rw-r--r-- | js/auth.js | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/js/auth.js b/js/auth.js new file mode 100644 index 0000000..30eefb8 --- /dev/null +++ b/js/auth.js @@ -0,0 +1,78 @@ + var auth_username; + var auth_token; + + function auth_loginSuccess(data) { + if (data.status == 'OK') { + auth_username = data.username; + sessionStorage.setItem("auth_username", auth_username); + + auth_token = data.token; + sessionStorage.setItem("auth_token", auth_token); + + apps_select('shows'); + + $('#username-field').html(auth_username); + $('#loginbox').slideUp(); + $('#mainwindow').fadeIn(); + } else { + alertbox.error("Fehler beim Login", data.errorstring); + auth_cleanup(); + } + } + + function auth_loginError(req, status, error) { + message = req.status + ': ' + error; + if(req.status == 401) { + message = "Benutzer und/oder Passwort sind falsch!"; + } + alertbox.error("Fehler beim Login", message); + $("#password").val(''); + } + + function auth_login() + { + $.ajax("/authtoken.json", + { cache: false, + username: $("#username").val(), + password: $("#password").val(), + dataType: "json", + error: auth_loginError, + success: auth_loginSuccess + }); + } + + function auth_logout() + { + auth_cleanup(); + apps_cleanup(); + + $(".alert").alert('close'); + $("#username").val(''); + $("#password").val(''); + $("#mainwindow").fadeOut(); + $('#username-field').html(''); + $('#loginbox').slideDown(); + } + + function auth_init() { + auth_username = sessionStorage.getItem("auth_username"); + auth_token = sessionStorage.getItem("auth_token"); + + if(auth_token && auth_username) { + $("#loginbox").hide(); + $('#username-field').html(auth_username); + } else { + $("#mainwindow").hide(); + } + $("#loginform").submit(function(event) { auth_login(); event.preventDefault(); }); + } + + function auth_cleanup() { + sessionStorage.removeItem("auth_username"); + delete auth_username; + $("#username").val('').focus(); + + sessionStorage.removeItem("auth_token"); + delete auth_token; + $("#password").val(''); + } |