شرح صفوف ومحتوى الفقرة
تطابق دوال السياسة أفعال الموارد القياسية؛ حيث تستقبل دوال view و update و delete كائن المستخدم مع كائن السجل المستهدف، بينما تستقبل دالتا viewAny و create كائن المستخدم فقط لعدم وجود سجل معين بعد. داخل دالة التعديل أو الحذف، أعد القيمة المنطقية لملكية السجل.
- دوال السجل المحدد (update / delete): تستقبل المستخدم والسجل معاً لفحص تطابق الملكية.
- دوال الإنشاء والقوائم (create / viewAny): تستقبل كائن المستخدم فقط لفحص دوره أو حالة حسابه.
- دعم ردود التفويض (Response Objects): يمكن لدوال السياسة إرجاع قيم منطقية أو كائنات Response::deny.
PHP
class PostPolicy
{
public function create(User $user): bool
{
return $user->is_verified;
}
public function update(User $user, Post $post): bool
{
return $user->id === $post->user_id;
}