Lemonldap-NG-Manager

 view release on metacpan or  search on metacpan

site/htdocs/static/js/2ndfa.js  view on Meta::CPAN

  // Queries to do each type of display: each array item corresponds to the depth
  // of opened nodes in the tree
  schemes = {
    _whatToTrace: [function (t, v) {
      return `groupBy=substr(${t},1)`;
    }, function (t, v) {
      return `${t}=${v}*`;
    }]
  };
  overScheme = {
    _whatToTrace: function (t, v, level, over) {
      console.debug('overSchema => level', level, 'over', over);
      if (level === 1 && v.length > over) {
        return `${t}=${v}*&groupBy=substr(${t},${level + over + 1})`;
      } else {
        return null;
      }
    }
  };
  hiddenAttributes = '_password';

  // Attributes to group in session display
  categories = {
    dateTitle: ['_utime', '_startTime', '_updateTime'],
    sfaTitle: ['_2fDevices']
  };

  // Menu entries
  menu = {
    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.availableLanguages = availableLanguages;
    $scope.waiting = true;
    $scope.showM = false;
    $scope.showT = true;
    $scope.data = [];
    $scope.currentScope = null;
    $scope.currentSession = null;
    $scope.menu = menu;
    $scope.searchString = '';
    $scope.sfatypes = {};
    // Import translations functions
    $scope.translateP = $translator.translateP;
    $scope.translate = $translator.translate;
    $scope.translateTitle = function (node) {
      return $translator.translateField(node, 'title');
    };
    sessionType = 'persistent';
    // 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);
            $scope[button.action]();
            break;
          case 'string':
            $scope[button.action]();
            break;
          default:
            console.warn('Unknown action type', typeof button.action);
        }
      }
      return $scope.showM = false;
    };
    //# SESSIONS MANAGEMENT
    // Search 2FA sessions
    $scope.search2FA = function (clear) {
      if (clear) {
        $scope.searchString = '';
      }
      $scope.currentSession = null;
      $scope.data = [];
      return $scope.updateTree2('', $scope.data, 0, 0);
    };

    // Delete 2FA device
    $scope.delete2FA = function (type, epoch) {
      var e, i, items, len;
      items = document.querySelectorAll(`.data-${epoch}`);
      for (i = 0, len = items.length; i < len; i++) {
        e = items[i];
        e.remove();
      }
      $scope.waiting = true;
      $http['delete'](`${scriptname}sfa/${sessionType}/${$scope.currentSession.id}?type=${type}&epoch=${epoch}`).then(function (response) {
        return $scope.waiting = false;
      }, function (resp) {
        return $scope.waiting = false;
      });
      return $scope.showT = false;
    };
    // Open node
    $scope.stoggle = function (scope) {
      var node;
      node = scope.$modelValue;
      if (node.nodes.length === 0) {
        $scope.updateTree(node.value, node.nodes, node.level, node.over, node.query, node.count);
      }
      return scope.toggle();
    };
    // Display selected session
    $scope.displaySession = function (scope) {
      var sessionId, transformSession;
      // Private functions

      // Session preparation



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