42 lines
948 B
PHP
42 lines
948 B
PHP
<?php
|
|
|
|
namespace App\Policies;
|
|
|
|
use App\Models\User;
|
|
use App\Models\WebhookRequest;
|
|
|
|
class WebhookRequestPolicy
|
|
{
|
|
public function viewAny(?User $user): bool
|
|
{
|
|
return $user !== null;
|
|
}
|
|
|
|
public function view(?User $user, WebhookRequest $webhookRequest): bool
|
|
{
|
|
return $this->canAccessEndpoint($user, $webhookRequest);
|
|
}
|
|
|
|
public function create(?User $user): bool
|
|
{
|
|
return false;
|
|
}
|
|
|
|
public function update(?User $user, WebhookRequest $webhookRequest): bool
|
|
{
|
|
return false;
|
|
}
|
|
|
|
public function delete(?User $user, WebhookRequest $webhookRequest): bool
|
|
{
|
|
return $this->canAccessEndpoint($user, $webhookRequest);
|
|
}
|
|
|
|
private function canAccessEndpoint(?User $user, WebhookRequest $webhookRequest): bool
|
|
{
|
|
$webhookRequest->loadMissing('endpoint');
|
|
|
|
return (new WebhookEndpointPolicy)->view($user, $webhookRequest->endpoint);
|
|
}
|
|
}
|