Test Failed
Push — main ( a94ea9...43938e )
by Jean-Christophe
02:16
created

AclManager::start()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 1
eloc 2
nc 1
nop 0
dl 0
loc 3
ccs 3
cts 3
cp 1
crap 1
rs 10
c 1
b 0
f 1
1
<?php
2
namespace Ubiquity\security\acl;
3
4
use Ubiquity\security\acl\models\AclList;
5
use Ubiquity\security\acl\models\Role;
6
use Ubiquity\security\acl\models\Resource;
7
use Ubiquity\security\acl\models\Permission;
8
use Ubiquity\security\acl\models\AclElement;
9
use Ubiquity\security\acl\persistence\AclProviderInterface;
10
use Ubiquity\security\acl\models\AbstractAclPart;
11
12
/**
13
 * Ubiquity\security\acl$AclManager
14
 * This class is part of Ubiquity
15
 *
16
 * @author jc
17
 * @version 1.0.0
18
 *
19
 */
20
class AclManager {
21
22
	/**
23
	 *
24
	 * @var AclList
25
	 */
26
	protected static $aclList;
27
28
	/**
29
	 * Create AclList with default roles and resources.
30 14
	 */
31 14
	public static function start(): void {
32 14
		self::$aclList = new AclList();
33 14
		self::$aclList->init();
34
	}
35
36
	/**
37
	 * Load acls, roles, resources and permissions from providers.
38
	 *
39
	 * @param AclProviderInterface[] $providers
40 7
	 */
41 7
	public static function initFromProviders(?array $providers = []): void {
42 7
		self::$aclList->setProviders($providers);
43 6
		if (\count($providers) > 0) {
44 6
			self::$aclList->loadAcls();
45 6
			self::$aclList->loadRoles();
46 6
			self::$aclList->loadResources();
47
			self::$aclList->loadPermissions();
48 7
		}
49
	}
50 5
51 5
	public static function addRole(string $name, ?array $parents = []) {
52 5
		self::$aclList->addRole(new Role($name, $parents));
53
	}
54 4
55 4
	public static function addResource(string $name, ?string $value = null) {
56 4
		self::$aclList->addResource(new Resource($name, $value));
57
	}
58 5
59 5
	public static function addPermission(string $name, int $level = 0) {
60 5
		self::$aclList->addPermission(new Permission($name, $level));
61
	}
62 3
63 3
	public static function setPermissionLevel(string $name, int $level) {
64 2
		self::$aclList->setPermissionLevel($name, $level);
65
	}
66 3
67 3
	public static function getRoles() {
68
		return self::$aclList->getRoles();
69
	}
70 3
71 3
	public static function getResources() {
72
		return self::$aclList->getResources();
73
	}
74 5
75 5
	public static function getPermissions() {
76
		return self::$aclList->getPermissions();
77
	}
78 3
79 3
	public static function getAcls() {
80
		return self::$aclList->getAcls();
81
	}
82
83
	/**
84
	 * Allow role to access to resource with the permission.
85
	 *
86
	 * @param string $role
87
	 * @param string $resource
88
	 * @param string $permission
89 6
	 */
90 6
	public static function allow(string $role, ?string $resource = '*', ?string $permission = 'ALL') {
91 6
		self::$aclList->allow($role, $resource ?? '*', $permission ?? 'ALL');
92
	}
93
94
	/**
95
	 * Check if access to resource is allowed for role with the permission.
96
	 *
97
	 * @param string $role
98
	 * @param string $resource
99
	 * @param string $permission
100
	 * @return bool
101 14
	 */
102 14
	public static function isAllowed(string $role, ?string $resource = '*', ?string $permission = 'ALL'): bool {
103
		return self::$aclList->isAllowed($role, $resource ?? '*', $permission ?? 'ALL');
104
	}
105 1
106 1
	public static function saveAll() {
107 1
		self::$aclList->saveAll();
108
	}
109
110
	public static function removeRole(string $role) {
111
		self::$aclList->removeRole($role);
112
	}
113
114
	public static function removePermission(string $permission) {
115
		self::$aclList->removePermission($permission);
116
	}
117
118
	public static function removeResource(string $resource) {
119
		self::$aclList->removeResource($resource);
120
	}
121
122
	public static function removeAcl(string $role, string $resource, string $permission = null) {
123
		self::$aclList->removeAcl($role, $resource, $permission);
124
	}
125
}
126
127