Lemonldap-NG-Manager
view release on metacpan or search on metacpan
site/js-src/2ndfa.js view on Meta::CPAN
}
}
};
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,
( run in 0.993 second using v1.01-cache-2.11-cpan-364913b4093 )