diff options
| author | Pliable Pixels <pliablepixels@gmail.com> | 2018-09-10 08:39:41 -0400 |
|---|---|---|
| committer | Pliable Pixels <pliablepixels@gmail.com> | 2018-09-10 08:39:41 -0400 |
| commit | 0b9faee91b06e3ae51c3e16942b43135de996545 (patch) | |
| tree | bf5713c31f677002c9614175a3118966bbe38144 | |
| parent | fd317367ce221b83137e6198b30159caf4b129ce (diff) | |
#696 add more login auth leniency
| -rw-r--r-- | www/js/DataModel.js | 3 | ||||
| -rwxr-xr-x | www/js/app.js | 96 |
2 files changed, 64 insertions, 35 deletions
diff --git a/www/js/DataModel.js b/www/js/DataModel.js index ea8bd9b2..acda8119 100644 --- a/www/js/DataModel.js +++ b/www/js/DataModel.js @@ -2842,7 +2842,8 @@ angular.module('zmApp.controllers') debug("Logging out using API method"); $http.get(loginData.apiurl + '/host/logout.json', { - timeout: 7000 + timeout: 7000, + transformResponse: undefined }) .then(function (s) { debug("Logout returned... "); diff --git a/www/js/app.js b/www/js/app.js index ccc9593e..42aa1671 100755 --- a/www/js/app.js +++ b/www/js/app.js @@ -1063,7 +1063,7 @@ angular.module('zmApp', [ url: loginAPI, timeout:httpDelay, headers: {'Content-Type': 'application/x-www-form-urlencoded'}, - + transformResponse: undefined, transformRequest: function(obj) { var str = []; for(var p in obj) @@ -1073,17 +1073,70 @@ angular.module('zmApp', [ data: {user: loginData.username, pass: loginData.password} }) //$http.get(loginAPI) - .then(function (succ) { + .then(function (textsucc) { $ionicLoading.hide(); - if (!succ.data.version) { - NVRDataModel.debug ("API login returned fake success, going back to webscrape"); - var ld = NVRDataModel.getLogin(); + var succ; + + + try { + + succ = JSON.parse(textsucc.data); + + if (!succ.version) { + NVRDataModel.debug ("API login returned fake success, going back to webscrape"); + var ld = NVRDataModel.getLogin(); + ld.loginAPISupported = false; + NVRDataModel.setLogin(ld); + + loginWebScrape() + .then ( function (succ) { + d.resolve("Login Success"); + return d.promise; + }, + function (err) { + $ionicLoading.hide(); + d.reject("Login Error"); + return (d.promise); + }); + return d.promise; + } + NVRDataModel.debug ("API based login returned... "); + NVRDataModel.setCurrentServerVersion(succ.version); + $ionicLoading.hide(); + //$rootScope.loggedIntoZm = 1; + $rootScope.authSession = ''; + + if (succ.credentials) { + $rootScope.authSession = "&" + succ.credentials; + if (succ.append_password == '1') { + $rootScope.authSession = $rootScope.authSession + + loginData.password; + } + } + + var ldg = NVRDataModel.getLogin(); + ldg.loginAPISupported = true; + NVRDataModel.setLogin(ldg); + + NVRDataModel.log("Stream authentication construction: " + + $rootScope.authSession); + + NVRDataModel.log("zmAutologin successfully logged into Zoneminder via API"); + + + + d.resolve("Login Success"); + + $rootScope.$broadcast('auth-success', succ); + } + catch (e) { + NVRDataModel.debug ("Login API approach did not work..."); + var ld = NVRDataModel.getLogin(); ld.loginAPISupported = false; NVRDataModel.setLogin(ld); - - loginWebScrape() + loginWebScrape() .then ( function (succ) { d.resolve("Login Success"); return d.promise; @@ -1094,35 +1147,10 @@ angular.module('zmApp', [ return (d.promise); }); return d.promise; - } - NVRDataModel.debug ("API based login returned... "); - NVRDataModel.setCurrentServerVersion(succ.data.version); - $ionicLoading.hide(); - //$rootScope.loggedIntoZm = 1; - $rootScope.authSession = ''; - - if (succ.data.credentials) { - $rootScope.authSession = "&" + succ.data.credentials; - if (succ.data.append_password == '1') { - $rootScope.authSession = $rootScope.authSession + - loginData.password; - } - } - - var ldg = NVRDataModel.getLogin(); - ldg.loginAPISupported = true; - NVRDataModel.setLogin(ldg); - - NVRDataModel.log("Stream authentication construction: " + - $rootScope.authSession); - - NVRDataModel.log("zmAutologin successfully logged into Zoneminder via API"); - - - d.resolve("Login Success"); + } - $rootScope.$broadcast('auth-success', succ); + }, function (err) { |
