Test Failed
Push — main ( da4737...4a2fda )
by Jean-Christophe
02:01
created

AclElement::getId_()   A

Complexity

Conditions 4
Paths 8

Size

Total Lines 12
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 20

Importance

Changes 0
Metric Value
cc 4
eloc 8
nc 8
nop 0
dl 0
loc 12
ccs 0
cts 0
cp 0
crap 20
rs 10
c 0
b 0
f 0
1
<?php
2
namespace Ubiquity\security\acl\models;
3
4
class AclElement {
5
6
	/**
7
	 *
8
	 * @id
9
	 * @column("name"=>"id","nullable"=>false,"dbType"=>"int(11)")
10
	 */
11
	protected $id;
12
13
	/**
14
	 *
15
	 * @var Role
16
	 * @manyToOne
17
	 * @joinColumn("className"=>"Ubiquity\\security\\acl\\models\\Role","name"=>"idRole","nullable"=>false)
18
	 */
19
	protected $role;
20
21
	/**
22
	 *
23
	 * @var Permission
24
	 * @manyToOne
25
	 * @joinColumn("className"=>"Ubiquity\\security\\acl\\models\\Permission","name"=>"idPermission","nullable"=>false)
26
	 */
27
	protected $permission;
28
29
	/**
30
	 *
31
	 * @var \Ubiquity\security\acl\models\Resource
32
	 * @manyToOne
33
	 * @joinColumn("className"=>"Ubiquity\\security\\acl\\models\\Resource","name"=>"idResource","nullable"=>false)
34
	 */
35
	protected $resource;
36
37
	/**
38
	 *
39
	 * @return Role
40
	 *
41
	 */
42 4
	public function getRole() {
43 4
		return $this->role;
44
	}
45
46
	/**
47
	 *
48
	 * @return Permission
49
	 */
50 3
	public function getPermission() {
51 3
		return $this->permission;
52
	}
53
54
	/**
55
	 *
56
	 * @return \Ubiquity\security\acl\models\Resource
57
	 */
58 4
	public function getResource() {
59 4
		return $this->resource;
60
	}
61
62
	public function fromArray($aclArray) {
63
		$role = new Role();
64
		$role->fromArray($aclArray['role']);
65
		$resource = new Resource();
66
		$resource->fromArray($aclArray['resource']);
67
		$permission = new Permission();
68
		$permission->fromArray($aclArray['permission']);
69
		$this->role = $role;
70
		$this->permission = $permission;
71
		$this->resource = $resource;
72
	}
73
74
	public function toArray(): array {
75
		return [
76
			'resource' => $this->resource->toArray(),
77
			'role' => $this->role->toArray(),
78
			'permission' => $this->permission->toArray()
79
		];
80
	}
81
82 4
	public function allow(Role $role, Resource $resource, Permission $permission) {
83 4
		$this->role = $role;
84 4
		$this->resource = $resource;
85 4
		$this->permission = $permission;
86 4
	}
87
88
	/**
89
	 *
90
	 * @return mixed
91
	 */
92
	public function getId() {
93
		return $this->id;
94
	}
95
96
	/**
97
	 *
98
	 * @param mixed $id
99
	 */
100
	public function setId($id) {
101
		$this->id = $id;
102
	}
103
104
	/**
105
	 *
106
	 * @param \Ubiquity\security\acl\models\Role $role
107
	 */
108
	public function setRole($role) {
109
		$this->role = $role;
110
	}
111
112
	/**
113
	 *
114
	 * @param \Ubiquity\security\acl\models\Permission $permission
115
	 */
116
	public function setPermission($permission) {
117
		$this->permission = $permission;
118
	}
119
120
	/**
121
	 *
122
	 * @param \Ubiquity\security\acl\models\Resource $resource
123
	 */
124
	public function setResource($resource) {
125
		$this->resource = $resource;
126
	}
127
128
	public function getId_() {
129
		$id = '';
130
		if (isset($this->role)) {
131
			$id = $this->role->getName();
132
		}
133
		if (isset($this->resource)) {
134
			$id .= $this->resource->getName();
135
		}
136
		if (isset($this->permission)) {
137
			$id .= $this->permission->getName();
138
		}
139
		return \crc32($id) . '.';
140
	}
141
}
142
143