انتقل إلى محتوى الدرس

Checking Gates With Allows Denies فحص البوابات بدالة Gate Allows

التمييز الدقيق بين المصادقة والتفويض وتعريف بوابات الصلاحيات البرمجية عبر Gate::define وفحصها بـ allows و authorize.
1 صفوف تعليمية
إطار العمل Laravel
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

لفحص بوابة صلاحية بشكل شرطي داخل دالة المتحكم، استدعِ دالة Gate::allows أو Gate::denies ومرر اسم الصلاحية مع النموذج المستهدف. لا تحتاج لتمرير كائن المستخدم الحالي يدوياً؛ إذ يتولى Laravel جلبه وحقنه في البوابة تلقائياً.

  • فحص السماح (Gate::allows): تعيد القيمة true إذا كان المستخدم الحالي يمتلك الصلاحية المطلوبة.
  • فحص المنع (Gate::denies): تعيد القيمة true إذا كان المستخدم الحالي ممنوعاً من تنفيذ الإجراء.
  • الفحص لمستخدم آخر (Gate::forUser): تتيح فحص الصلاحية لحساب مستخدم معين غير المستخدم النشط في الجلسة.
PHP
if (Gate::denies('update-post', $post)) {
    abort(403, 'You do not own this post.');
}

$post->update($request->validated());