sajjad
3 سال پیش توسط sajjad مطرح شد
1 پاسخ

کار نکردن Policy در لاراول

سلام به همه دوستان
من یه Policy نوشتم اما وقتی متد در کنترلر Call میشه. هیچ اتفاقی نمی افته یعنی نمی ره سمت policy. با اینکه به نظر همه چیز درست پیش رفته.

این Policy

    public function create(User $user)
    {
        return $user->role == 'admin'
        ? Response::allow('Allowed to create') 
        : Response::deny('You have no access',401);
    }

این AuthServiceProvider

    protected $policies = [
        'App\Quiz' => 'App\Policies\QuestionPolicy',
        'App\Answer' => 'App\Policies\QuestionPolicy',
        'App\Course' => 'App\Policies\CoursePolicy',
    ];

    /**
     * Register any authentication / authorization services.
     *
     * @return void
     */
    public function boot()
    {
        $this->registerPolicies();

        //
    }

این متد در Controller

        $response = Gate::inspect('create');
        dd($response);

این خروجی که واقعا اگه درست باشه باید message رو هم بیاره ولی نیست.

Illuminate\Auth\Access\Response {#1251 ▼
  #allowed: false
  #message: null
  #code: null
}

این API

Route::post('/course','CourseController@create');

البته Route بالا داخل

Route::middleware(['auth:sanctum'])->group(function () {});

ممنون میشم اگه نکته ای هست اشاره کنید.


ثبت پرسش جدید
میلاد خسروی
تخصص : برنامه نویس بامزه
@milwad 3 سال پیش مطرح شد
0

سلام خسته نباشید
ببین من برای کنترلر یه کار دیگه میکردم

$this->authorize('index' , Post::class);

ببین در قسمت اول نام فانکشن در قسمت بعدی مدل که ست کردی در provider


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام