mirror of
https://github.com/ansible/awx.git
synced 2026-03-15 16:07:30 -02:30
Moved UI into its own Django app.
This commit is contained in:
74
lib/ui/static/js/controllers/Authentication.js
Normal file
74
lib/ui/static/js/controllers/Authentication.js
Normal file
@@ -0,0 +1,74 @@
|
||||
/************************************
|
||||
* Copyright (c) 2013 AnsibleWorks, Inc.
|
||||
*
|
||||
*
|
||||
* Authentication.js
|
||||
*
|
||||
* Controller functions for user authentication.
|
||||
*
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
function Authenticate($scope, $rootScope, $location, Authorization, ToggleClass, Alert)
|
||||
{
|
||||
// Authorization is injected from AuthService found in services.js
|
||||
|
||||
if ($location.path() == '/logout') {
|
||||
//if logout request, clear AuthToken and user session data
|
||||
Authorization.logout();
|
||||
}
|
||||
|
||||
$rootScope.userLoggedIn = false; //hide the logout link. if you got here, your logged out.
|
||||
//gets set back to true by Authorization.setToken().
|
||||
|
||||
$scope.sessionExpired = Authorization.didSessionExpire(); //Display session timeout message
|
||||
$scope.sessionTimeout = ($AnsibleConfig.session_timeout / 60).toFixed(2)
|
||||
|
||||
// Display the login dialog
|
||||
$('#login-modal').modal({ show: true, keyboard: false, backdrop: false });
|
||||
|
||||
$scope.reset = function() {
|
||||
$('#login-form input').each( function(index) { $(this).val(''); });
|
||||
};
|
||||
|
||||
// Call the API to get an auth token
|
||||
$scope.systemLogin = function(username, password) {
|
||||
$('.api-error').empty();
|
||||
Authorization.retrieveToken(username, password)
|
||||
.success( function(data, status, headers, config) {
|
||||
Authorization.setToken(data.token);
|
||||
$scope.reset();
|
||||
// Get all the profile/access info regarding the logged in user
|
||||
Authorization.getUser()
|
||||
.success(function(data, status, headers, config) {
|
||||
$('#login-modal').modal('hide');
|
||||
Authorization.setUserInfo(data);
|
||||
$location.path('/organizations');
|
||||
})
|
||||
.error( function(data, status, headers, config) {
|
||||
Alert('Error', 'Failed to get user data from /api/v1/me. GET status: ' + status);
|
||||
});
|
||||
})
|
||||
.error( function(data, status, headers, config) {
|
||||
if ( data.non_field_errors && data.non_field_errors.length == 0 ) {
|
||||
// show field specific errors returned by the API
|
||||
for (var key in data) {
|
||||
$scope[key + 'Error'] = data[key][0];
|
||||
}
|
||||
}
|
||||
else {
|
||||
if ( data.non_field_errors && data.non_field_errors.length > 0 ) {
|
||||
$rootScope.alertHeader = 'Error!';
|
||||
$rootScope.alertBody = data.non_field_errors[0];
|
||||
}
|
||||
else {
|
||||
$rootScope.alertHeader = 'Error!';
|
||||
$rootScope.alertBody = 'The login attempt failed with a status of: ' + status;
|
||||
}
|
||||
$scope.reset();
|
||||
$('#alert-modal').modal({ show: true, keyboard: true, backdrop: 'static' });
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user