permissions::admin_users_permissions_put()   A
last analyzed

Complexity

Conditions 4
Paths 3

Size

Total Lines 8
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 20

Importance

Changes 0
Metric Value
cc 4
eloc 6
nc 3
nop 1
dl 0
loc 8
rs 9.2
c 0
b 0
f 0
ccs 0
cts 7
cp 0
crap 20
1
<?php
2
/**
3
 * @package    CleverStyle Framework
4
 * @subpackage System module
5
 * @category   modules
6
 * @author     Nazar Mokrynskyi <[email protected]>
7
 * @license    0BSD
8
 */
9
namespace cs\modules\System\api\Controller\admin\users;
10
use
11
	cs\ExitException,
12
	cs\User;
13
14
trait permissions {
15
	/**
16
	 * Get user's permissions
17
	 *
18
	 * @param \cs\Request $Request
19
	 *
20
	 * @return array
21
	 *
22
	 * @throws ExitException
23
	 */
24
	public static function admin_users_permissions_get ($Request) {
25
		if (!isset($Request->route_ids[0])) {
26
			throw new ExitException(400);
27
		}
28
		return User::instance()->get_permissions($Request->route_ids[0]) ?: [];
29
	}
30
	/**
31
	 * Update user's permissions
32
	 *
33
	 * @param \cs\Request $Request
34
	 *
35
	 * @throws ExitException
36
	 */
37
	public static function admin_users_permissions_put ($Request) {
38
		$user_id     = $Request->route_ids(0);
39
		$permissions = $Request->data('permissions');
0 ignored issues
show
Bug introduced by
'permissions' of type string is incompatible with the type array<mixed,string[]>|string[] expected by parameter $name of cs\Request::data(). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

39
		$permissions = $Request->data(/** @scrutinizer ignore-type */ 'permissions');
Loading history...
40
		if (!$user_id || !$permissions) {
41
			throw new ExitException(400);
42
		}
43
		if (!User::instance()->set_permissions($permissions, $user_id)) {
44
			throw new ExitException(500);
45
		}
46
	}
47
}
48