Browse Source

Add command line tool to show numbers of users and user directories

tags/v7.0.0alpha2
Arthur Schiwon 10 years ago
parent
commit
bc1235d325
2 changed files with 62 additions and 0 deletions
  1. 61
    0
      core/command/user/report.php
  2. 1
    0
      core/register_command.php

+ 61
- 0
core/command/user/report.php View File

@@ -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);
}
}

+ 1
- 0
core/register_command.php View File

@@ -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());

Loading…
Cancel
Save