id = $id; $this->permissions = $permissions; } public function getId() : int { return $this->id; } public function hasPermission(int $permission, int $unit = null, int $app = null, int $module = null, int $type = null, $element = null, $component = null) : bool { foreach($this->permissions as $p) { if(($p->getUnit() === $unit || $p->getUnit() === null) && ($p->getApp() === $app || $p->getApp() === null) && ($p->getModule() === $module || $p->getModule() === null) && ($p->getType() === $type || $p->getType() === null) && ($p->getElement() === $element || $p->getElement() === null) && ($p->getComponent() === $component || $p->getComponent() === null) && ($permissions | $p->getPermission()) === $p->getPermission()) { return true; } } return false; } }