summaryrefslogtreecommitdiffstats
path: root/app/login/controllers/login-controller.js
blob: 7867a0caf4dfa2993b5e63d51990da29403b203d (plain)
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
/**
 * 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;
              if (next === undefined || next == null) {
                $window.location.hash = '#/overview/server';
              } else {
                $window.location.href = next;
              }
            } else {
              if (description === 'Unauthorized') {
                $scope.invalidCredentials = true;
              } else {
                $scope.serverUnreachable = true;
              }
            }
          });
        }
      };
    },
  ]);
})(angular);
OpenPOWER on IntegriCloud