<?php /** * @copyright 2021 Podlibre * @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3 * @link https://castopod.org/ */ namespace ActivityPub\Controllers; use CodeIgniter\Controller; class BlockController extends Controller { protected $helpers = ['activitypub']; public function attemptBlockActor() { $rules = [ 'handle' => 'required', ]; if (!$this->validate($rules)) { return redirect() ->back() ->withInput() ->with('errors', $this->validator->getErrors()); } $handle = $this->request->getPost('handle'); if ($parts = split_handle($handle)) { extract($parts); if (!($actor = get_or_create_actor($username, $domain))) { return redirect() ->back() ->withInput() ->with('error', 'Actor not found.'); } model('ActorModel')->blockActor($actor->id); } return redirect()->back(); } function attemptBlockDomain() { $rules = [ 'domain' => 'required', ]; if (!$this->validate($rules)) { return redirect() ->back() ->withInput() ->with('errors', $this->validator->getErrors()); } model('BlockedDomainModel')->blockDomain( $this->request->getPost('domain'), ); return redirect()->back(); } function attemptUnblockActor() { $rules = [ 'actor_id' => 'required', ]; if (!$this->validate($rules)) { return redirect() ->back() ->withInput() ->with('errors', $this->validator->getErrors()); } model('ActorModel')->unblockActor($this->request->getPost('actor_id')); return redirect()->back(); } function attemptUnblockDomain() { $rules = [ 'domain' => 'required', ]; if (!$this->validate($rules)) { return redirect() ->back() ->withInput() ->with('errors', $this->validator->getErrors()); } model('BlockedDomainModel')->unblockDomain( $this->request->getPost('domain'), ); return redirect()->back(); } }