diff options
Diffstat (limited to 'core/Command/Group/ListCommand.php')
-rw-r--r-- | core/Command/Group/ListCommand.php | 37 |
1 files changed, 27 insertions, 10 deletions
diff --git a/core/Command/Group/ListCommand.php b/core/Command/Group/ListCommand.php index 09b91cce3bc..db7493fe8d4 100644 --- a/core/Command/Group/ListCommand.php +++ b/core/Command/Group/ListCommand.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Robin Appelman <robin@icewind.nl> * + * @author Joas Schilling <coding@schilljs.com> + * @author Johannes Leuker <j.leuker@hosting.de> * @author Robin Appelman <robin@icewind.nl> * * @license GNU AGPL version 3 or any later version @@ -13,14 +15,13 @@ * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ - namespace OC\Core\Command\Group; use OC\Core\Command\Base; @@ -51,13 +52,18 @@ class ListCommand extends Base { 'l', InputOption::VALUE_OPTIONAL, 'Number of groups to retrieve', - 500 + '500' )->addOption( 'offset', 'o', InputOption::VALUE_OPTIONAL, 'Offset for retrieving groups', - 0 + '0' + )->addOption( + 'info', + 'i', + InputOption::VALUE_NONE, + 'Show additional info (backend)' )->addOption( 'output', null, @@ -67,22 +73,33 @@ class ListCommand extends Base { ); } - protected function execute(InputInterface $input, OutputInterface $output) { + protected function execute(InputInterface $input, OutputInterface $output): int { $groups = $this->groupManager->search('', (int)$input->getOption('limit'), (int)$input->getOption('offset')); - $this->writeArrayInOutputFormat($input, $output, $this->formatGroups($groups)); + $this->writeArrayInOutputFormat($input, $output, $this->formatGroups($groups, (bool)$input->getOption('info'))); + return 0; } /** * @param IGroup[] $groups * @return array */ - private function formatGroups(array $groups) { + private function formatGroups(array $groups, bool $addInfo = false) { $keys = array_map(function (IGroup $group) { return $group->getGID(); }, $groups); - $values = array_map(function (IGroup $group) { - return array_keys($group->getUsers()); - }, $groups); + + if ($addInfo) { + $values = array_map(function (IGroup $group) { + return [ + 'backends' => $group->getBackendNames(), + 'users' => array_keys($group->getUsers()), + ]; + }, $groups); + } else { + $values = array_map(function (IGroup $group) { + return array_keys($group->getUsers()); + }, $groups); + } return array_combine($keys, $values); } } |