From b1d6fbc4d740324d96d7fe2677fb15b9b59d20ea Mon Sep 17 00:00:00 2001 From: winter Date: Thu, 16 Jan 2025 20:21:42 +0000 Subject: follow requests --- Digitigrade/Model/Actor.php | 12 ++++++++++++ Digitigrade/Model/Session.php | 10 ++++++++++ 2 files changed, 22 insertions(+) (limited to 'Digitigrade') diff --git a/Digitigrade/Model/Actor.php b/Digitigrade/Model/Actor.php index 8a37b1c..d04c841 100644 --- a/Digitigrade/Model/Actor.php +++ b/Digitigrade/Model/Actor.php @@ -205,6 +205,18 @@ class Actor extends PushableModel implements RpcReceiver { }, $relations); } + /** + * @return Actor[] a list of actors that would like to follow this actor + */ + public function findPendingFollowers(): array { + $relations = FollowRelation::findAllWithObject($this); + $relations = array_filter( + $relations, + fn(FollowRelation $rel) => $rel->status == FollowRelationStatus::PENDING + ); + return array_map(fn(FollowRelation $rel) => $rel->subject, $relations); + } + /** * @return Actor[] a list of actors that both follow and are followed by this actor */ diff --git a/Digitigrade/Model/Session.php b/Digitigrade/Model/Session.php index 31fb8bb..07827c0 100644 --- a/Digitigrade/Model/Session.php +++ b/Digitigrade/Model/Session.php @@ -40,4 +40,14 @@ class Session extends Model { 'secure' => GlobalConfig::getInstance()->isHttps() ]); } + + public function clearCookie() { + setcookie('digitigrade-session', '', [ + 'expires' => (new \DateTimeImmutable('1 year ago'))->getTimestamp(), + 'httponly' => true, + 'samesite' => 'Lax', + 'path' => '/', + 'secure' => GlobalConfig::getInstance()->isHttps() + ]); + } } \ No newline at end of file -- cgit v1.3