[Pkg-owncloud-commits] [owncloud] 61/104: Add command line tool to show numbers of users and user directories

David Prévot taffit at moszumanska.debian.org
Sat Jan 18 13:33:40 UTC 2014


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository owncloud.

commit 0f58bd02c1489d144082695c4a8da41de1353b5c
Author: Arthur Schiwon <blizzz at owncloud.com>
Date:   Tue Jan 7 23:06:37 2014 +0100

    Add command line tool to show numbers of users and user directories
---
 core/command/user/report.php | 61 ++++++++++++++++++++++++++++++++++++++++++++
 core/register_command.php    |  1 +
 2 files changed, 62 insertions(+)

diff --git a/core/command/user/report.php b/core/command/user/report.php
new file mode 100644
index 0000000..f95ba25
--- /dev/null
+++ b/core/command/user/report.php
@@ -0,0 +1,61 @@
+<?php
+/**
+ * Copyright (c) 2014 Arthur Schiwon <blizzz at 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 e4f3b12..2efa838 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());

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git



More information about the Pkg-owncloud-commits mailing list