Updated readme, subscription authorization logic

This commit is contained in:
2024-03-10 23:12:34 +01:00
parent 87d47f8ce8
commit d05d2e13e3
3 changed files with 12 additions and 13 deletions

View File

@ -31,13 +31,8 @@ class Topic
// TODO check if message id has already been published
foreach ($this->subscribers as $subscriber) {
if ($message->private === true) {
// TODO check subscriber access
$subscriber->deliver($message);
} else {
// TODO deliver to subscriber
$subscriber->deliver($message);
}
// Deliver to all subscribers
$subscriber->deliver($message);
}
}

View File

@ -34,8 +34,10 @@ class TopicManager
public function subscribe(SubscriberInterface $subscriber, array $topics): void
{
foreach ($topics as $topic) {
$this->getTopic($topic)->addSubscriber($subscriber);
if ($subscriber->isAuthorized($topic))
$this->getTopic($topic)->addSubscriber($subscriber);
}
$this->subscribers->attach($subscriber);
}
public function unsubscribe(SubscriberInterface $subscriber, ?array $topics=null): void
@ -49,6 +51,7 @@ class TopicManager
foreach ($topics as $topic) {
$this->getTopic($topic)->removeSubscriber($subscriber);
}
$this->subscribers->detach($subscriber);
}
public function getTopicCount(): int