Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'core/Command/Group/ListCommand.php')
-rw-r--r--core/Command/Group/ListCommand.php37
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);
}
}