1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
/**
* Controller for the login page
*
* @module app/login/controllers/index
* @exports LoginController
* @name LoginController
*/
window.angular && (function(angular) {
'use strict';
angular.module('app.login').controller('LoginController', [
'$scope',
'$window',
'dataService',
'userModel',
'$location',
function($scope, $window, dataService, userModel, $location) {
$scope.dataService = dataService;
$scope.serverUnreachable = false;
$scope.invalidCredentials = false;
$scope.host = $scope.dataService.host.replace(/^https?\:\/\//ig, '');
$scope.tryLogin = function(host, username, password, event) {
// keyCode 13 is the 'Enter' button. If the user hits 'Enter' while in
// one of the 3 fields, attempt to log in.
if (event.keyCode === 13) {
$scope.login(host, username, password);
}
};
$scope.login = function(host, username, password) {
$scope.serverUnreachable = false;
$scope.invalidCredentials = false;
if (!username || username == '' || !password || password == '' ||
!host || host == '') {
return false;
} else {
$scope.dataService.setHost(host);
userModel.login(username, password, function(status, description) {
if (status) {
$scope.$emit('user-logged-in', {});
var next = $location.search().next;
// don't allow forwarding to non-local urls
if (next === undefined || next == null ||
next.indexOf('//') >= 0) {
$window.location.hash = '#/overview/server';
} else {
$window.location.href = next;
}
} else {
if (description === 'Unauthorized') {
$scope.invalidCredentials = true;
} else {
$scope.serverUnreachable = true;
}
}
});
}
};
},
]);
})(angular);
|