Skip to content
Code-Schnipsel Gruppen Projekte
Commit 07590440 erstellt von Henning Leutz's avatar Henning Leutz :martial_arts_uniform:
Dateien durchsuchen

fix: google + firefox - consider unauthenticated users

Übergeordneter 0a21c0d2
Keine zugehörigen Branchen gefunden
Keine zugehörigen Tags gefunden
1 Merge Request!2fix: google + firefox - consider unauthenticated users
......@@ -90,6 +90,15 @@ define('package/quiqqer/authgoogle/bin/classes/Google', [
}.bind(this));
},
/**
* Are all google auth scripts loaded?
*
* @return {Boolean}
*/
isLoaded: function () {
return this.$loaded;
},
/**
* Get Registration Button
*
......@@ -134,25 +143,27 @@ define('package/quiqqer/authgoogle/bin/classes/Google', [
var self = this;
return new Promise(function (resolve, reject) {
GoogleAuth.signIn({
prompt: 'select_account'
}).then(function () {
if (!GoogleAuth.isSignedIn.get()) {
reject("Google Login failed.");
return;
}
return this.$load().then(function () {
return new Promise(function (resolve, reject) {
GoogleAuth.signIn({
prompt: 'select_account'
}).then(function () {
if (!GoogleAuth.isSignedIn.get()) {
reject("Google Login failed.");
return;
}
self.$GoogleUser = GoogleAuth.currentUser.get();
self.$AuthData = self.$GoogleUser.getAuthResponse(true);
self.$token = self.$AuthData.id_token;
self.$loggedIn = true;
self.$GoogleUser = GoogleAuth.currentUser.get();
self.$AuthData = self.$GoogleUser.getAuthResponse(true);
self.$token = self.$AuthData.id_token;
self.$loggedIn = true;
self.fireEvent('login', [self.$AuthData, self]);
self.fireEvent('login', [self.$AuthData, self]);
resolve();
}, function () {
reject("Google Login failed.");
resolve();
}, function () {
reject("Google Login failed.");
});
});
});
},
......@@ -515,4 +526,4 @@ define('package/quiqqer/authgoogle/bin/classes/Google', [
});
}
});
});
\ No newline at end of file
});
......@@ -3,10 +3,12 @@
*
* @module package/quiqqer/authgoogle/bin/controls/Login
* @author www.pcsg.de (Patrick Müller)
* @author www.pcsg.de (Henning Leutz)
*/
define('package/quiqqer/authgoogle/bin/controls/Login', [
'qui/controls/Control',
'qui/controls/windows/Popup',
'qui/controls/loader/Loader',
'qui/controls/windows/Confirm',
......@@ -17,7 +19,7 @@ define('package/quiqqer/authgoogle/bin/controls/Login', [
'css!package/quiqqer/authgoogle/bin/controls/Login.css'
], function (QUIControl, QUILoader, QUIConfirm, Google, QUIAjax, QUILocale) {
], function (QUIControl, QUIPopup, QUILoader, QUIConfirm, Google, QUIAjax, QUILocale) {
"use strict";
var lg = 'quiqqer/authgoogle';
......@@ -89,10 +91,11 @@ define('package/quiqqer/authgoogle/bin/controls/Login', [
$onImport: function () {
var self = this;
this.$Input = this.getElm();
this.$Input.type = 'hidden';
this.$Form = this.$Input.getParent('form');
this.$autoLogin = this.$Input.get('data-autologin') === "1";
this.$Input = this.getElm();
this.$Input.type = 'hidden';
this.$Form = this.$Input.getParent('form');
this.$autoLogin = this.$Input.get('data-autologin') === "1";
this.$FakeLoginBtn = this.$Elm.getParent().getElement(
'.quiqqer-auth-google-login-btn'
);
......@@ -110,13 +113,16 @@ define('package/quiqqer/authgoogle/bin/controls/Login', [
self.Loader.show();
Google.getGDPRConsent().then(function () {
return self.$openGoogleLoginWindowHelper();
}).then(function () {
return self.$authenticate();
}, function () {
self.$FakeLoginBtn.disabled = false;
self.Loader.hide();
}).then(function () {
self.$FakeLoginBtn.disabled = false;
self.Loader.hide();
}).catch(function () {
}).catch(function (err) {
console.error(err);
self.$FakeLoginBtn.disabled = false;
self.Loader.hide();
self.$showGeneralError();
});
......@@ -180,6 +186,9 @@ define('package/quiqqer/authgoogle/bin/controls/Login', [
self.$signedIn = result[1];
if (!self.$signedIn) {
Google.login().then(function () {
self.$authenticate();
});
return;
}
......@@ -252,6 +261,78 @@ define('package/quiqqer/authgoogle/bin/controls/Login', [
}
},
/**
*
* @return {Promise}
*/
$openGoogleLoginWindowHelper: function () {
var self = this;
if (!Google.isLoaded()) {
return new Promise(function (resolve) {
Google.$load().then(function () {
if (Google.isLoggedIn()) {
return resolve();
}
self.$openGoogleLoginWindowHelper().then(resolve);
});
});
}
if (Google.isLoggedIn()) {
return Promise.resolve();
}
return new Promise(function (resolve, reject) {
new QUIPopup({
maxWidth : 500,
maxHeight: 300,
buttons : false,
events : {
onOpen: function (Win) {
Win.Loader.show();
Win.getContent().setStyles({
'alignItems' : 'center',
'display' : 'flex',
'flexDirection' : 'column',
'justifyContent': 'center'
});
Google.$load().then(function () {
Win.getContent().set(
'html',
'<p>' +
QUILocale.get(lg, 'controls.register.status.unknown') +
'</p>' +
'<button class="qui-button quiqqer-auth-google-registration-btn qui-utils-noselect">' +
QUILocale.get(lg, 'controls.frontend.registrar.registration_button') +
'</button>'
);
Win.getContent().getElement('button').addEvent('click', function () {
Win.Loader.show();
Google.login().then(function () {
self.$signedIn = false;
resolve();
Win.close();
}).catch(function (err) {
console.error(err);
Win.Loader.hide();
});
});
Win.Loader.hide();
});
},
onCancel: reject
}
}).open();
});
},
/**
* Shows settings control
*
......@@ -405,4 +486,4 @@ define('package/quiqqer/authgoogle/bin/controls/Login', [
this.$InfoElm.setStyle('display', 'none');
}
});
});
\ No newline at end of file
});
......@@ -3,6 +3,7 @@
*
* @module package/quiqqer/authgoogle/bin/frontend/controls/Registrar
* @author www.pcsg.de (Patrick Müller)
* @author www.pcsg.de (Henning Leutz)
*/
define('package/quiqqer/authgoogle/bin/frontend/controls/Registrar', [
......@@ -111,13 +112,13 @@ define('package/quiqqer/authgoogle/bin/frontend/controls/Registrar', [
self.Loader.show();
Google.getGDPRConsent().then(function () {
return self.$openGoogleLoginWindowHelper();
}).then(function () {
return self.$init(true);
}, function () {
FakeRegisterBtn.disabled = false;
self.Loader.hide();
}).then(function () {
self.Loader.hide();
}).catch(function() {
}).catch(function () {
FakeRegisterBtn.disabled = false;
self.Loader.hide();
self.$showGeneralError();
......@@ -149,7 +150,7 @@ define('package/quiqqer/authgoogle/bin/frontend/controls/Registrar', [
// // nothing
// });
//} else {
FakeRegisterBtn.disabled = false;
FakeRegisterBtn.disabled = false;
//}
},
......@@ -198,6 +199,8 @@ define('package/quiqqer/authgoogle/bin/frontend/controls/Registrar', [
resolve();
}, function (err) {
console.error(err);
self.Loader.hide();
self.$showGeneralError();
reject();
......@@ -205,6 +208,66 @@ define('package/quiqqer/authgoogle/bin/frontend/controls/Registrar', [
});
},
/**
* Helper if google sdk is not loaded
*
* @return {Promise}
*/
$openGoogleLoginWindowHelper: function () {
if (Google.isLoggedIn()) {
return Promise.resolve();
}
var self = this;
return new Promise(function (resolve, reject) {
new QUIPopup({
maxWidth : 500,
maxHeight: 300,
buttons : false,
events : {
onOpen: function (Win) {
Win.Loader.show();
Win.getContent().setStyles({
'alignItems' : 'center',
'display' : 'flex',
'flexDirection' : 'column',
'justifyContent': 'center'
});
Google.$load().then(function () {
Win.getContent().set(
'html',
'<p>' +
QUILocale.get(lg, 'controls.register.status.unknown') +
'</p>' +
'<button class="qui-button quiqqer-auth-google-registration-btn qui-utils-noselect">' +
'Google Anmeldung öffnen' +
'</button>'
);
Win.getContent().getElement('button').addEvent('click', function () {
Win.Loader.show();
Google.login().then(function () {
self.$signedIn = false;
resolve();
Win.close();
}).catch(function () {
Win.Loader.hide();
});
});
Win.Loader.hide();
});
},
onCancel: reject
}
}).open();
});
},
/**
* Start registration process
*
......@@ -375,4 +438,4 @@ define('package/quiqqer/authgoogle/bin/frontend/controls/Registrar', [
});
}
});
});
\ No newline at end of file
});
0% Lade oder .
You are about to add 0 people to the discussion. Proceed with caution.
Bearbeitung dieser Nachricht zuerst beenden!
Bitte registrieren oder zum Kommentieren