Add command line tool to show numbers of users and user directories
This commit is contained in:
parent
1e1ced7772
commit
bc1235d325
|
@ -0,0 +1,61 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Copyright (c) 2014 Arthur Schiwon <blizzz@owncloud.com>
|
||||||
|
* This file is licensed under the Affero General Public License version 3 or
|
||||||
|
* later.
|
||||||
|
* See the COPYING-README file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace OC\Core\Command\User;
|
||||||
|
|
||||||
|
use Symfony\Component\Console\Command\Command;
|
||||||
|
use Symfony\Component\Console\Input\InputArgument;
|
||||||
|
use Symfony\Component\Console\Input\InputInterface;
|
||||||
|
use Symfony\Component\Console\Output\OutputInterface;
|
||||||
|
use Symfony\Component\Console\Helper\TableHelper;
|
||||||
|
|
||||||
|
class Report extends Command {
|
||||||
|
protected function configure() {
|
||||||
|
$this
|
||||||
|
->setName('user:report')
|
||||||
|
->setDescription('shows how many users have access');
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function execute(InputInterface $input, OutputInterface $output) {
|
||||||
|
$table = $this->getHelperSet()->get('table');
|
||||||
|
$table->setHeaders(array('User Report', ''));
|
||||||
|
$userCountArray = $this->countUsers();
|
||||||
|
if(!empty($userCountArray)) {
|
||||||
|
$total = 0;
|
||||||
|
$rows = array();
|
||||||
|
foreach($userCountArray as $classname => $users) {
|
||||||
|
$total += $users;
|
||||||
|
$rows[] = array($classname, $users);
|
||||||
|
}
|
||||||
|
|
||||||
|
$rows[] = array(' ');
|
||||||
|
$rows[] = array('total users', $total);
|
||||||
|
} else {
|
||||||
|
$rows[] = array('No backend enabled that supports user counting', '');
|
||||||
|
}
|
||||||
|
|
||||||
|
$userDirectoryCount = $this->countUserDirectories();
|
||||||
|
$rows[] = array(' ');
|
||||||
|
$rows[] = array('user directories', $userDirectoryCount);
|
||||||
|
|
||||||
|
$table->setRows($rows);
|
||||||
|
$table->render($output);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function countUsers() {
|
||||||
|
\OC_App::loadApps(array('authentication'));
|
||||||
|
$userManager = \OC::$server->getUserManager();
|
||||||
|
return $userManager->countUsers();
|
||||||
|
}
|
||||||
|
|
||||||
|
private function countUserDirectories() {
|
||||||
|
$dataview = new \OC\Files\View('/');
|
||||||
|
$userDirectories = $dataview->getDirectoryContent('/', 'httpd/unix-directory');
|
||||||
|
return count($userDirectories);
|
||||||
|
}
|
||||||
|
}
|
|
@ -15,3 +15,4 @@ $application->add(new OC\Core\Command\App\Disable());
|
||||||
$application->add(new OC\Core\Command\App\Enable());
|
$application->add(new OC\Core\Command\App\Enable());
|
||||||
$application->add(new OC\Core\Command\App\ListApps());
|
$application->add(new OC\Core\Command\App\ListApps());
|
||||||
$application->add(new OC\Core\Command\Maintenance\Repair(new \OC\Repair()));
|
$application->add(new OC\Core\Command\Maintenance\Repair(new \OC\Repair()));
|
||||||
|
$application->add(new OC\Core\Command\User\Report());
|
||||||
|
|
Loading…
Reference in New Issue