diff --git a/application/src/Structur/Facade/Security/AbstractSourceFasade.php b/application/src/Structur/Facade/Security/AbstractSourceFasade.php new file mode 100644 index 0000000..2a99960 --- /dev/null +++ b/application/src/Structur/Facade/Security/AbstractSourceFasade.php @@ -0,0 +1,71 @@ +source = $source; + } + + public function setId(int $id): void + { + throw \Exception("The id can't be changed!"); + } + + public function setNode(NodeInterface $node): void + { + throw \Exception("The node can't be changed!"); + } + + public function getId(): int + { + if($this->isGranted(RightType::READ)){ + return $source->getId(); + } + } + + public function getNode(): NodeInterface + { + if($this->isGranted(RightType::READ,LayerType::NODE)){ + return $source->getId(); + } + } + + protected function isGranted(string $right,string $layer): bool + { + return $this->getNode() + ->getLaw() + ->isGranted(self::$user->getSource() + ->getNode(), self::$layer, $right); + } +} +