محمد میرزاخانی
3 سال پیش توسط محمد میرزاخانی مطرح شد
5 پاسخ

Request در لاراول

سلام دوستان این authorize چیه تو ریکوئست ها و چرا باید همیشهtrue قرارش داد؟
 تصویر


ثبت پرسش جدید
حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 3 سال پیش مطرح شد
0

سلام
کاربر د این متد برای این است که در این متد میتونیم اجازه های دسترسی رو برای یه کاربر برسی کنیم و اگه کاربری اجازه دسترسی نداشت نتونه وارد متد یا اکشنی که در این بخش براش قرار گرفته بشه.
فرض کن به یه کاربری پرمیشن ایجاد یه post داده نشده و وقتی کاربر اقدام به سابمیت کردن فرم میکنه پیش از اینکه کدهای درون متدstore اجرا بشه ابتدا مبحث اجازه دسترسی کاربر تو متد authorize برسی میشه و اگه کاربر اجازه ایجاد post رو داشت میتونه وارد متد store شده و عملیات ایجاد پست انجام بشه و در غیر اینصورت بدون این که وارد متد store بشه به کاربر خطایی با کد 403 رو نشون میده
در روتهایی که متدهاشون post یا patch هست بهترین جا برای مسئله برسی کردن اجازه دسترسی کاربر داخل متد authorize کلاس Request هست
یه نمونه کد

 public function authorize()
    {
        if (Gate::allows('create-post')) {
            return true;
        } else {
            return false;
        }
    }

Saman
تخصص : برنامه نویس وب
@samanzdev 3 سال پیش مطرح شد
0

سلام
اگه متود authorize برابر با false باشه اجازه دسترسی داده نمیشه و در واقع کد 403 برمیگردونه، پس برای اینکه اجازه بدیم validation انجام بشه باید متود authorize برابر با true باشه.
https://laravel.com/docs/9.x/validation


Pouria
تخصص : developer
@pouria.782 3 سال پیش آپدیت شد
0

میتونید یک سری اعتبار سنجی هارو قبلش انجام بدید
مثلا یک کامنت رو میخواید برای یک محصول ثبت کنید، قبل از اینکه اصلا وارد بخش اعتبار سنجی بشه چک میکنید آیا این کاربر این محصول رو خریده اگر بله true در غیر این صورت false برگردونید یا مثال های دیگر
کلا بسته به نیاز یک true یا false بر میگردونید و از ادامه روند جلو گیری میکنید


حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 3 سال پیش مطرح شد
0

سلام
کاربر د این متد برای این است که در این متد میتونیم اجازه های دسترسی رو برای یه کاربر برسی کنیم و اگه کاربری اجازه دسترسی نداشت نتونه وارد متد یا اکشنی که در این بخش براش قرار گرفته بشه.
فرض کن به یه کاربری پرمیشن ایجاد یه post داده نشده و وقتی کاربر اقدام به سابمیت کردن فرم میکنه پیش از اینکه کدهای درون متدstore اجرا بشه ابتدا مبحث اجازه دسترسی کاربر تو متد authorize برسی میشه و اگه کاربر اجازه ایجاد post رو داشت میتونه وارد متد store شده و عملیات ایجاد پست انجام بشه و در غیر اینصورت بدون این که وارد متد store بشه به کاربر خطایی با کد 403 رو نشون میده
در روتهایی که متدهاشون post یا patch هست بهترین جا برای مسئله برسی کردن اجازه دسترسی کاربر داخل متد authorize کلاس Request هست
یه نمونه کد

 public function authorize()
    {
        if (Gate::allows('create-post')) {
            return true;
        } else {
            return false;
        }
    }

محمد میرزاخانی
@mirzamohammad.com 3 سال پیش مطرح شد
1

@hosseinshirinegad98
آها ممنون متوجه شدم..بعد فقط ی سوال..چه فرقی میکنه استفاده از این روش با اینکه بدونه ریکوئست ها پرمیشن ها بررسی بشه؟یعنی از همین Gate که شما گفتید استفاده کنیم واسه دسترسی ها اما نه توی Request .


حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 3 سال پیش آپدیت شد
0

روش های متعددی وجود داره
اما دو روش اینجا آوردم

   public function edit(Post $post)
    {
        $this->authorize('edit-post');
        // or
         if (Gate::denies('edit-post') {
             abort(403);
         }

         // edit post
    }

لینک مستندات لاراولیش


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

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