Skip to content
Snippets Groups Projects
BlockController.php 2.62 KiB
Newer Older
  • Learn to ignore specific revisions
  • <?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\HTTP\RedirectResponse;
    
    use CodeIgniter\Controller;
    
    class BlockController extends Controller
    {
    
        public function attemptBlockActor(): RedirectResponse
    
        {
            $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)) {
    
                if (
                    ($actor = get_or_create_actor(
                        $parts['username'],
                        $parts['domain'],
                    )) === null
                ) {
    
                    return redirect()
                        ->back()
                        ->withInput()
                        ->with('error', 'Actor not found.');
                }
    
                model('ActorModel')->blockActor($actor->id);
            }
    
            return redirect()->back();
        }
    
    
        function attemptBlockDomain(): RedirectResponse
    
        {
            $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(): RedirectResponse
    
        {
            $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(): RedirectResponse
    
        {
            $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();
        }
    }