summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorblizzz <blizzz@owncloud.com>2014-01-08 10:41:39 -0800
committerblizzz <blizzz@owncloud.com>2014-01-08 10:41:39 -0800
commitd8b8abb429d3d66598a16d25cf55f7dc19e3f996 (patch)
tree085c9d1173d570f02fbf1bc88fb6ec27a674c42a /core
parent0e7283ef39d7fe2e80585c190d8e1dc2cb511c96 (diff)
parent4585b4ea3f1fd21aabc167102e74a382dfa0cbd8 (diff)
downloadnextcloud-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.php61
-rw-r--r--core/register_command.php1
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());