diff options
| author | 2012-10-25 19:06:32 +0200 | |
|---|---|---|
| committer | 2012-10-25 19:06:32 +0200 | |
| commit | 3ff51a59ba97f3ef1df3c26df16d9a3ab5789843 (patch) | |
| tree | 89de7b553f5b8240ad0d9f766800973f9845a121 /app/layout/persona.phtml | |
| parent | 48a1aa7d52e712d5f64a33a003b31f23a00b99f5 (diff) | |
Ajout fonctionnalité connexion avec Persona (à améliorer sans doute)
Diffstat (limited to 'app/layout/persona.phtml')
| -rw-r--r-- | app/layout/persona.phtml | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/app/layout/persona.phtml b/app/layout/persona.phtml new file mode 100644 index 000000000..8db8d5167 --- /dev/null +++ b/app/layout/persona.phtml @@ -0,0 +1,73 @@ +<?php if (login_is_conf ($this->conf)) { ?> +<?php + $mail = Session::param ('mail', 'null'); + if ($mail != 'null') { + $mail = '\'' . $mail . '\''; + } +?> + +<script type="text/javascript"> +url = "<?php echo Url::display (); ?>" +login_url = "<?php echo Url::display (array ('a' => 'login')); ?>"; +logout_url = "<?php echo Url::display (array ('a' => 'logout')); ?>"; +currentUser = <?php echo $mail; ?>; + +var signinLink = $('a#signin'); +if (signinLink) { + signinLink.click(function() { + navigator.id.request(); + return false; + }); +}; + +var signoutLink = $('a#signout'); +if (signoutLink) { + signoutLink.click(function() { + navigator.id.logout(); + return false; + }); +}; + +navigator.id.watch({ + loggedInUser: currentUser, + 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: login_url, + 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; + } + }, + 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: logout_url, + success: function(res, status, xhr) { + location.href = url; + }, + error: function(res, status, xhr) { + //alert("logout failure" + res); + } + }); + } +}); +</script> +<?php } ?> |
