User::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 12
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 8
c 0
b 0
f 0
dl 0
loc 12
rs 10
cc 1
nc 1
nop 1
1
<?php
2
/**
3
 * @copyright Copyright (c) 2017 Vinzenz Rosenkranz <[email protected]>
4
 *
5
 * @author René Gieling <[email protected]>
6
 *
7
 * @license GNU AGPL version 3 or any later version
8
 *
9
 *  This program is free software: you can redistribute it and/or modify
10
 *  it under the terms of the GNU Affero General Public License as
11
 *  published by the Free Software Foundation, either version 3 of the
12
 *  License, or (at your option) any later version.
13
 *
14
 *  This program is distributed in the hope that it will be useful,
15
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
16
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
 *  GNU Affero General Public License for more details.
18
 *
19
 *  You should have received a copy of the GNU Affero General Public License
20
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
21
 *
22
 */
23
24
25
namespace OCA\Polls\Model;
26
27
use OCP\IUserManager;
28
use OCP\IUser;
29
30
class User extends UserGroupClass {
31
	public const TYPE = 'user';
32
	public const ICON = 'icon-user';
33
34
	/** @var IUser */
35
	private $user;
36
37
	public function __construct(
38
		string $id
39
	) {
40
		parent::__construct($id, self::TYPE);
41
		$this->icon = self::ICON;
42
		$this->isNoUser = false;
43
		$this->description = \OC::$server->getL10N('polls')->t('User');
44
45
		$this->user = self::getContainer()->query(IUserManager::class)->get($this->id);
46
		$this->displayName = $this->user->getDisplayName();
47
		$this->emailAddress = $this->user->getEmailAddress();
48
		$this->language = \OC::$server->getConfig()->getUserValue($this->id, 'core', 'lang');
49
	}
50
51
	public function getUserIsDisabled(): bool {
52
		return $this->user->isEnabled();
53
	}
54
55
	/**
56
	 * @return User[]
57
	 *
58
	 * @psalm-return list<User>
59
	 */
60
	public static function search(string $query = '', array $skip = []): array {
61
		$users = [];
62
63
		foreach (self::getContainer()->query(IUserManager::class)->search($query) as $user) {
64
			if (!in_array($user->getUID(), $skip)) {
65
				$users[] = new self($user->getUID());
66
			}
67
		}
68
		return $users;
69
	}
70
}
71