castopod/app/Libraries/ActivityPub/Controllers/BlockController.php
Yassine Doghri 5c5c6da4be
refactor: add rector to enforce type declarations, code quality + style and remove dead code
- update CI process to include quality stage (tests + code review)
- add captainhook to install git pre-commit & pre-push hooks
- remove .devcontainer Dockerfile to use project's docker-compose services: all
services can now be started automatically using vscode
- update docs/setup-development.md
2021-05-12 10:48:30 +00:00

109 lines
2.4 KiB
PHP

<?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
{
/**
* @var string[]
*/
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)) === null) {
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();
}
}