forked from eatvio/eatvio-infra
20 lines
439 B
PHP
20 lines
439 B
PHP
<?php
|
|
|
|
namespace App\Policies;
|
|
|
|
use App\Models\User;
|
|
use App\Models\BlogPost;
|
|
|
|
class BlogPostPolicy
|
|
{
|
|
public function edit(User $user, BlogPost $blogPost): bool
|
|
{
|
|
return $this->isAuthorPlan($user, $blogPost) || $user->hasRole('admin') || $user->hasRole('moderator');
|
|
}
|
|
|
|
private function isAuthorPlan(User $user, BlogPost $blogPost): bool
|
|
{
|
|
return $user->id === $blogPost->author()->first()->id;
|
|
}
|
|
}
|