Passed
Push — master ( 02306d...9f9b89 )
by Morris
14:24 queued 10s
created
core/Command/Integrity/SignCore.php 1 patch
Indentation   +57 added lines, -57 removed lines patch added patch discarded remove patch
@@ -37,69 +37,69 @@
 block discarded – undo
37 37
  * @package OC\Core\Command\Integrity
38 38
  */
39 39
 class SignCore extends Command {
40
-	/** @var Checker */
41
-	private $checker;
42
-	/** @var FileAccessHelper */
43
-	private $fileAccessHelper;
40
+    /** @var Checker */
41
+    private $checker;
42
+    /** @var FileAccessHelper */
43
+    private $fileAccessHelper;
44 44
 
45
-	/**
46
-	 * @param Checker $checker
47
-	 * @param FileAccessHelper $fileAccessHelper
48
-	 */
49
-	public function __construct(Checker $checker,
50
-								FileAccessHelper $fileAccessHelper) {
51
-		parent::__construct(null);
52
-		$this->checker = $checker;
53
-		$this->fileAccessHelper = $fileAccessHelper;
54
-	}
45
+    /**
46
+     * @param Checker $checker
47
+     * @param FileAccessHelper $fileAccessHelper
48
+     */
49
+    public function __construct(Checker $checker,
50
+                                FileAccessHelper $fileAccessHelper) {
51
+        parent::__construct(null);
52
+        $this->checker = $checker;
53
+        $this->fileAccessHelper = $fileAccessHelper;
54
+    }
55 55
 
56
-	protected function configure() {
57
-		$this
58
-			->setName('integrity:sign-core')
59
-			->setDescription('Sign core using a private key.')
60
-			->addOption('privateKey', null, InputOption::VALUE_REQUIRED, 'Path to private key to use for signing')
61
-			->addOption('certificate', null, InputOption::VALUE_REQUIRED, 'Path to certificate to use for signing')
62
-			->addOption('path', null, InputOption::VALUE_REQUIRED, 'Path of core to sign');
63
-	}
56
+    protected function configure() {
57
+        $this
58
+            ->setName('integrity:sign-core')
59
+            ->setDescription('Sign core using a private key.')
60
+            ->addOption('privateKey', null, InputOption::VALUE_REQUIRED, 'Path to private key to use for signing')
61
+            ->addOption('certificate', null, InputOption::VALUE_REQUIRED, 'Path to certificate to use for signing')
62
+            ->addOption('path', null, InputOption::VALUE_REQUIRED, 'Path of core to sign');
63
+    }
64 64
 
65
-	/**
66
-	 * {@inheritdoc }
67
-	 */
68
-	protected function execute(InputInterface $input, OutputInterface $output) {
69
-		$privateKeyPath = $input->getOption('privateKey');
70
-		$keyBundlePath = $input->getOption('certificate');
71
-		$path = $input->getOption('path');
72
-		if(is_null($privateKeyPath) || is_null($keyBundlePath) || is_null($path)) {
73
-			$output->writeln('--privateKey, --certificate and --path are required.');
74
-			return null;
75
-		}
65
+    /**
66
+     * {@inheritdoc }
67
+     */
68
+    protected function execute(InputInterface $input, OutputInterface $output) {
69
+        $privateKeyPath = $input->getOption('privateKey');
70
+        $keyBundlePath = $input->getOption('certificate');
71
+        $path = $input->getOption('path');
72
+        if(is_null($privateKeyPath) || is_null($keyBundlePath) || is_null($path)) {
73
+            $output->writeln('--privateKey, --certificate and --path are required.');
74
+            return null;
75
+        }
76 76
 
77
-		$privateKey = $this->fileAccessHelper->file_get_contents($privateKeyPath);
78
-		$keyBundle = $this->fileAccessHelper->file_get_contents($keyBundlePath);
77
+        $privateKey = $this->fileAccessHelper->file_get_contents($privateKeyPath);
78
+        $keyBundle = $this->fileAccessHelper->file_get_contents($keyBundlePath);
79 79
 
80
-		if($privateKey === false) {
81
-			$output->writeln(sprintf('Private key "%s" does not exists.', $privateKeyPath));
82
-			return null;
83
-		}
80
+        if($privateKey === false) {
81
+            $output->writeln(sprintf('Private key "%s" does not exists.', $privateKeyPath));
82
+            return null;
83
+        }
84 84
 
85
-		if($keyBundle === false) {
86
-			$output->writeln(sprintf('Certificate "%s" does not exists.', $keyBundlePath));
87
-			return null;
88
-		}
85
+        if($keyBundle === false) {
86
+            $output->writeln(sprintf('Certificate "%s" does not exists.', $keyBundlePath));
87
+            return null;
88
+        }
89 89
 
90
-		$rsa = new RSA();
91
-		$rsa->loadKey($privateKey);
92
-		$x509 = new X509();
93
-		$x509->loadX509($keyBundle);
94
-		$x509->setPrivateKey($rsa);
90
+        $rsa = new RSA();
91
+        $rsa->loadKey($privateKey);
92
+        $x509 = new X509();
93
+        $x509->loadX509($keyBundle);
94
+        $x509->setPrivateKey($rsa);
95 95
 
96
-		try {
97
-			$this->checker->writeCoreSignature($x509, $rsa, $path);
98
-			$output->writeln('Successfully signed "core"');
99
-		} catch (\Exception $e){
100
-			$output->writeln('Error: ' . $e->getMessage());
101
-			return 1;
102
-		}
103
-		return 0;
104
-	}
96
+        try {
97
+            $this->checker->writeCoreSignature($x509, $rsa, $path);
98
+            $output->writeln('Successfully signed "core"');
99
+        } catch (\Exception $e){
100
+            $output->writeln('Error: ' . $e->getMessage());
101
+            return 1;
102
+        }
103
+        return 0;
104
+    }
105 105
 }
Please login to merge, or discard this patch.
core/Command/Integrity/SignApp.php 1 patch
Indentation   +65 added lines, -65 removed lines patch added patch discarded remove patch
@@ -38,76 +38,76 @@
 block discarded – undo
38 38
  * @package OC\Core\Command\Integrity
39 39
  */
40 40
 class SignApp extends Command {
41
-	/** @var Checker */
42
-	private $checker;
43
-	/** @var FileAccessHelper */
44
-	private $fileAccessHelper;
45
-	/** @var IURLGenerator */
46
-	private $urlGenerator;
41
+    /** @var Checker */
42
+    private $checker;
43
+    /** @var FileAccessHelper */
44
+    private $fileAccessHelper;
45
+    /** @var IURLGenerator */
46
+    private $urlGenerator;
47 47
 
48
-	/**
49
-	 * @param Checker $checker
50
-	 * @param FileAccessHelper $fileAccessHelper
51
-	 * @param IURLGenerator $urlGenerator
52
-	 */
53
-	public function __construct(Checker $checker,
54
-								FileAccessHelper $fileAccessHelper,
55
-								IURLGenerator $urlGenerator) {
56
-		parent::__construct(null);
57
-		$this->checker = $checker;
58
-		$this->fileAccessHelper = $fileAccessHelper;
59
-		$this->urlGenerator = $urlGenerator;
60
-	}
48
+    /**
49
+     * @param Checker $checker
50
+     * @param FileAccessHelper $fileAccessHelper
51
+     * @param IURLGenerator $urlGenerator
52
+     */
53
+    public function __construct(Checker $checker,
54
+                                FileAccessHelper $fileAccessHelper,
55
+                                IURLGenerator $urlGenerator) {
56
+        parent::__construct(null);
57
+        $this->checker = $checker;
58
+        $this->fileAccessHelper = $fileAccessHelper;
59
+        $this->urlGenerator = $urlGenerator;
60
+    }
61 61
 
62
-	protected function configure() {
63
-		$this
64
-			->setName('integrity:sign-app')
65
-			->setDescription('Signs an app using a private key.')
66
-			->addOption('path', null, InputOption::VALUE_REQUIRED, 'Application to sign')
67
-			->addOption('privateKey', null, InputOption::VALUE_REQUIRED, 'Path to private key to use for signing')
68
-			->addOption('certificate', null, InputOption::VALUE_REQUIRED, 'Path to certificate to use for signing');
69
-	}
62
+    protected function configure() {
63
+        $this
64
+            ->setName('integrity:sign-app')
65
+            ->setDescription('Signs an app using a private key.')
66
+            ->addOption('path', null, InputOption::VALUE_REQUIRED, 'Application to sign')
67
+            ->addOption('privateKey', null, InputOption::VALUE_REQUIRED, 'Path to private key to use for signing')
68
+            ->addOption('certificate', null, InputOption::VALUE_REQUIRED, 'Path to certificate to use for signing');
69
+    }
70 70
 
71
-	/**
72
-	 * {@inheritdoc }
73
-	 */
74
-	protected function execute(InputInterface $input, OutputInterface $output) {
75
-		$path = $input->getOption('path');
76
-		$privateKeyPath = $input->getOption('privateKey');
77
-		$keyBundlePath = $input->getOption('certificate');
78
-		if(is_null($path) || is_null($privateKeyPath) || is_null($keyBundlePath)) {
79
-			$documentationUrl = $this->urlGenerator->linkToDocs('developer-code-integrity');
80
-			$output->writeln('This command requires the --path, --privateKey and --certificate.');
81
-			$output->writeln('Example: ./occ integrity:sign-app --path="/Users/lukasreschke/Programming/myapp/" --privateKey="/Users/lukasreschke/private/myapp.key" --certificate="/Users/lukasreschke/public/mycert.crt"');
82
-			$output->writeln('For more information please consult the documentation: '. $documentationUrl);
83
-			return null;
84
-		}
71
+    /**
72
+     * {@inheritdoc }
73
+     */
74
+    protected function execute(InputInterface $input, OutputInterface $output) {
75
+        $path = $input->getOption('path');
76
+        $privateKeyPath = $input->getOption('privateKey');
77
+        $keyBundlePath = $input->getOption('certificate');
78
+        if(is_null($path) || is_null($privateKeyPath) || is_null($keyBundlePath)) {
79
+            $documentationUrl = $this->urlGenerator->linkToDocs('developer-code-integrity');
80
+            $output->writeln('This command requires the --path, --privateKey and --certificate.');
81
+            $output->writeln('Example: ./occ integrity:sign-app --path="/Users/lukasreschke/Programming/myapp/" --privateKey="/Users/lukasreschke/private/myapp.key" --certificate="/Users/lukasreschke/public/mycert.crt"');
82
+            $output->writeln('For more information please consult the documentation: '. $documentationUrl);
83
+            return null;
84
+        }
85 85
 
86
-		$privateKey = $this->fileAccessHelper->file_get_contents($privateKeyPath);
87
-		$keyBundle = $this->fileAccessHelper->file_get_contents($keyBundlePath);
86
+        $privateKey = $this->fileAccessHelper->file_get_contents($privateKeyPath);
87
+        $keyBundle = $this->fileAccessHelper->file_get_contents($keyBundlePath);
88 88
 
89
-		if($privateKey === false) {
90
-			$output->writeln(sprintf('Private key "%s" does not exists.', $privateKeyPath));
91
-			return null;
92
-		}
89
+        if($privateKey === false) {
90
+            $output->writeln(sprintf('Private key "%s" does not exists.', $privateKeyPath));
91
+            return null;
92
+        }
93 93
 
94
-		if($keyBundle === false) {
95
-			$output->writeln(sprintf('Certificate "%s" does not exists.', $keyBundlePath));
96
-			return null;
97
-		}
94
+        if($keyBundle === false) {
95
+            $output->writeln(sprintf('Certificate "%s" does not exists.', $keyBundlePath));
96
+            return null;
97
+        }
98 98
 
99
-		$rsa = new RSA();
100
-		$rsa->loadKey($privateKey);
101
-		$x509 = new X509();
102
-		$x509->loadX509($keyBundle);
103
-		$x509->setPrivateKey($rsa);
104
-		try {
105
-			$this->checker->writeAppSignature($path, $x509, $rsa);
106
-			$output->writeln('Successfully signed "'.$path.'"');
107
-		} catch (\Exception $e){
108
-			$output->writeln('Error: ' . $e->getMessage());
109
-			return 1;
110
-		}
111
-		return 0;
112
-	}
99
+        $rsa = new RSA();
100
+        $rsa->loadKey($privateKey);
101
+        $x509 = new X509();
102
+        $x509->loadX509($keyBundle);
103
+        $x509->setPrivateKey($rsa);
104
+        try {
105
+            $this->checker->writeAppSignature($path, $x509, $rsa);
106
+            $output->writeln('Successfully signed "'.$path.'"');
107
+        } catch (\Exception $e){
108
+            $output->writeln('Error: ' . $e->getMessage());
109
+            return 1;
110
+        }
111
+        return 0;
112
+    }
113 113
 }
Please login to merge, or discard this patch.
core/Command/Integrity/CheckCore.php 1 patch
Indentation   +27 added lines, -27 removed lines patch added patch discarded remove patch
@@ -34,34 +34,34 @@
 block discarded – undo
34 34
  * @package OC\Core\Command\Integrity
35 35
  */
36 36
 class CheckCore extends Base {
37
-	/**
38
-	 * @var Checker
39
-	 */
40
-	private $checker;
37
+    /**
38
+     * @var Checker
39
+     */
40
+    private $checker;
41 41
 
42
-	public function __construct(Checker $checker) {
43
-		parent::__construct();
44
-		$this->checker = $checker;
45
-	}
42
+    public function __construct(Checker $checker) {
43
+        parent::__construct();
44
+        $this->checker = $checker;
45
+    }
46 46
 
47
-	/**
48
-	 * {@inheritdoc }
49
-	 */
50
-	protected function configure() {
51
-		parent::configure();
52
-		$this
53
-			->setName('integrity:check-core')
54
-			->setDescription('Check integrity of core code using a signature.');
55
-	}
47
+    /**
48
+     * {@inheritdoc }
49
+     */
50
+    protected function configure() {
51
+        parent::configure();
52
+        $this
53
+            ->setName('integrity:check-core')
54
+            ->setDescription('Check integrity of core code using a signature.');
55
+    }
56 56
 
57
-	/**
58
-	 * {@inheritdoc }
59
-	 */
60
-	protected function execute(InputInterface $input, OutputInterface $output) {
61
-		$result = $this->checker->verifyCoreSignature();
62
-		$this->writeArrayInOutputFormat($input, $output, $result);
63
-		if (count($result)>0){
64
-			return 1;
65
-		}
66
-	}
57
+    /**
58
+     * {@inheritdoc }
59
+     */
60
+    protected function execute(InputInterface $input, OutputInterface $output) {
61
+        $result = $this->checker->verifyCoreSignature();
62
+        $this->writeArrayInOutputFormat($input, $output, $result);
63
+        if (count($result)>0){
64
+            return 1;
65
+        }
66
+    }
67 67
 }
Please login to merge, or discard this patch.
core/Command/User/LastSeen.php 1 patch
Indentation   +36 added lines, -36 removed lines patch added patch discarded remove patch
@@ -32,44 +32,44 @@
 block discarded – undo
32 32
 use Symfony\Component\Console\Input\InputArgument;
33 33
 
34 34
 class LastSeen extends Command {
35
-	/** @var IUserManager */
36
-	protected $userManager;
35
+    /** @var IUserManager */
36
+    protected $userManager;
37 37
 
38
-	/**
39
-	 * @param IUserManager $userManager
40
-	 */
41
-	public function __construct(IUserManager $userManager) {
42
-		$this->userManager = $userManager;
43
-		parent::__construct();
44
-	}
38
+    /**
39
+     * @param IUserManager $userManager
40
+     */
41
+    public function __construct(IUserManager $userManager) {
42
+        $this->userManager = $userManager;
43
+        parent::__construct();
44
+    }
45 45
 
46
-	protected function configure() {
47
-		$this
48
-			->setName('user:lastseen')
49
-			->setDescription('shows when the user was logged in last time')
50
-			->addArgument(
51
-				'uid',
52
-				InputArgument::REQUIRED,
53
-				'the username'
54
-			);
55
-	}
46
+    protected function configure() {
47
+        $this
48
+            ->setName('user:lastseen')
49
+            ->setDescription('shows when the user was logged in last time')
50
+            ->addArgument(
51
+                'uid',
52
+                InputArgument::REQUIRED,
53
+                'the username'
54
+            );
55
+    }
56 56
 
57
-	protected function execute(InputInterface $input, OutputInterface $output) {
58
-		$user = $this->userManager->get($input->getArgument('uid'));
59
-		if(is_null($user)) {
60
-			$output->writeln('<error>User does not exist</error>');
61
-			return;
62
-		}
57
+    protected function execute(InputInterface $input, OutputInterface $output) {
58
+        $user = $this->userManager->get($input->getArgument('uid'));
59
+        if(is_null($user)) {
60
+            $output->writeln('<error>User does not exist</error>');
61
+            return;
62
+        }
63 63
 
64
-		$lastLogin = $user->getLastLogin();
65
-		if($lastLogin === 0) {
66
-			$output->writeln('User ' . $user->getUID() .
67
-				' has never logged in, yet.');
68
-		} else {
69
-			$date = new \DateTime();
70
-			$date->setTimestamp($lastLogin);
71
-			$output->writeln($user->getUID() .
72
-				'`s last login: ' . $date->format('d.m.Y H:i'));
73
-		}
74
-	}
64
+        $lastLogin = $user->getLastLogin();
65
+        if($lastLogin === 0) {
66
+            $output->writeln('User ' . $user->getUID() .
67
+                ' has never logged in, yet.');
68
+        } else {
69
+            $date = new \DateTime();
70
+            $date->setTimestamp($lastLogin);
71
+            $output->writeln($user->getUID() .
72
+                '`s last login: ' . $date->format('d.m.Y H:i'));
73
+        }
74
+    }
75 75
 }
Please login to merge, or discard this patch.
core/Command/User/ListCommand.php 1 patch
Indentation   +50 added lines, -50 removed lines patch added patch discarded remove patch
@@ -32,58 +32,58 @@
 block discarded – undo
32 32
 use Symfony\Component\Console\Output\OutputInterface;
33 33
 
34 34
 class ListCommand extends Base {
35
-	/** @var IUserManager */
36
-	protected $userManager;
35
+    /** @var IUserManager */
36
+    protected $userManager;
37 37
 
38
-	/**
39
-	 * @param IUserManager $userManager
40
-	 */
41
-	public function __construct(IUserManager $userManager) {
42
-		$this->userManager = $userManager;
43
-		parent::__construct();
44
-	}
38
+    /**
39
+     * @param IUserManager $userManager
40
+     */
41
+    public function __construct(IUserManager $userManager) {
42
+        $this->userManager = $userManager;
43
+        parent::__construct();
44
+    }
45 45
 
46
-	protected function configure() {
47
-		$this
48
-			->setName('user:list')
49
-			->setDescription('list configured users')
50
-			->addOption(
51
-				'limit',
52
-				'l',
53
-				InputOption::VALUE_OPTIONAL,
54
-				'Number of users to retrieve',
55
-				500
56
-			)->addOption(
57
-				'offset',
58
-				'o',
59
-				InputOption::VALUE_OPTIONAL,
60
-				'Offset for retrieving users',
61
-				0
62
-			)->addOption(
63
-				'output',
64
-				null,
65
-				InputOption::VALUE_OPTIONAL,
66
-				'Output format (plain, json or json_pretty, default is plain)',
67
-				$this->defaultOutputFormat
68
-			);
69
-	}
46
+    protected function configure() {
47
+        $this
48
+            ->setName('user:list')
49
+            ->setDescription('list configured users')
50
+            ->addOption(
51
+                'limit',
52
+                'l',
53
+                InputOption::VALUE_OPTIONAL,
54
+                'Number of users to retrieve',
55
+                500
56
+            )->addOption(
57
+                'offset',
58
+                'o',
59
+                InputOption::VALUE_OPTIONAL,
60
+                'Offset for retrieving users',
61
+                0
62
+            )->addOption(
63
+                'output',
64
+                null,
65
+                InputOption::VALUE_OPTIONAL,
66
+                'Output format (plain, json or json_pretty, default is plain)',
67
+                $this->defaultOutputFormat
68
+            );
69
+    }
70 70
 
71
-	protected function execute(InputInterface $input, OutputInterface $output) {
72
-		$users = $this->userManager->search('', (int)$input->getOption('limit'), (int)$input->getOption('offset'));
73
-		$this->writeArrayInOutputFormat($input, $output, $this->formatUsers($users));
74
-	}
71
+    protected function execute(InputInterface $input, OutputInterface $output) {
72
+        $users = $this->userManager->search('', (int)$input->getOption('limit'), (int)$input->getOption('offset'));
73
+        $this->writeArrayInOutputFormat($input, $output, $this->formatUsers($users));
74
+    }
75 75
 
76
-	/**
77
-	 * @param IUser[] $users
78
-	 * @return array
79
-	 */
80
-	private function formatUsers(array $users) {
81
-		$keys = array_map(function (IUser $user) {
82
-			return $user->getUID();
83
-		}, $users);
84
-		$values = array_map(function (IUser $user) {
85
-			return $user->getDisplayName();
86
-		}, $users);
87
-		return array_combine($keys, $values);
88
-	}
76
+    /**
77
+     * @param IUser[] $users
78
+     * @return array
79
+     */
80
+    private function formatUsers(array $users) {
81
+        $keys = array_map(function (IUser $user) {
82
+            return $user->getUID();
83
+        }, $users);
84
+        $values = array_map(function (IUser $user) {
85
+            return $user->getDisplayName();
86
+        }, $users);
87
+        return array_combine($keys, $values);
88
+    }
89 89
 }
Please login to merge, or discard this patch.
core/Command/User/Setting.php 1 patch
Indentation   +208 added lines, -208 removed lines patch added patch discarded remove patch
@@ -33,212 +33,212 @@
 block discarded – undo
33 33
 use Symfony\Component\Console\Input\InputArgument;
34 34
 
35 35
 class Setting extends Base {
36
-	/** @var IUserManager */
37
-	protected $userManager;
38
-
39
-	/** @var IConfig */
40
-	protected $config;
41
-
42
-	/** @var IDBConnection */
43
-	protected $connection;
44
-
45
-	/**
46
-	 * @param IUserManager $userManager
47
-	 * @param IConfig $config
48
-	 * @param IDBConnection $connection
49
-	 */
50
-	public function __construct(IUserManager $userManager, IConfig $config, IDBConnection $connection) {
51
-		parent::__construct();
52
-		$this->userManager = $userManager;
53
-		$this->config = $config;
54
-		$this->connection = $connection;
55
-	}
56
-
57
-	protected function configure() {
58
-		parent::configure();
59
-		$this
60
-			->setName('user:setting')
61
-			->setDescription('Read and modify user settings')
62
-			->addArgument(
63
-				'uid',
64
-				InputArgument::REQUIRED,
65
-				'User ID used to login'
66
-			)
67
-			->addArgument(
68
-				'app',
69
-				InputArgument::OPTIONAL,
70
-				'Restrict the settings to a given app',
71
-				''
72
-			)
73
-			->addArgument(
74
-				'key',
75
-				InputArgument::OPTIONAL,
76
-				'Setting key to set, get or delete',
77
-				''
78
-			)
79
-			->addOption(
80
-				'ignore-missing-user',
81
-				null,
82
-				InputOption::VALUE_NONE,
83
-				'Use this option to ignore errors when the user does not exist'
84
-			)
85
-
86
-			// Get
87
-			->addOption(
88
-				'default-value',
89
-				null,
90
-				InputOption::VALUE_REQUIRED,
91
-				'(Only applicable on get) If no default value is set and the config does not exist, the command will exit with 1'
92
-			)
93
-
94
-			// Set
95
-			->addArgument(
96
-				'value',
97
-				InputArgument::OPTIONAL,
98
-				'The new value of the setting',
99
-				null
100
-			)
101
-			->addOption(
102
-				'update-only',
103
-				null,
104
-				InputOption::VALUE_NONE,
105
-				'Only updates the value, if it is not set before, it is not being added'
106
-			)
107
-
108
-			// Delete
109
-			->addOption(
110
-				'delete',
111
-				null,
112
-				InputOption::VALUE_NONE,
113
-				'Specify this option to delete the config'
114
-			)
115
-			->addOption(
116
-				'error-if-not-exists',
117
-				null,
118
-				InputOption::VALUE_NONE,
119
-				'Checks whether the setting exists before deleting it'
120
-			)
121
-		;
122
-	}
123
-
124
-	protected function checkInput(InputInterface $input) {
125
-		$uid = $input->getArgument('uid');
126
-		if (!$input->getOption('ignore-missing-user') && !$this->userManager->userExists($uid)) {
127
-			throw new \InvalidArgumentException('The user "' . $uid . '" does not exists.');
128
-		}
129
-
130
-		if ($input->getArgument('key') === '' && $input->hasParameterOption('--default-value')) {
131
-			throw new \InvalidArgumentException('The "default-value" option can only be used when specifying a key.');
132
-		}
133
-
134
-		if ($input->getArgument('key') === '' && $input->getArgument('value') !== null) {
135
-			throw new \InvalidArgumentException('The value argument can only be used when specifying a key.');
136
-		}
137
-		if ($input->getArgument('value') !== null && $input->hasParameterOption('--default-value')) {
138
-			throw new \InvalidArgumentException('The value argument can not be used together with "default-value".');
139
-		}
140
-		if ($input->getOption('update-only') && $input->getArgument('value') === null) {
141
-			throw new \InvalidArgumentException('The "update-only" option can only be used together with "value".');
142
-		}
143
-
144
-		if ($input->getArgument('key') === '' && $input->getOption('delete')) {
145
-			throw new \InvalidArgumentException('The "delete" option can only be used when specifying a key.');
146
-		}
147
-		if ($input->getOption('delete') && $input->hasParameterOption('--default-value')) {
148
-			throw new \InvalidArgumentException('The "delete" option can not be used together with "default-value".');
149
-		}
150
-		if ($input->getOption('delete') && $input->getArgument('value') !== null) {
151
-			throw new \InvalidArgumentException('The "delete" option can not be used together with "value".');
152
-		}
153
-		if ($input->getOption('error-if-not-exists') && !$input->getOption('delete')) {
154
-			throw new \InvalidArgumentException('The "error-if-not-exists" option can only be used together with "delete".');
155
-		}
156
-	}
157
-
158
-	protected function execute(InputInterface $input, OutputInterface $output) {
159
-		try {
160
-			$this->checkInput($input);
161
-		} catch (\InvalidArgumentException $e) {
162
-			$output->writeln('<error>' . $e->getMessage() . '</error>');
163
-			return 1;
164
-		}
165
-
166
-		$uid = $input->getArgument('uid');
167
-		$app = $input->getArgument('app');
168
-		$key = $input->getArgument('key');
169
-
170
-		if ($key !== '') {
171
-			$value = $this->config->getUserValue($uid, $app, $key, null);
172
-			if ($input->getArgument('value') !== null) {
173
-				if ($input->hasParameterOption('--update-only') && $value === null) {
174
-					$output->writeln('<error>The setting does not exist for user "' . $uid . '".</error>');
175
-					return 1;
176
-				}
177
-
178
-				if ($app === 'settings' && $key === 'email') {
179
-					$user = $this->userManager->get($uid);
180
-					if ($user instanceof IUser) {
181
-						$user->setEMailAddress($input->getArgument('value'));
182
-						return 0;
183
-					}
184
-				}
185
-
186
-				$this->config->setUserValue($uid, $app, $key, $input->getArgument('value'));
187
-				return 0;
188
-
189
-			} else if ($input->hasParameterOption('--delete')) {
190
-				if ($input->hasParameterOption('--error-if-not-exists') && $value === null) {
191
-					$output->writeln('<error>The setting does not exist for user "' . $uid . '".</error>');
192
-					return 1;
193
-				}
194
-
195
-				if ($app === 'settings' && $key === 'email') {
196
-					$user = $this->userManager->get($uid);
197
-					if ($user instanceof IUser) {
198
-						$user->setEMailAddress('');
199
-						return 0;
200
-					}
201
-				}
202
-
203
-				$this->config->deleteUserValue($uid, $app, $key);
204
-				return 0;
205
-
206
-			} else if ($value !== null) {
207
-				$output->writeln($value);
208
-				return 0;
209
-			} else {
210
-				if ($input->hasParameterOption('--default-value')) {
211
-					$output->writeln($input->getOption('default-value'));
212
-					return 0;
213
-				} else {
214
-					$output->writeln('<error>The setting does not exist for user "' . $uid . '".</error>');
215
-					return 1;
216
-				}
217
-			}
218
-		} else {
219
-			$settings = $this->getUserSettings($uid, $app);
220
-			$this->writeArrayInOutputFormat($input, $output, $settings);
221
-			return 0;
222
-		}
223
-	}
224
-
225
-	protected function getUserSettings($uid, $app) {
226
-		$query = $this->connection->getQueryBuilder();
227
-		$query->select('*')
228
-			->from('preferences')
229
-			->where($query->expr()->eq('userid', $query->createNamedParameter($uid)));
230
-
231
-		if ($app !== '') {
232
-			$query->andWhere($query->expr()->eq('appid', $query->createNamedParameter($app)));
233
-		}
234
-
235
-		$result = $query->execute();
236
-		$settings = [];
237
-		while ($row = $result->fetch()) {
238
-			$settings[$row['appid']][$row['configkey']] = $row['configvalue'];
239
-		}
240
-		$result->closeCursor();
241
-
242
-		return $settings;
243
-	}
36
+    /** @var IUserManager */
37
+    protected $userManager;
38
+
39
+    /** @var IConfig */
40
+    protected $config;
41
+
42
+    /** @var IDBConnection */
43
+    protected $connection;
44
+
45
+    /**
46
+     * @param IUserManager $userManager
47
+     * @param IConfig $config
48
+     * @param IDBConnection $connection
49
+     */
50
+    public function __construct(IUserManager $userManager, IConfig $config, IDBConnection $connection) {
51
+        parent::__construct();
52
+        $this->userManager = $userManager;
53
+        $this->config = $config;
54
+        $this->connection = $connection;
55
+    }
56
+
57
+    protected function configure() {
58
+        parent::configure();
59
+        $this
60
+            ->setName('user:setting')
61
+            ->setDescription('Read and modify user settings')
62
+            ->addArgument(
63
+                'uid',
64
+                InputArgument::REQUIRED,
65
+                'User ID used to login'
66
+            )
67
+            ->addArgument(
68
+                'app',
69
+                InputArgument::OPTIONAL,
70
+                'Restrict the settings to a given app',
71
+                ''
72
+            )
73
+            ->addArgument(
74
+                'key',
75
+                InputArgument::OPTIONAL,
76
+                'Setting key to set, get or delete',
77
+                ''
78
+            )
79
+            ->addOption(
80
+                'ignore-missing-user',
81
+                null,
82
+                InputOption::VALUE_NONE,
83
+                'Use this option to ignore errors when the user does not exist'
84
+            )
85
+
86
+            // Get
87
+            ->addOption(
88
+                'default-value',
89
+                null,
90
+                InputOption::VALUE_REQUIRED,
91
+                '(Only applicable on get) If no default value is set and the config does not exist, the command will exit with 1'
92
+            )
93
+
94
+            // Set
95
+            ->addArgument(
96
+                'value',
97
+                InputArgument::OPTIONAL,
98
+                'The new value of the setting',
99
+                null
100
+            )
101
+            ->addOption(
102
+                'update-only',
103
+                null,
104
+                InputOption::VALUE_NONE,
105
+                'Only updates the value, if it is not set before, it is not being added'
106
+            )
107
+
108
+            // Delete
109
+            ->addOption(
110
+                'delete',
111
+                null,
112
+                InputOption::VALUE_NONE,
113
+                'Specify this option to delete the config'
114
+            )
115
+            ->addOption(
116
+                'error-if-not-exists',
117
+                null,
118
+                InputOption::VALUE_NONE,
119
+                'Checks whether the setting exists before deleting it'
120
+            )
121
+        ;
122
+    }
123
+
124
+    protected function checkInput(InputInterface $input) {
125
+        $uid = $input->getArgument('uid');
126
+        if (!$input->getOption('ignore-missing-user') && !$this->userManager->userExists($uid)) {
127
+            throw new \InvalidArgumentException('The user "' . $uid . '" does not exists.');
128
+        }
129
+
130
+        if ($input->getArgument('key') === '' && $input->hasParameterOption('--default-value')) {
131
+            throw new \InvalidArgumentException('The "default-value" option can only be used when specifying a key.');
132
+        }
133
+
134
+        if ($input->getArgument('key') === '' && $input->getArgument('value') !== null) {
135
+            throw new \InvalidArgumentException('The value argument can only be used when specifying a key.');
136
+        }
137
+        if ($input->getArgument('value') !== null && $input->hasParameterOption('--default-value')) {
138
+            throw new \InvalidArgumentException('The value argument can not be used together with "default-value".');
139
+        }
140
+        if ($input->getOption('update-only') && $input->getArgument('value') === null) {
141
+            throw new \InvalidArgumentException('The "update-only" option can only be used together with "value".');
142
+        }
143
+
144
+        if ($input->getArgument('key') === '' && $input->getOption('delete')) {
145
+            throw new \InvalidArgumentException('The "delete" option can only be used when specifying a key.');
146
+        }
147
+        if ($input->getOption('delete') && $input->hasParameterOption('--default-value')) {
148
+            throw new \InvalidArgumentException('The "delete" option can not be used together with "default-value".');
149
+        }
150
+        if ($input->getOption('delete') && $input->getArgument('value') !== null) {
151
+            throw new \InvalidArgumentException('The "delete" option can not be used together with "value".');
152
+        }
153
+        if ($input->getOption('error-if-not-exists') && !$input->getOption('delete')) {
154
+            throw new \InvalidArgumentException('The "error-if-not-exists" option can only be used together with "delete".');
155
+        }
156
+    }
157
+
158
+    protected function execute(InputInterface $input, OutputInterface $output) {
159
+        try {
160
+            $this->checkInput($input);
161
+        } catch (\InvalidArgumentException $e) {
162
+            $output->writeln('<error>' . $e->getMessage() . '</error>');
163
+            return 1;
164
+        }
165
+
166
+        $uid = $input->getArgument('uid');
167
+        $app = $input->getArgument('app');
168
+        $key = $input->getArgument('key');
169
+
170
+        if ($key !== '') {
171
+            $value = $this->config->getUserValue($uid, $app, $key, null);
172
+            if ($input->getArgument('value') !== null) {
173
+                if ($input->hasParameterOption('--update-only') && $value === null) {
174
+                    $output->writeln('<error>The setting does not exist for user "' . $uid . '".</error>');
175
+                    return 1;
176
+                }
177
+
178
+                if ($app === 'settings' && $key === 'email') {
179
+                    $user = $this->userManager->get($uid);
180
+                    if ($user instanceof IUser) {
181
+                        $user->setEMailAddress($input->getArgument('value'));
182
+                        return 0;
183
+                    }
184
+                }
185
+
186
+                $this->config->setUserValue($uid, $app, $key, $input->getArgument('value'));
187
+                return 0;
188
+
189
+            } else if ($input->hasParameterOption('--delete')) {
190
+                if ($input->hasParameterOption('--error-if-not-exists') && $value === null) {
191
+                    $output->writeln('<error>The setting does not exist for user "' . $uid . '".</error>');
192
+                    return 1;
193
+                }
194
+
195
+                if ($app === 'settings' && $key === 'email') {
196
+                    $user = $this->userManager->get($uid);
197
+                    if ($user instanceof IUser) {
198
+                        $user->setEMailAddress('');
199
+                        return 0;
200
+                    }
201
+                }
202
+
203
+                $this->config->deleteUserValue($uid, $app, $key);
204
+                return 0;
205
+
206
+            } else if ($value !== null) {
207
+                $output->writeln($value);
208
+                return 0;
209
+            } else {
210
+                if ($input->hasParameterOption('--default-value')) {
211
+                    $output->writeln($input->getOption('default-value'));
212
+                    return 0;
213
+                } else {
214
+                    $output->writeln('<error>The setting does not exist for user "' . $uid . '".</error>');
215
+                    return 1;
216
+                }
217
+            }
218
+        } else {
219
+            $settings = $this->getUserSettings($uid, $app);
220
+            $this->writeArrayInOutputFormat($input, $output, $settings);
221
+            return 0;
222
+        }
223
+    }
224
+
225
+    protected function getUserSettings($uid, $app) {
226
+        $query = $this->connection->getQueryBuilder();
227
+        $query->select('*')
228
+            ->from('preferences')
229
+            ->where($query->expr()->eq('userid', $query->createNamedParameter($uid)));
230
+
231
+        if ($app !== '') {
232
+            $query->andWhere($query->expr()->eq('appid', $query->createNamedParameter($app)));
233
+        }
234
+
235
+        $result = $query->execute();
236
+        $settings = [];
237
+        while ($row = $result->fetch()) {
238
+            $settings[$row['appid']][$row['configkey']] = $row['configvalue'];
239
+        }
240
+        $result->closeCursor();
241
+
242
+        return $settings;
243
+    }
244 244
 }
Please login to merge, or discard this patch.
core/Command/User/Enable.php 1 patch
Indentation   +28 added lines, -28 removed lines patch added patch discarded remove patch
@@ -30,36 +30,36 @@
 block discarded – undo
30 30
 use Symfony\Component\Console\Input\InputArgument;
31 31
 
32 32
 class Enable extends Command {
33
-	/** @var IUserManager */
34
-	protected $userManager;
33
+    /** @var IUserManager */
34
+    protected $userManager;
35 35
 
36
-	/**
37
-	 * @param IUserManager $userManager
38
-	 */
39
-	public function __construct(IUserManager $userManager) {
40
-		$this->userManager = $userManager;
41
-		parent::__construct();
42
-	}
36
+    /**
37
+     * @param IUserManager $userManager
38
+     */
39
+    public function __construct(IUserManager $userManager) {
40
+        $this->userManager = $userManager;
41
+        parent::__construct();
42
+    }
43 43
 
44
-	protected function configure() {
45
-		$this
46
-			->setName('user:enable')
47
-			->setDescription('enables the specified user')
48
-			->addArgument(
49
-				'uid',
50
-				InputArgument::REQUIRED,
51
-				'the username'
52
-			);
53
-	}
44
+    protected function configure() {
45
+        $this
46
+            ->setName('user:enable')
47
+            ->setDescription('enables the specified user')
48
+            ->addArgument(
49
+                'uid',
50
+                InputArgument::REQUIRED,
51
+                'the username'
52
+            );
53
+    }
54 54
 
55
-	protected function execute(InputInterface $input, OutputInterface $output) {
56
-		$user = $this->userManager->get($input->getArgument('uid'));
57
-		if (is_null($user)) {
58
-			$output->writeln('<error>User does not exist</error>');
59
-			return;
60
-		}
55
+    protected function execute(InputInterface $input, OutputInterface $output) {
56
+        $user = $this->userManager->get($input->getArgument('uid'));
57
+        if (is_null($user)) {
58
+            $output->writeln('<error>User does not exist</error>');
59
+            return;
60
+        }
61 61
 
62
-		$user->setEnabled(true);
63
-		$output->writeln('<info>The specified user is enabled</info>');
64
-	}
62
+        $user->setEnabled(true);
63
+        $output->writeln('<info>The specified user is enabled</info>');
64
+    }
65 65
 }
Please login to merge, or discard this patch.
core/Command/User/Disable.php 1 patch
Indentation   +28 added lines, -28 removed lines patch added patch discarded remove patch
@@ -30,36 +30,36 @@
 block discarded – undo
30 30
 use Symfony\Component\Console\Input\InputArgument;
31 31
 
32 32
 class Disable extends Command {
33
-	/** @var IUserManager */
34
-	protected $userManager;
33
+    /** @var IUserManager */
34
+    protected $userManager;
35 35
 
36
-	/**
37
-	 * @param IUserManager $userManager
38
-	 */
39
-	public function __construct(IUserManager $userManager) {
40
-		$this->userManager = $userManager;
41
-		parent::__construct();
42
-	}
36
+    /**
37
+     * @param IUserManager $userManager
38
+     */
39
+    public function __construct(IUserManager $userManager) {
40
+        $this->userManager = $userManager;
41
+        parent::__construct();
42
+    }
43 43
 
44
-	protected function configure() {
45
-		$this
46
-			->setName('user:disable')
47
-			->setDescription('disables the specified user')
48
-			->addArgument(
49
-				'uid',
50
-				InputArgument::REQUIRED,
51
-				'the username'
52
-			);
53
-	}
44
+    protected function configure() {
45
+        $this
46
+            ->setName('user:disable')
47
+            ->setDescription('disables the specified user')
48
+            ->addArgument(
49
+                'uid',
50
+                InputArgument::REQUIRED,
51
+                'the username'
52
+            );
53
+    }
54 54
 
55
-	protected function execute(InputInterface $input, OutputInterface $output) {
56
-		$user = $this->userManager->get($input->getArgument('uid'));
57
-		if (is_null($user)) {
58
-			$output->writeln('<error>User does not exist</error>');
59
-			return;
60
-		}
55
+    protected function execute(InputInterface $input, OutputInterface $output) {
56
+        $user = $this->userManager->get($input->getArgument('uid'));
57
+        if (is_null($user)) {
58
+            $output->writeln('<error>User does not exist</error>');
59
+            return;
60
+        }
61 61
 
62
-		$user->setEnabled(false);
63
-		$output->writeln('<info>The specified user is disabled</info>');
64
-	}
62
+        $user->setEnabled(false);
63
+        $output->writeln('<info>The specified user is disabled</info>');
64
+    }
65 65
 }
Please login to merge, or discard this patch.
core/Command/User/Add.php 1 patch
Indentation   +121 added lines, -121 removed lines patch added patch discarded remove patch
@@ -36,125 +36,125 @@
 block discarded – undo
36 36
 use Symfony\Component\Console\Question\Question;
37 37
 
38 38
 class Add extends Command {
39
-	/** @var \OCP\IUserManager */
40
-	protected $userManager;
41
-
42
-	/** @var \OCP\IGroupManager */
43
-	protected $groupManager;
44
-
45
-	/**
46
-	 * @param IUserManager $userManager
47
-	 * @param IGroupManager $groupManager
48
-	 */
49
-	public function __construct(IUserManager $userManager, IGroupManager $groupManager) {
50
-		parent::__construct();
51
-		$this->userManager = $userManager;
52
-		$this->groupManager = $groupManager;
53
-	}
54
-
55
-	protected function configure() {
56
-		$this
57
-			->setName('user:add')
58
-			->setDescription('adds a user')
59
-			->addArgument(
60
-				'uid',
61
-				InputArgument::REQUIRED,
62
-				'User ID used to login (must only contain a-z, A-Z, 0-9, -, _ and @)'
63
-			)
64
-			->addOption(
65
-				'password-from-env',
66
-				null,
67
-				InputOption::VALUE_NONE,
68
-				'read password from environment variable OC_PASS'
69
-			)
70
-			->addOption(
71
-				'display-name',
72
-				null,
73
-				InputOption::VALUE_OPTIONAL,
74
-				'User name used in the web UI (can contain any characters)'
75
-			)
76
-			->addOption(
77
-				'group',
78
-				'g',
79
-				InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY,
80
-				'groups the user should be added to (The group will be created if it does not exist)'
81
-			);
82
-	}
83
-
84
-	protected function execute(InputInterface $input, OutputInterface $output) {
85
-		$uid = $input->getArgument('uid');
86
-		if ($this->userManager->userExists($uid)) {
87
-			$output->writeln('<error>The user "' . $uid . '" already exists.</error>');
88
-			return 1;
89
-		}
90
-
91
-		if ($input->getOption('password-from-env')) {
92
-			$password = getenv('OC_PASS');
93
-			if (!$password) {
94
-				$output->writeln('<error>--password-from-env given, but OC_PASS is empty!</error>');
95
-				return 1;
96
-			}
97
-		} elseif ($input->isInteractive()) {
98
-			/** @var QuestionHelper $helper */
99
-			$helper = $this->getHelper('question');
100
-
101
-			$question = new Question('Enter password: ');
102
-			$question->setHidden(true);
103
-			$password = $helper->ask($input, $output, $question);
104
-
105
-			$question = new Question('Confirm password: ');
106
-			$question->setHidden(true);
107
-			$confirm = $helper->ask($input, $output,$question);
108
-
109
-			if ($password !== $confirm) {
110
-				$output->writeln("<error>Passwords did not match!</error>");
111
-				return 1;
112
-			}
113
-		} else {
114
-			$output->writeln("<error>Interactive input or --password-from-env is needed for entering a password!</error>");
115
-			return 1;
116
-		}
117
-
118
-		try {
119
-			$user = $this->userManager->createUser(
120
-				$input->getArgument('uid'),
121
-				$password
122
-			);
123
-		} catch (\Exception $e) {
124
-			$output->writeln('<error>' . $e->getMessage() . '</error>');
125
-			return 1;
126
-		}
127
-
128
-
129
-		if ($user instanceof IUser) {
130
-			$output->writeln('<info>The user "' . $user->getUID() . '" was created successfully</info>');
131
-		} else {
132
-			$output->writeln('<error>An error occurred while creating the user</error>');
133
-			return 1;
134
-		}
135
-
136
-		if ($input->getOption('display-name')) {
137
-			$user->setDisplayName($input->getOption('display-name'));
138
-			$output->writeln('Display name set to "' . $user->getDisplayName() . '"');
139
-		}
140
-
141
-		$groups = $input->getOption('group');
142
-
143
-		if (!empty($groups)) {
144
-			// Make sure we init the Filesystem for the user, in case we need to
145
-			// init some group shares.
146
-			Filesystem::init($user->getUID(), '');
147
-		}
148
-
149
-		foreach ($groups as $groupName) {
150
-			$group = $this->groupManager->get($groupName);
151
-			if (!$group) {
152
-				$this->groupManager->createGroup($groupName);
153
-				$group = $this->groupManager->get($groupName);
154
-				$output->writeln('Created group "' . $group->getGID() . '"');
155
-			}
156
-			$group->addUser($user);
157
-			$output->writeln('User "' . $user->getUID() . '" added to group "' . $group->getGID() . '"');
158
-		}
159
-	}
39
+    /** @var \OCP\IUserManager */
40
+    protected $userManager;
41
+
42
+    /** @var \OCP\IGroupManager */
43
+    protected $groupManager;
44
+
45
+    /**
46
+     * @param IUserManager $userManager
47
+     * @param IGroupManager $groupManager
48
+     */
49
+    public function __construct(IUserManager $userManager, IGroupManager $groupManager) {
50
+        parent::__construct();
51
+        $this->userManager = $userManager;
52
+        $this->groupManager = $groupManager;
53
+    }
54
+
55
+    protected function configure() {
56
+        $this
57
+            ->setName('user:add')
58
+            ->setDescription('adds a user')
59
+            ->addArgument(
60
+                'uid',
61
+                InputArgument::REQUIRED,
62
+                'User ID used to login (must only contain a-z, A-Z, 0-9, -, _ and @)'
63
+            )
64
+            ->addOption(
65
+                'password-from-env',
66
+                null,
67
+                InputOption::VALUE_NONE,
68
+                'read password from environment variable OC_PASS'
69
+            )
70
+            ->addOption(
71
+                'display-name',
72
+                null,
73
+                InputOption::VALUE_OPTIONAL,
74
+                'User name used in the web UI (can contain any characters)'
75
+            )
76
+            ->addOption(
77
+                'group',
78
+                'g',
79
+                InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY,
80
+                'groups the user should be added to (The group will be created if it does not exist)'
81
+            );
82
+    }
83
+
84
+    protected function execute(InputInterface $input, OutputInterface $output) {
85
+        $uid = $input->getArgument('uid');
86
+        if ($this->userManager->userExists($uid)) {
87
+            $output->writeln('<error>The user "' . $uid . '" already exists.</error>');
88
+            return 1;
89
+        }
90
+
91
+        if ($input->getOption('password-from-env')) {
92
+            $password = getenv('OC_PASS');
93
+            if (!$password) {
94
+                $output->writeln('<error>--password-from-env given, but OC_PASS is empty!</error>');
95
+                return 1;
96
+            }
97
+        } elseif ($input->isInteractive()) {
98
+            /** @var QuestionHelper $helper */
99
+            $helper = $this->getHelper('question');
100
+
101
+            $question = new Question('Enter password: ');
102
+            $question->setHidden(true);
103
+            $password = $helper->ask($input, $output, $question);
104
+
105
+            $question = new Question('Confirm password: ');
106
+            $question->setHidden(true);
107
+            $confirm = $helper->ask($input, $output,$question);
108
+
109
+            if ($password !== $confirm) {
110
+                $output->writeln("<error>Passwords did not match!</error>");
111
+                return 1;
112
+            }
113
+        } else {
114
+            $output->writeln("<error>Interactive input or --password-from-env is needed for entering a password!</error>");
115
+            return 1;
116
+        }
117
+
118
+        try {
119
+            $user = $this->userManager->createUser(
120
+                $input->getArgument('uid'),
121
+                $password
122
+            );
123
+        } catch (\Exception $e) {
124
+            $output->writeln('<error>' . $e->getMessage() . '</error>');
125
+            return 1;
126
+        }
127
+
128
+
129
+        if ($user instanceof IUser) {
130
+            $output->writeln('<info>The user "' . $user->getUID() . '" was created successfully</info>');
131
+        } else {
132
+            $output->writeln('<error>An error occurred while creating the user</error>');
133
+            return 1;
134
+        }
135
+
136
+        if ($input->getOption('display-name')) {
137
+            $user->setDisplayName($input->getOption('display-name'));
138
+            $output->writeln('Display name set to "' . $user->getDisplayName() . '"');
139
+        }
140
+
141
+        $groups = $input->getOption('group');
142
+
143
+        if (!empty($groups)) {
144
+            // Make sure we init the Filesystem for the user, in case we need to
145
+            // init some group shares.
146
+            Filesystem::init($user->getUID(), '');
147
+        }
148
+
149
+        foreach ($groups as $groupName) {
150
+            $group = $this->groupManager->get($groupName);
151
+            if (!$group) {
152
+                $this->groupManager->createGroup($groupName);
153
+                $group = $this->groupManager->get($groupName);
154
+                $output->writeln('Created group "' . $group->getGID() . '"');
155
+            }
156
+            $group->addUser($user);
157
+            $output->writeln('User "' . $user->getUID() . '" added to group "' . $group->getGID() . '"');
158
+        }
159
+    }
160 160
 }
Please login to merge, or discard this patch.