Test Failed
Push — main ( 573841...5a0b4f )
by Jean-Christophe
06:17
created

AclCacheProvider::__construct()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 4
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 2
eloc 3
c 1
b 0
f 1
nc 2
nop 0
dl 0
loc 4
rs 10
ccs 2
cts 2
cp 1
crap 2
1
<?php
2
namespace Ubiquity\security\acl\persistence;
3
4
use Ubiquity\cache\CacheManager;
5
use Ubiquity\security\acl\models\AbstractAclPart;
6
use Ubiquity\security\acl\models\AclElement;
7
use Ubiquity\security\acl\models\Role;
8
use Ubiquity\security\acl\models\Resource;
9
use Ubiquity\security\acl\models\Permission;
10
use Ubiquity\security\acl\cache\traits\AclCacheTrait;
11
12
/**
13
 * Ubiquity\security\acl\persistence$AclCacheProvider
14
 * This class is part of Ubiquity
15 3
 *
16 3
 * @author jc
17
 * @version 1.0.0
18
 *
19 3
 */
20 3
class AclCacheProvider extends AclArrayProvider {
21 3
	use AclCacheTrait;
22 3
23
	public function __construct() {
24 3
		$cacheKeys = $this->getCacheKeys();
25
		foreach ($cacheKeys as $key) {
26 3
			$this->createCache($key);
27
		}
28 3
	}
29 3
30 3
	protected function getCacheKeys(): array {
31 3
		return [
32
			$this->getRootKey('acls'),
33
			$this->getRootKey(Role::class),
34
			$this->getRootKey(Resource::class),
35 3
			$this->getRootKey(Permission::class)
36 3
		];
37
	}
38
39 3
	protected function loadAllPart($class): array {
40
		$this->parts[$class] = CacheManager::$cache->fetch($this->getRootKey($class));
41 3
		return parent::loadAllPart($class);
42 3
	}
43 3
44
	public function loadAllAcls(): array {
45
		$this->aclsArray = CacheManager::$cache->fetch($this->getRootKey('acls'));
46 3
		return parent::loadAllAcls();
47 3
	}
48 3
49
	public function isAutosave(): bool {
50
		return false;
51 1
	}
52 1
53
	public function saveAll(): void {
54
		CacheManager::$cache->store($this->getRootKey('acls'), $this->aclsArray);
55 1
		$classes = [
56 1
			Role::class,
57
			Resource::class,
58 1
			Permission::class
59
		];
60
		foreach ($classes as $class) {
61
			CacheManager::$cache->store($this->getRootKey($class), $this->parts[$class]);
62 1
		}
63 1
	}
64
}
65
66