mirror of
https://github.com/ansible/awx.git
synced 2026-07-09 15:28:05 -02:30
Major rename of package from lib to ansibleworks.
This commit is contained in:
96
ansibleworks/ui/static/lib/ansible/authenticate.js
Normal file
96
ansibleworks/ui/static/lib/ansible/authenticate.js
Normal file
@@ -0,0 +1,96 @@
|
||||
/*********************************************
|
||||
* Copyright (c) 2013 AnsibleWorks, Inc.
|
||||
*
|
||||
* User authentication functions
|
||||
*
|
||||
*/
|
||||
|
||||
angular.module('AuthService', ['ngCookies'])
|
||||
.factory('Authorization', ['$http', '$rootScope', '$location', '$cookieStore', function($http, $rootScope, $location, $cookieStore) {
|
||||
return {
|
||||
setToken: function(token) {
|
||||
// set the session cookie
|
||||
var today = new Date();
|
||||
today.setTime(today.getTime() + ($AnsibleConfig.session_timeout * 1000));
|
||||
$cookieStore.remove('token');
|
||||
$cookieStore.remove('token_expire');
|
||||
$cookieStore.put('token', token);
|
||||
$cookieStore.put('token_expire', today.getTime());
|
||||
$rootScope.userLoggedIn = true;
|
||||
},
|
||||
|
||||
isTokenValid: function() {
|
||||
// check if token exists and is not expired
|
||||
var response = false;
|
||||
if ( $cookieStore.get('token') && $cookieStore.get('token_expire') ) {
|
||||
var token = $cookieStore.get('token');
|
||||
var exp = new Date($cookieStore.get('token_expire'));
|
||||
var today = new Date();
|
||||
if (today < exp) {
|
||||
this.setToken(token); //push expiration into the future while user is active
|
||||
response = true;
|
||||
}
|
||||
}
|
||||
return response;
|
||||
},
|
||||
|
||||
didSessionExpire: function() {
|
||||
// use only to test why user was sent to login page.
|
||||
var response = false;
|
||||
if ($cookieStore.get('token_expire')) {
|
||||
var exp = new Date($cookieStore.get('token_expire'));
|
||||
var today = new Date();
|
||||
if (exp < today) {
|
||||
response = true;
|
||||
}
|
||||
}
|
||||
return response;
|
||||
},
|
||||
|
||||
getToken: function() {
|
||||
if ( this.isTokenValid() ) {
|
||||
return $cookieStore.get('token');
|
||||
}
|
||||
else {
|
||||
return null;
|
||||
}
|
||||
},
|
||||
|
||||
retrieveToken: function(username, password) {
|
||||
return $http({ method: 'POST', url: '/api/v1/authtoken/',
|
||||
data: {"username": username, "password": password} });
|
||||
},
|
||||
|
||||
logout: function() {
|
||||
$rootScope.current_user = {};
|
||||
$cookieStore.remove('token');
|
||||
$cookieStore.remove('token_expire');
|
||||
$cookieStore.remove('current_user');
|
||||
$rootScope.userLoggedIn = false;
|
||||
},
|
||||
|
||||
getUser: function() {
|
||||
return $http({
|
||||
method: 'GET',
|
||||
url: '/api/v1/me/',
|
||||
headers: { 'Authorization': 'Token ' + this.getToken() },
|
||||
});
|
||||
},
|
||||
|
||||
setUserInfo: function(response) {
|
||||
// store the response values in $rootScope so we can get to them later
|
||||
$rootScope.current_user = response.results[0];
|
||||
$cookieStore.put('current_user', response.results[0]); //keep in session cookie incase user hits refresh
|
||||
},
|
||||
|
||||
restoreUserInfo: function() {
|
||||
$rootScope.current_user = $cookieStore.get('current_user');
|
||||
},
|
||||
|
||||
getUserInfo: function(key) {
|
||||
// Access values returned from the Me API call
|
||||
return ($rootScope.current_user[key]) ? $rootScope.current_user[key] : null;
|
||||
}
|
||||
}
|
||||
}]);
|
||||
|
||||
Reference in New Issue
Block a user