ایجاد مجوز دانلود فاکتور

پرسیده شده
فعالیت 1362 روز پیش
دیده شده 571 بار
0

تا الآن اگر کسی لاگین کرده باشه علاوه بر فاکتور سفارشات خودش فاکتور سفارشات بقیه کاربرارو فقط با وارد کردن id هایی که میتونه حدس بزنه در ادامه urlمیتونه دانلود کنه...چطور از این پیشگیری کنیم به صورتی که هر کاربر فقط بتونه فاکتورهای مربوط به سفارشات خودش رو دانلود کنه؟

فایل پیوست

امید غلامی
امید غلامی

17 مرداد 99

1
حذف شده

من این مورد رو با تغییر متد show در InvoiceController به شکل زیر مدیریت کردم.

public function show(Order $order)
    {
        $user=Auth::user();
        $user_orders=$user->orders;
        if(!$user_orders->contains($order)){
            return back()
        ->with('error', __('messages.Illegal invoice request')); 
        }
        return $order->downloadInvoice();
    }

سفارشهای کاربر وارد شده رو گرفتم و چک کردم سفارش ارسال شده به این متد در سفارش های کاربر موجوده یا نه.
در صورتی که موجود نباشه ی error  برمیگردونم.
روش بهینه تری هست؟ نیازی به ایجاد Exception وجود داره؟

فایل پیوست

امید غلامی

توسط

امید غلامی

17 مرداد 99

0
حذف شده

سلام .. روشی که شما استفاده کردید هم پاسخگو هستش ولی بهینه نیست .. بهترین مورد برای اینکار استفاده از Policy های لاراول هستش ... با استفاده از Policy لاراول میتونید به صورت کامل این مورد رو چک کنید ... در آپدیت‌های دوره این مورد اضافه خواهد شد.

https://laravel.com/docs/7.x/authorization

فایل پیوست

مهرداد سامی

توسط

مهرداد سامی

19 مرداد 99