import _ from 'lodash'; import coreModule from '../core_module'; import config from 'app/core/config'; export class LoginCtrl { /** @ngInject */ constructor($scope, backendSrv, contextSrv, $location) { $scope.formModel = { user: '', email: '', password: '', }; contextSrv.sidemenu = false; $scope.oauth = config.oauth; $scope.oauthEnabled = _.keys(config.oauth).length > 0; $scope.disableLoginForm = config.disableLoginForm; $scope.disableUserSignUp = config.disableUserSignUp; $scope.loginHint = config.loginHint; $scope.loginMode = true; $scope.submitBtnText = 'Log in'; $scope.init = function() { $scope.$watch('loginMode', $scope.loginModeChanged); if (config.loginError) { $scope.appEvent('alert-warning', ['Login Failed', config.loginError]); } }; $scope.submit = function() { if ($scope.loginMode) { $scope.login(); } else { $scope.signUp(); } }; $scope.loginModeChanged = function(newValue) { $scope.submitBtnText = newValue ? 'Log in' : 'Sign up'; }; $scope.signUp = function() { if (!$scope.loginForm.$valid) { return; } backendSrv.post('/api/user/signup', $scope.formModel).then(function(result) { if (result.status === 'SignUpCreated') { $location.path('/signup').search({ email: $scope.formModel.email }); } else { window.location.href = config.appSubUrl + '/'; } }); }; $scope.login = function() { delete $scope.loginError; if (!$scope.loginForm.$valid) { return; } backendSrv.post('/login', $scope.formModel).then(function(result) { var params = $location.search(); if (params.redirect && params.redirect[0] === '/') { window.location.href = config.appSubUrl + params.redirect; } else if (result.redirectUrl) { window.location.href = result.redirectUrl; } else { window.location.href = config.appSubUrl + '/'; } }); }; $scope.init(); } } coreModule.controller('LoginCtrl', LoginCtrl);