simpleautologout-8.x-1.6/js/simpleautologout.js

js/simpleautologout.js
/**
 * @file
 * JavaScript for simple autologout.
 */

jQuery(document).ready(function () {
  var time;
  var time_diff;
  var logout;

  var uid = drupalSettings.user.uid;
  var timeout = drupalSettings.simpleautologout.timeout;
  var timeout_refresh_rate = drupalSettings.simpleautologout.timeout_refresh_rate;
  var redirect_url = drupalSettings.simpleautologout.redirect_url;
  var simpleautologout_session_time = drupalSettings.simpleautologout.simpleautologout_session_time;

  localStorage.setItem(
    'simpleautologout_session_time',
    simpleautologout_session_time,
  );

  var checkTimeout = function (simpleautologout_session_time, timeout, redirect_url) {
    var sendData = {
      'uid' : uid,
    };
    requestUrl = drupalSettings.path.baseUrl + 'get-last-active-time';

    jQuery.ajax({
      url: requestUrl,
      dataType: 'json',
      contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
      data: sendData,
      type: 'POST',
      success: function (response) {
        session_active = response.session_active;
        time = Math.floor(Date.now());
        time_diff = time - simpleautologout_session_time;

        if (time_diff > timeout && session_active == 'true') {
          logOut(redirect_url);
        }
        else if (session_active == 'false') {
          window.location.href = redirect_url;
        }
      },
      error: function () {
        window.location.href = redirect_url;
      },
    });
  };

  var logOut = function (redirect_url) {
    requestUrl = drupalSettings.path.baseUrl + 'simple-autologout';
    jQuery.ajax({
      url: requestUrl,
      dataType: 'json',
      contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
      type: 'GET',
      success: function (response) {
        logout = response.logout;
        if (logout == 'true') {
          window.location.href = redirect_url;
        }
      },
      error: function () {
        console.log('Error:- Cannot logout user.');
      },
    });
  };

  // If user is logged check for inactivity time.
  window.setInterval(function () {
    if (uid > 0) {
      simpleautologout_session_time = localStorage.getItem('simpleautologout_session_time');
      checkTimeout(simpleautologout_session_time, timeout, redirect_url);
    }
  }, timeout_refresh_rate);

  // Bind mousemove events to prevent AutoLogout event.
  jQuery('body').bind('mousemove', function () {
    localStorage.setItem(
      'simpleautologout_session_time',
      Math.floor(Date.now()),
    );
  });

  // Bind keyup events to prevent AutoLogout event. So while typing anything in from fields user cannot be logged out.
  jQuery('body').bind('keyup', function () {
    localStorage.setItem(
      'simpleautologout_session_time',
      Math.floor(Date.now()),
    );
  });

  // Bind scroll events to preventAutoLogout event.
  jQuery(window).bind('scroll', function () {
    localStorage.setItem(
      'simpleautologout_session_time',
      Math.floor(Date.now()),
    );
  });

});

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc