diff --git a/app/Entities/Podcast.php b/app/Entities/Podcast.php index 28a1e3fe5cdcd335e4721f805655e4d7eba821e3..f0a4c810feeb8ebe00efd811f9360f9887f7effb 100644 --- a/app/Entities/Podcast.php +++ b/app/Entities/Podcast.php @@ -198,7 +198,7 @@ class Podcast extends Entity if ($this->actor === null) { // @phpstan-ignore-next-line - $this->actor = model(ActorModel::class) + $this->actor = model(ActorModel::class, false) ->getActorById($this->actor_id); } diff --git a/app/Helpers/auth_helper.php b/app/Helpers/auth_helper.php index 163002d97af0a43e49f3fef1ec181e229299c0a2..15d5739a650c9ddc4f8e156be291e1b7be270ea3 100644 --- a/app/Helpers/auth_helper.php +++ b/app/Helpers/auth_helper.php @@ -75,7 +75,7 @@ if (! function_exists('interact_as_actor')) { $session = session(); if ($session->has('interact_as_actor_id')) { - return model(ActorModel::class)->getActorById($session->get('interact_as_actor_id')); + return model(ActorModel::class, false)->getActorById($session->get('interact_as_actor_id')); } return false; diff --git a/modules/Admin/Controllers/FediverseController.php b/modules/Admin/Controllers/FediverseController.php index 134939edf0fb05c8f8a8159b062649f6734b2201..82a5e1e11465cb934c584c06d706f22aa07e8376 100644 --- a/modules/Admin/Controllers/FediverseController.php +++ b/modules/Admin/Controllers/FediverseController.php @@ -21,7 +21,7 @@ class FediverseController extends BaseController { helper(['form']); - $blockedActors = model('ActorModel') + $blockedActors = model('ActorModel', false) ->getBlockedActors(); return view('fediverse/blocked_actors', [ @@ -33,7 +33,7 @@ class FediverseController extends BaseController { helper(['form']); - $blockedDomains = model('BlockedDomainModel') + $blockedDomains = model('BlockedDomainModel', false) ->getBlockedDomains(); return view('fediverse/blocked_domains', [ diff --git a/modules/Fediverse/Controllers/ActorController.php b/modules/Fediverse/Controllers/ActorController.php index 43fe5a37f9ef577b0a97b330a8115704c28ac0f1..329c725df33b4b3995028924f9fea5abb59c9cb2 100644 --- a/modules/Fediverse/Controllers/ActorController.php +++ b/modules/Fediverse/Controllers/ActorController.php @@ -44,7 +44,7 @@ class ActorController extends Controller } if ( - ($actor = model('ActorModel')->getActorByUsername($params[0])) === null + ($actor = model('ActorModel', false)->getActorByUsername($params[0])) === null ) { throw PageNotFoundException::forPageNotFound(); } @@ -82,7 +82,7 @@ class ActorController extends Controller $payloadActor = get_or_create_actor_from_uri($payload->actor); // store activity to database - $activityId = model('ActivityModel') + $activityId = model('ActivityModel', false) ->newActivity( $payload->type, $payloadActor->id, @@ -101,7 +101,7 @@ class ActorController extends Controller ->setJSON([]); } - $replyToPost = model('PostModel') + $replyToPost = model('PostModel', false) ->getPostByUri($payload->object->inReplyTo); $reply = null; @@ -120,10 +120,10 @@ class ActorController extends Controller } if ($reply !== null) { - $postId = model('PostModel') + $postId = model('PostModel', false) ->addReply($reply, true, false); - model('ActivityModel') + model('ActivityModel', false) ->update($activityId, [ 'post_id' => $postId, ]); @@ -136,11 +136,11 @@ class ActorController extends Controller return $this->response->setStatusCode(501) ->setJSON([]); case 'Delete': - $postToDelete = model('PostModel') + $postToDelete = model('PostModel', false) ->getPostByUri($payload->object->id); if ($postToDelete !== null) { - model('PostModel') + model('PostModel', false) ->removePost($postToDelete, false); } @@ -148,7 +148,7 @@ class ActorController extends Controller ->setJSON([]); case 'Follow': // add to followers table - model('FollowModel') + model('FollowModel', false) ->addFollower($payloadActor, $this->actor, false); // Automatically accept follow by returning accept activity @@ -160,15 +160,15 @@ class ActorController extends Controller case 'Like': // get favourited post - $post = model('PostModel') + $post = model('PostModel', false) ->getPostByUri($payload->object); if ($post !== null) { // Like side-effect - model('FavouriteModel') + model('FavouriteModel', false) ->addFavourite($payloadActor, $post, false); - model('ActivityModel') + model('ActivityModel', false) ->update($activityId, [ 'post_id' => $post->id, ]); @@ -177,16 +177,16 @@ class ActorController extends Controller return $this->response->setStatusCode(200) ->setJSON([]); case 'Announce': - $post = model('PostModel') + $post = model('PostModel', false) ->getPostByUri($payload->object); if ($post !== null) { - model('ActivityModel') + model('ActivityModel', false) ->update($activityId, [ 'post_id' => $post->id, ]); - model('PostModel') + model('PostModel', false) ->reblog($payloadActor, $post, false); } @@ -198,22 +198,22 @@ class ActorController extends Controller switch ($payload->object->type) { case 'Follow': // revert side-effect by removing follow from database - model('FollowModel') + model('FollowModel', false) ->removeFollower($payloadActor, $this->actor, false); // TODO: undo has been accepted! (202 - Accepted) return $this->response->setStatusCode(202) ->setJSON([]); case 'Like': - $post = model('PostModel') + $post = model('PostModel', false) ->getPostByUri($payload->object->object); if ($post !== null) { // revert side-effect by removing favourite from database - model('FavouriteModel') + model('FavouriteModel', false) ->removeFavourite($payloadActor, $post, false); - model('ActivityModel') + model('ActivityModel', false) ->update($activityId, [ 'post_id' => $post->id, ]); @@ -222,12 +222,12 @@ class ActorController extends Controller return $this->response->setStatusCode(200) ->setJSON([]); case 'Announce': - $post = model('PostModel') + $post = model('PostModel', false) ->getPostByUri($payload->object->object); $reblogPost = null; if ($post !== null) { - $reblogPost = model('PostModel') + $reblogPost = model('PostModel', false) ->where([ 'actor_id' => $payloadActor->id, 'reblog_of_id' => service('uuid') @@ -238,10 +238,10 @@ class ActorController extends Controller } if ($reblogPost !== null) { - model('PostModel') + model('PostModel', false) ->undoReblog($reblogPost, false); - model('ActivityModel') + model('ActivityModel', false) ->update($activityId, [ 'post_id' => $post->id, ]); @@ -268,7 +268,7 @@ class ActorController extends Controller public function outbox(): ResponseInterface { // get published activities by publication date - $actorActivity = model('ActivityModel') + $actorActivity = model('ActivityModel', false) ->where('actor_id', $this->actor->id) ->where('`created_at` <= NOW()', null, false) ->orderBy('created_at', 'DESC'); @@ -303,7 +303,7 @@ class ActorController extends Controller ->tablesPrefix; // get followers for a specific actor - $followers = model('ActorModel') + $followers = model('ActorModel', false) ->join($tablesPrefix . 'follows', $tablesPrefix . 'follows.actor_id = id', 'inner') ->where($tablesPrefix . 'follows.target_actor_id', $this->actor->id) ->orderBy($tablesPrefix . 'follows.created_at', 'DESC'); @@ -383,7 +383,7 @@ class ActorController extends Controller public function activity(string $activityId): ResponseInterface { if ( - ! ($activity = model('ActivityModel')->getActivityById($activityId)) + ! ($activity = model('ActivityModel', false)->getActivityById($activityId)) ) { throw PageNotFoundException::forPageNotFound(); } diff --git a/modules/Fediverse/Controllers/BlockController.php b/modules/Fediverse/Controllers/BlockController.php index 9537edf212cb0cef3f763c6bb35fc1b0f5a93c21..fe3e59068e1dd03103a3dae802ea393e28efada9 100644 --- a/modules/Fediverse/Controllers/BlockController.php +++ b/modules/Fediverse/Controllers/BlockController.php @@ -45,7 +45,7 @@ class BlockController extends Controller ->with('error', lang('Fediverse.messages.actorNotFound')); } - model('ActorModel') + model('ActorModel', false) ->blockActor($actor->id); } @@ -68,7 +68,7 @@ class BlockController extends Controller ->with('errors', $this->validator->getErrors()); } - model('ActorModel') + model('ActorModel', false) ->unblockActor((int) $this->request->getPost('actor_id')); return redirect()->back() @@ -89,7 +89,7 @@ class BlockController extends Controller } $domain = $this->request->getPost('domain'); - model('BlockedDomainModel') + model('BlockedDomainModel', false) ->blockDomain($domain); return redirect()->back() @@ -112,7 +112,7 @@ class BlockController extends Controller } $domain = $this->request->getPost('domain'); - model('BlockedDomainModel') + model('BlockedDomainModel', false) ->unblockDomain($domain); return redirect()->back() diff --git a/modules/Fediverse/Controllers/NodeInfo2Controller.php b/modules/Fediverse/Controllers/NodeInfo2Controller.php index d1ea326d25b357f56a294de298595734d5e4e31d..2a3c7cb1ef03bea25550251ff28a5789881a9568 100644 --- a/modules/Fediverse/Controllers/NodeInfo2Controller.php +++ b/modules/Fediverse/Controllers/NodeInfo2Controller.php @@ -17,13 +17,13 @@ class NodeInfo2Controller extends Controller { public function index(): ResponseInterface { - $totalUsers = model('ActorModel') + $totalUsers = model('ActorModel', false) ->getTotalLocalActors(); - $totalPosts = model('PostModel') + $totalPosts = model('PostModel', false) ->getTotalLocalPosts(); - $activeMonth = model('ActorModel') + $activeMonth = model('ActorModel', false) ->getActiveLocalActors(1); - $activeHalfyear = model('ActorModel') + $activeHalfyear = model('ActorModel', false) ->getActiveLocalActors(6); $nodeInfo2 = [ diff --git a/modules/Fediverse/Controllers/PostController.php b/modules/Fediverse/Controllers/PostController.php index 8d47006582a6b4a1c46d633089f5e1a1ad1735c7..733ee436b55b2e420058b27fb54f75256ea6b7fc 100644 --- a/modules/Fediverse/Controllers/PostController.php +++ b/modules/Fediverse/Controllers/PostController.php @@ -42,7 +42,7 @@ class PostController extends Controller public function _remap(string $method, string ...$params): mixed { - if (($post = model('PostModel')->getPostById($params[0])) === null) { + if (($post = model('PostModel', false)->getPostById($params[0])) === null) { throw PageNotFoundException::forPageNotFound(); } @@ -74,7 +74,7 @@ class PostController extends Controller /** * get post replies */ - $postReplies = model('PostModel') + $postReplies = model('PostModel', false) ->where('in_reply_to_id', service('uuid') ->fromString($this->post->id) ->getBytes()) ->where('`published_at` <= NOW()', null, false) ->orderBy('published_at', 'ASC'); @@ -127,7 +127,7 @@ class PostController extends Controller 'published_at' => Time::now(), ]); - $postModel = model('PostModel'); + $postModel = model('PostModel', false); if (! $postModel->addPost($newPost)) { return redirect() ->back() @@ -153,10 +153,10 @@ class PostController extends Controller ->with('errors', $this->validator->getErrors()); } - $actor = model('ActorModel') + $actor = model('ActorModel', false) ->getActorById($this->request->getPost('actor_id')); - model('FavouriteModel') + model('FavouriteModel', false) ->toggleFavourite($actor, $this->post->id); return redirect()->back(); @@ -175,10 +175,10 @@ class PostController extends Controller ->with('errors', $this->validator->getErrors()); } - $actor = model('ActorModel') + $actor = model('ActorModel', false) ->getActorById($this->request->getPost('actor_id')); - model('PostModel') + model('PostModel', false) ->toggleReblog($actor, $this->post); return redirect()->back(); @@ -205,7 +205,7 @@ class PostController extends Controller 'published_at' => Time::now(), ]); - if (! model('PostModel')->addReply($newReplyPost)) { + if (! model('PostModel', false)->addReply($newReplyPost)) { return redirect() ->back() ->withInput() @@ -265,14 +265,14 @@ class PostController extends Controller public function attemptBlockActor(): RedirectResponse { - model('ActorModel')->blockActor($this->post->actor->id); + model('ActorModel', false)->blockActor($this->post->actor->id); return redirect()->back(); } public function attemptBlockDomain(): RedirectResponse { - model('BlockedDomainModel')->blockDomain($this->post->actor->domain); + model('BlockedDomainModel', false)->blockDomain($this->post->actor->domain); return redirect()->back(); } diff --git a/modules/Fediverse/Controllers/SchedulerController.php b/modules/Fediverse/Controllers/SchedulerController.php index 9be4db346d89f861bda3082ad60bf1399157bd1a..d7b93ff63f20b02c3e9ffe93417d28cd9d1ea145 100644 --- a/modules/Fediverse/Controllers/SchedulerController.php +++ b/modules/Fediverse/Controllers/SchedulerController.php @@ -22,7 +22,7 @@ class SchedulerController extends Controller public function activity(): void { // retrieve scheduled activities from database - $scheduledActivities = model('ActivityModel') + $scheduledActivities = model('ActivityModel', false) ->getScheduledActivities(); // Send activity to all followers @@ -45,7 +45,7 @@ class SchedulerController extends Controller } // set activity post to delivered - model('ActivityModel') + model('ActivityModel', false) ->update($scheduledActivity->id, [ 'status' => 'delivered', ]); diff --git a/modules/Fediverse/Filters/FediverseFilter.php b/modules/Fediverse/Filters/FediverseFilter.php index 5a4e607d58c203989d48c909e30df42d99434a7d..ddac50de8cd16aefb774ca01605254d19e9b0efa 100644 --- a/modules/Fediverse/Filters/FediverseFilter.php +++ b/modules/Fediverse/Filters/FediverseFilter.php @@ -50,12 +50,12 @@ class FediverseFilter implements FilterInterface $domain = (new URI($actorUri))->getHost(); // check first if domain is blocked - if (model('BlockedDomainModel')->isDomainBlocked($domain)) { + if (model('BlockedDomainModel', false)->isDomainBlocked($domain)) { throw PageNotFoundException::forPageNotFound(); } // check if actor is blocked - if (model('ActorModel')->isActorBlocked($actorUri)) { + if (model('ActorModel', false)->isActorBlocked($actorUri)) { throw PageNotFoundException::forPageNotFound(); } } diff --git a/modules/Fediverse/Helpers/fediverse_helper.php b/modules/Fediverse/Helpers/fediverse_helper.php index ba313220cec9e1bf0a88ff1b84173f81bd31d459..7a7ec1372ed9cdc19a8d279cafdc87a60ddb1da6 100644 --- a/modules/Fediverse/Helpers/fediverse_helper.php +++ b/modules/Fediverse/Helpers/fediverse_helper.php @@ -70,7 +70,7 @@ if (! function_exists('accept_follow')) { $db = db_connect(); $db->transStart(); - $activityModel = model('ActivityModel'); + $activityModel = model('ActivityModel', false); $activityId = $activityModel->newActivity( 'Accept', $actor->id, @@ -183,7 +183,7 @@ if (! function_exists('create_preview_card_from_url')) { ]); if ( - ! ($newPreviewCardId = model('PreviewCardModel')->insert($newPreviewCard, true)) + ! ($newPreviewCardId = model('PreviewCardModel', false)->insert($newPreviewCard, true)) ) { return null; } @@ -205,7 +205,7 @@ if (! function_exists('get_or_create_preview_card_from_url')) { { // check if preview card has already been generated if ( - $previewCard = model('PreviewCardModel') + $previewCard = model('PreviewCardModel', false) ->getPreviewCardFromUrl((string) $url) ) { return $previewCard; @@ -224,7 +224,7 @@ if (! function_exists('get_or_create_actor_from_uri')) { function get_or_create_actor_from_uri(string $actorUri): ?Actor { // check if actor exists in database already and return it - if ($actor = model('ActorModel')->getActorByUri($actorUri)) { + if ($actor = model('ActorModel', false)->getActorByUri($actorUri)) { return $actor; } @@ -242,7 +242,7 @@ if (! function_exists('get_or_create_actor')) { { // check if actor exists in database already and return it if ( - $actor = model('ActorModel') + $actor = model('ActorModel', false) ->getActorByUsername($username, $domain) ) { return $actor; @@ -287,7 +287,7 @@ if (! function_exists('create_actor_from_uri')) { $newActor->outbox_url = property_exists($actorPayload, 'outbox') ? $actorPayload->outbox : null; $newActor->followers_url = property_exists($actorPayload, 'followers') ? $actorPayload->followers : null; - if (! ($newActorId = model('ActorModel')->insert($newActor, true))) { + if (! ($newActorId = model('ActorModel', false)->insert($newActor, true))) { return null; } @@ -431,7 +431,7 @@ if (! function_exists('linkify')) { } } else { if ( - $actor = model('ActorModel') + $actor = model('ActorModel', false) ->getActorByUsername($match['username']) ) { return '<' . diff --git a/modules/Fediverse/Models/BlockedDomainModel.php b/modules/Fediverse/Models/BlockedDomainModel.php index 9f2881eb63075565fbb8371b63a1fc6ec2beec70..eb7c612597903821437c707ddf54302b8f954152 100644 --- a/modules/Fediverse/Models/BlockedDomainModel.php +++ b/modules/Fediverse/Models/BlockedDomainModel.php @@ -100,7 +100,7 @@ class BlockedDomainModel extends BaseModel $this->db->transStart(); // set all actors from the domain as blocked - model('ActorModel') + model('ActorModel', false) ->where('domain', $name) ->set('is_blocked', '1') ->update(); @@ -131,7 +131,7 @@ class BlockedDomainModel extends BaseModel $this->db->transStart(); // unblock all actors from the domain - model('ActorModel') + model('ActorModel', false) ->where('domain', $name) ->set('is_blocked', '0') ->update(); diff --git a/modules/Fediverse/Models/FavouriteModel.php b/modules/Fediverse/Models/FavouriteModel.php index 5e8baff5c148913c010368bc1aad7d43ea6711d3..e08395dc1552434a601b3c23c48c652510e1e3c3 100644 --- a/modules/Fediverse/Models/FavouriteModel.php +++ b/modules/Fediverse/Models/FavouriteModel.php @@ -55,7 +55,7 @@ class FavouriteModel extends BaseUuidModel 'post_id' => $post->id, ]); - model('PostModel') + model('PostModel', false) ->where('id', service('uuid') ->fromString($post->id) ->getBytes()) ->increment('favourites_count'); @@ -64,7 +64,7 @@ class FavouriteModel extends BaseUuidModel $likeActivity->set('actor', $actor->uri) ->set('object', $post->uri); - $activityId = model('ActivityModel') + $activityId = model('ActivityModel', false) ->newActivity( 'Like', $actor->id, @@ -77,7 +77,7 @@ class FavouriteModel extends BaseUuidModel $likeActivity->set('id', url_to('activity', $actor->username, $activityId)); - model('ActivityModel') + model('ActivityModel', false) ->update($activityId, [ 'payload' => $likeActivity->toJSON(), ]); @@ -85,7 +85,7 @@ class FavouriteModel extends BaseUuidModel Events::trigger('on_post_favourite', $actor, $post); - model('PostModel') + model('PostModel', false) ->clearCache($post); $this->db->transComplete(); @@ -95,7 +95,7 @@ class FavouriteModel extends BaseUuidModel { $this->db->transStart(); - model('PostModel') + model('PostModel', false) ->where('id', service('uuid') ->fromString($post->id) ->getBytes()) ->decrement('favourites_count'); @@ -110,7 +110,7 @@ class FavouriteModel extends BaseUuidModel if ($registerActivity) { $undoActivity = new UndoActivity(); // get like activity - $activity = model('ActivityModel') + $activity = model('ActivityModel', false) ->where([ 'type' => 'Like', 'actor_id' => $actor->id, @@ -130,7 +130,7 @@ class FavouriteModel extends BaseUuidModel ->set('actor', $actor->uri) ->set('object', $likeActivity); - $activityId = model('ActivityModel') + $activityId = model('ActivityModel', false) ->newActivity( 'Undo', $actor->id, @@ -143,7 +143,7 @@ class FavouriteModel extends BaseUuidModel $undoActivity->set('id', url_to('activity', $actor->username, $activityId)); - model('ActivityModel') + model('ActivityModel', false) ->update($activityId, [ 'payload' => $undoActivity->toJSON(), ]); @@ -151,7 +151,7 @@ class FavouriteModel extends BaseUuidModel Events::trigger('on_post_undo_favourite', $actor, $post); - model('PostModel') + model('PostModel', false) ->clearCache($post); $this->db->transComplete(); diff --git a/modules/Fediverse/Models/FollowModel.php b/modules/Fediverse/Models/FollowModel.php index 0917fe96a7d89305cb2d87cd70224150ee5a2e96..831dd4a8dbd3d769cfddc44ead324ab70ef3380f 100644 --- a/modules/Fediverse/Models/FollowModel.php +++ b/modules/Fediverse/Models/FollowModel.php @@ -61,7 +61,7 @@ class FollowModel extends BaseModel ]); // increment followers_count for target actor - model('ActorModel') + model('ActorModel', false) ->where('id', $targetActor->id) ->increment('followers_count'); @@ -72,7 +72,7 @@ class FollowModel extends BaseModel ->set('actor', $actor->uri) ->set('object', $targetActor->uri); - $activityId = model('ActivityModel') + $activityId = model('ActivityModel', false) ->newActivity( 'Follow', $actor->id, @@ -85,7 +85,7 @@ class FollowModel extends BaseModel $followActivity->set('id', url_to('activity', $actor->username, $activityId)); - model('ActivityModel') + model('ActivityModel', false) ->update($activityId, [ 'payload' => $followActivity->toJSON(), ]); @@ -93,7 +93,7 @@ class FollowModel extends BaseModel Events::trigger('on_follow', $actor, $targetActor); - model('ActorModel') + model('ActorModel', false) ->clearCache($targetActor); $this->db->transComplete(); @@ -118,14 +118,14 @@ class FollowModel extends BaseModel ])->delete(); // decrement followers_count for target actor - model('ActorModel') + model('ActorModel', false) ->where('id', $targetActor->id) ->decrement('followers_count'); if ($registerActivity) { $undoActivity = new UndoActivity(); // get follow activity from database - $followActivity = model('ActivityModel') + $followActivity = model('ActivityModel', false) ->where([ 'type' => 'Follow', 'actor_id' => $actor->id, @@ -137,7 +137,7 @@ class FollowModel extends BaseModel ->set('actor', $actor->uri) ->set('object', $followActivity->payload); - $activityId = model('ActivityModel') + $activityId = model('ActivityModel', false) ->newActivity( 'Undo', $actor->id, @@ -150,7 +150,7 @@ class FollowModel extends BaseModel $undoActivity->set('id', url_to('activity', $actor->username, $activityId)); - model('ActivityModel') + model('ActivityModel', false) ->update($activityId, [ 'payload' => $undoActivity->toJSON(), ]); @@ -158,7 +158,7 @@ class FollowModel extends BaseModel Events::trigger('on_undo_follow', $actor, $targetActor); - model('ActorModel') + model('ActorModel', false) ->clearCache($targetActor); $this->db->transComplete(); diff --git a/modules/Fediverse/WebFinger.php b/modules/Fediverse/WebFinger.php index 592ae92c551318383fde583ad1b5aa69bc9e7cd4..97dd6eae476d28073dd72928450916e9320a539f 100644 --- a/modules/Fediverse/WebFinger.php +++ b/modules/Fediverse/WebFinger.php @@ -62,7 +62,7 @@ class WebFinger } if ( - ! ($actor = model('ActorModel')->getActorByUsername($username, $domain)) + ! ($actor = model('ActorModel', false)->getActorByUsername($username, $domain)) ) { throw new Exception('Could not find actor'); }