summaryrefslogtreecommitdiff
path: root/js/auth.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/auth.js')
-rw-r--r--js/auth.js78
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('');
+ }