summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPliable Pixels <pliablepixels@gmail.com>2018-09-10 08:39:41 -0400
committerPliable Pixels <pliablepixels@gmail.com>2018-09-10 08:39:41 -0400
commit0b9faee91b06e3ae51c3e16942b43135de996545 (patch)
treebf5713c31f677002c9614175a3118966bbe38144
parentfd317367ce221b83137e6198b30159caf4b129ce (diff)
#696 add more login auth leniency
-rw-r--r--www/js/DataModel.js3
-rwxr-xr-xwww/js/app.js96
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) {