diff options
Diffstat (limited to 'install/ui/ipa.js')
-rw-r--r-- | install/ui/ipa.js | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/install/ui/ipa.js b/install/ui/ipa.js index d1bb04210..0afa4f097 100644 --- a/install/ui/ipa.js +++ b/install/ui/ipa.js @@ -295,7 +295,6 @@ IPA.get_credentials = function() { status = xhr.status; } - function success_handler(data, text_status, xhr) { status = xhr.status; } @@ -313,6 +312,51 @@ IPA.get_credentials = function() { return status; }; +IPA.logout = function() { + + function show_error(message) { + var dialog = IPA.message_dialog({ + message: message, + title: IPA.messages.login.logout_error + }); + dialog.open(); + } + + function redirect () { + window.location = 'logout.html'; + } + + function success_handler(data, text_status, xhr) { + if (data && data.error) { + show_error(data.error.message); + } else { + redirect(); + } + } + + function error_handler(xhr, text_status, error_thrown) { + if (xhr.status === 401) { + redirect(); + } else { + show_error(text_status); + } + } + + var command = { + method: 'session_logout', + params: [[], {}] + }; + + var request = { + url: IPA.json_url || IPA.json_path + '/session_logout.json', + data: JSON.stringify(command), + success: success_handler, + error: error_handler + }; + + $.ajax(request); +}; + /** * Call an IPA command over JSON-RPC. * |