summaryrefslogtreecommitdiff
path: root/app/layout/persona.phtml
diff options
context:
space:
mode:
authorGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2012-10-25 19:06:32 +0200
committerGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2012-10-25 19:06:32 +0200
commit3ff51a59ba97f3ef1df3c26df16d9a3ab5789843 (patch)
tree89de7b553f5b8240ad0d9f766800973f9845a121 /app/layout/persona.phtml
parent48a1aa7d52e712d5f64a33a003b31f23a00b99f5 (diff)
Ajout fonctionnalité connexion avec Persona (à améliorer sans doute)
Diffstat (limited to 'app/layout/persona.phtml')
-rw-r--r--app/layout/persona.phtml73
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 } ?>