| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- 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);
|