aboutsummaryrefslogtreecommitdiff
path: root/public
diff options
context:
space:
mode:
authorGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2013-11-07 23:50:21 +0100
committerGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2013-11-07 23:50:21 +0100
commit5a2a5ee37480b0856b06b656b5b29d12ce132722 (patch)
tree546910aa20c9fb50fc84d467a81a242cc8bee81d /public
parentfb6259f3750d7130d729b785a6e980005af0c921 (diff)
Issue #235: refactorisation code Persona
Le code pour la connexion via Persona a été bougée dans le fichier main.js avec le reste du code JS Ça ne marche toujours pas sous Firefox car il essaye d'initialiser navigator.id.watch avant que le fichier login.persona.org/include.js ne soit chargé L'url est correctement écrite côté serveur pour permettre à Persona d'indiquer au site que la connexion s'est bien passée
Diffstat (limited to 'public')
-rw-r--r--public/scripts/main.js58
1 files changed, 58 insertions, 0 deletions
diff --git a/public/scripts/main.js b/public/scripts/main.js
index f4bffcca8..663f311c3 100644
--- a/public/scripts/main.js
+++ b/public/scripts/main.js
@@ -504,6 +504,63 @@ function init_load_more() {
}
//</endless_mode>
+//<persona>
+function init_persona() {
+ $('a.signin').click(function() {
+ navigator.id.request();
+ return false;
+ });
+
+ $('a.signout').click(function() {
+ navigator.id.logout();
+ return false;
+ });
+
+ navigator.id.watch({
+ loggedInUser: current_user_mail,
+
+ onlogin: function(assertion) {
+ // A user has logged in! Here you need to:
+ // 1. Send the assertion to your backend for verification and to create a session.
+ // 2. Update your UI.
+ $.ajax ({
+ type: 'POST',
+ url: url_login,
+ data: {assertion: assertion},
+ success: function(res, status, xhr) {
+ var res_obj = jQuery.parseJSON(res);
+
+ if (res_obj.status == 'failure') {
+ //alert (res_obj.reason);
+ } else if (res_obj.status == 'okay') {
+ location.href = url_freshrss;
+ }
+ },
+ error: function(res, status, xhr) {
+ alert("login failure : " + res);
+ }
+ });
+ },
+ onlogout: function() {
+ // A user has logged out! Here you need to:
+ // Tear down the user's session by redirecting the user or making a call to your backend.
+ // Also, make sure loggedInUser will get set to null on the next page load.
+ // (That's a literal JavaScript null. Not false, 0, or undefined. null.)
+ $.ajax ({
+ type: 'POST',
+ url: url_logout,
+ success: function(res, status, xhr) {
+ location.href = url_freshrss;
+ },
+ error: function(res, status, xhr) {
+ //alert("logout failure" + res);
+ }
+ });
+ }
+ });
+}
+//</persona>
+
function init_all() {
if (!(window.$ && window.shortcut && window.shortcuts && ((!full_lazyload) || $.fn.lazyload))) {
if (window.console) {
@@ -522,6 +579,7 @@ function init_all() {
init_notifications();
init_actualize();
init_load_more();
+ init_persona();
if (window.console) {
console.log('Init done.');
}