diff options
author | blizzz <blizzz@owncloud.com> | 2014-01-08 10:41:39 -0800 |
---|---|---|
committer | blizzz <blizzz@owncloud.com> | 2014-01-08 10:41:39 -0800 |
commit | d8b8abb429d3d66598a16d25cf55f7dc19e3f996 (patch) | |
tree | 085c9d1173d570f02fbf1bc88fb6ec27a674c42a /core | |
parent | 0e7283ef39d7fe2e80585c190d8e1dc2cb511c96 (diff) | |
parent | 4585b4ea3f1fd21aabc167102e74a382dfa0cbd8 (diff) | |
download | nextcloud-server-d8b8abb429d3d66598a16d25cf55f7dc19e3f996.tar.gz nextcloud-server-d8b8abb429d3d66598a16d25cf55f7dc19e3f996.zip |
Merge pull request #6681 from owncloud/userreport
add command line option to get user number statistics
Diffstat (limited to 'core')
-rw-r--r-- | core/command/user/report.php | 61 | ||||
-rw-r--r-- | core/register_command.php | 1 |
2 files changed, 62 insertions, 0 deletions
diff --git a/core/command/user/report.php b/core/command/user/report.php new file mode 100644 index 00000000000..f95ba251bcc --- /dev/null +++ b/core/command/user/report.php @@ -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); + } +}
\ No newline at end of file diff --git a/core/register_command.php b/core/register_command.php index e4f3b124365..2efa838e9ee 100644 --- a/core/register_command.php +++ b/core/register_command.php @@ -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\ListApps()); $application->add(new OC\Core\Command\Maintenance\Repair(new \OC\Repair())); +$application->add(new OC\Core\Command\User\Report()); |