Lemonldap-NG-Manager

 view release on metacpan or  search on metacpan

site/htdocs/static/js/sessions.js  view on Meta::CPAN

        return null;
      }
    }
  };
  hiddenAttributes = '_password';

  // Attributes to group in session display
  categories = {
    dateTitle: ['_utime', '_startTime', '_updateTime', '_lastAuthnUTime', '_lastSeen'],
    connectionTitle: ['ipAddr', '_timezone', '_url'],
    authenticationTitle: ['_session_id', '_user', '_password', 'authenticationLevel'],
    modulesTitle: ['_auth', '_userDB', '_passwordDB', '_issuerDB', '_authChoice', '_authMulti', '_userDBMulti', '_2f'],
    saml: ['_idp', '_idpConfKey', '_samlToken', '_lassoSessionDump', '_lassoIdentityDump'],
    groups: ['groups', 'hGroups'],
    ldap: ['dn'],
    OpenIDConnect: ['_oidc_id_token', '_oidc_OP', '_oidc_access_token', '_oidc_refresh_token', '_oidc_access_token_eol', '_oidcConnectedRP', '_oidcConnectedRPIDs'],
    sfaTitle: ['_2fDevices'],
    oidcConsents: ['_oidcConsents']
  };

  // Menu entries
  menu = {
    session: [{
      title: 'deleteSession',
      icon: 'trash'
    }, {
      title: 'globalLogout',
      icon: 'trash'
    }],
    home: []
  };
  llapp = angular.module('llngSessionsExplorer', ['ui.tree', 'ui.bootstrap', 'llApp']);

  // Main controller
  llapp.controller('SessionsExplorerCtrl', ['$scope', '$translator', '$location', '$q', '$http', function ($scope, $translator, $location, $q, $http) {
    var autoId, c, pathEvent, sessionType;
    $scope.links = links;
    $scope.menulinks = menulinks;
    $scope.staticPrefix = staticPrefix;
    $scope.scriptname = scriptname;
    $scope.formPrefix = formPrefix;
    $scope.impPrefix = impPrefix;
    $scope.sessionTTL = sessionTTL;
    $scope.availableLanguages = availableLanguages;
    $scope.waiting = true;
    $scope.showM = false;
    $scope.showT = true;
    $scope.data = [];
    $scope.currentScope = null;
    $scope.currentSession = null;
    $scope.menu = menu;
    // Import translations functions
    $scope.translateP = $translator.translateP;
    $scope.translate = $translator.translate;
    $scope.translateTitle = function (node) {
      return $translator.translateField(node, 'title');
    };
    sessionType = 'global';
    // Handle menu items
    $scope.menuClick = function (button) {
      if (button.popup) {
        window.open(button.popup);
      } else {
        if (!button.action) {
          button.action = button.title;
        }
        switch (typeof button.action) {
          case 'function':
            button.action($scope.currentNode, $scope);
            break;
          case 'string':
            $scope[button.action]();
            break;
          default:
            console.warn('Unknown action type', typeof button.action);
        }
      }
      return $scope.showM = false;
    };
    // SESSION MANAGEMENT

    // Delete RP Consent
    $scope.deleteOIDCConsent = function (rp, epoch) {
      var items;
      items = document.querySelectorAll(`.data-${epoch}`);
      $scope.waiting = true;
      $http['delete'](`${scriptname}sessions/OIDCConsent/${sessionType}/${$scope.currentSession.id}?rp=${rp}&epoch=${epoch}`).then(function (response) {
        var e, i, len, results;
        $scope.waiting = false;
        results = [];
        for (i = 0, len = items.length; i < len; i++) {
          e = items[i];
          results.push(e.remove());
        }
        return results;
      }, function (resp) {
        return $scope.waiting = false;
      });
      return $scope.showT = false;
    };
    // Delete
    $scope.deleteSession = function () {
      $scope.waiting = true;
      return $http['delete'](`${scriptname}sessions/${sessionType}/${$scope.currentSession.id}`).then(function (response) {
        $scope.currentSession = null;
        $scope.currentScope.remove();
        return $scope.waiting = false;
      }, function (resp) {
        return $scope.waiting = false;
      });
    };
    $scope.globalLogout = function () {
      $scope.waiting = true;
      return $http['post'](`${scriptname}sessions/glogout/${sessionType}/${$scope.currentSession.id}`).then(function (response) {
        $scope.currentSession = null;
        $scope.currentScope.remove();
        return $scope.waiting = false;
      }, function (resp) {
        return $scope.waiting = false;
      });
    };
    // Open node



( run in 0.692 second using v1.01-cache-2.11-cpan-364913b4093 )