| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- "use strict";
- function init_persona() {
- if (!(navigator.id && window.$ && window.url)) {
- if (window.console) {
- console.log('FreshRSS (Persona) waiting for JS…');
- }
- window.setTimeout(init_persona, 100);
- return;
- }
- $('a.signin').click(function() {
- navigator.id.request();
- return false;
- });
- $('a.signout').click(function() {
- navigator.id.logout();
- return false;
- });
- navigator.id.watch({
- loggedInUser: context['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) {
- if (res.status === 'failure') {
- openNotification(res.reason, 'bad');
- } else if (res.status === 'okay') {
- location.href = url['index'];
- }
- },
- error: function(res, status, xhr) {
- // alert(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['index'];
- },
- error: function(res, status, xhr) {
- // alert(res);
- }
- });
- }
- });
- }
- if (document.readyState && document.readyState !== 'loading') {
- if (window.console) {
- console.log('FreshRSS (Persona) immediate init…');
- }
- init_persona();
- } else if (document.addEventListener) {
- document.addEventListener('DOMContentLoaded', function () {
- if (window.console) {
- console.log('FreshRSS (Persona) waiting for DOMContentLoaded…');
- }
- init_persona();
- }, false);
- }
|