hunk.code_window: 	defaultDataDirectory   = "/data"
   	defaultAssetsDirectory = "."
   	defaultTemplatesURL    = "https://raw.githubusercontent.com/portainer/templates/master/templates.json"
   	defaultNoAuth          = "false"
   	defaultTLSVerify       = "false"
   	defaultTLSCACertPath   = "/certs/ca.pem"
   	defaultTLSCertPath     = "/certs/cert.pem"
   	defaultTLSKeyPath      = "/certs/key.pem"
   )
hunk.labels: keep keep keep add keep keep keep keep keep
hunk.after_edit: 	defaultNoAnalytics     = "false"
  
hunk.file_path: api/cli/defaults.go
hunk.type: add
file: angular.module('auth', [])
  .controller('AuthenticationController', ['$scope', '$state', '$stateParams', '$window', '$timeout', '$sanitize', 'Config', 'Authentication', 'Users', 'EndpointService', 'StateManager', 'Messages',
  function ($scope, $state, $stateParams, $window, $timeout, $sanitize, Config, Authentication, Users, EndpointService, StateManager, Messages) {
  
    $scope.authData = {
      username: 'admin',
      password: '',
      error: ''
    };
    $scope.initPasswordData = {
      password: '',
      password_confirmation: '',
      error: false
    };
  
    if (!$scope.applicationState.application.authentication) {
      EndpointService.getActive().then(function success(data) {
        StateManager.updateEndpointState(true)
        .then(function success() {
          $state.go('dashboard');
        }, function error(err) {
          Messages.error("Failure", err, 'Unable to connect to the Docker endpoint');
        });
      }, function error(err) {
        if (err.status === 404) {
          $state.go('endpointInit');
        } else {
          Messages.error("Failure", err, 'Unable to verify Docker endpoint existence');
        }
      });
    }
  
    if ($stateParams.logout) {
      Authentication.logout();
    }
  
    if ($stateParams.error) {
      $scope.authData.error = $stateParams.error;
      Authentication.logout();
    }
  
    if (Authentication.isAuthenticated()) {
      $state.go('dashboard');
    }
  
    Config.$promise.then(function (c) {
      $scope.logo = c.logo;
    });
  
    Users.checkAdminUser({}, function (d) {},
    function (e) {
      if (e.status === 404) {
        $scope.initPassword = true;
      } else {
        Messages.error("Failure", e, 'Unable to verify administrator account existence');
      }
    });
  
    $scope.createAdminUser = function() {
      var password = $sanitize($scope.initPasswordData.password);
      Users.initAdminUser({password: password}, function (d) {
        $scope.initPassword = false;
        $timeout(function() {
          var element = $window.document.getElementById('password');
          if(element) {
            element.focus();
          }
        });
      }, function (e) {
        $scope.initPassword.error = true;
      });
    };
  
    $scope.authenticateUser = function() {
      $scope.authenticationError = false;
      var username = $sanitize($scope.authData.username);
      var password = $sanitize($scope.authData.password);
      Authentication.login(username, password).then(function success() {
        EndpointService.getActive().then(function success(data) {
          StateManager.updateEndpointState(true)
          .then(function success() {
            $state.go('dashboard');
          }, function error(err) {
            Messages.error("Failure", err, 'Unable to connect to the Docker endpoint');
          });
        }, function error(err) {
          if (err.status === 404) {
            $state.go('endpointInit');
          } else {
            Messages.error("Failure", err, 'Unable to verify Docker endpoint existence');
          }
        });
      }, function error() {
        $scope.authData.error = 'Invalid credentials';
      });
    };
  }]);
  