نوب
4 سال پیش توسط نوب مطرح شد
4 پاسخ

دسترسی محدود برای مطالب هر کاربر

سلام دوستان
چطور میتونم در middleware دسترسی ویرایش و حذف مطالبی که کاربرا گذاشتن را مدیریت کنم و بگم که هر کاربر فقط به مطالبی که خودش گذاشته دسترسی ادیت و حذف داشته باشه ؟

توی شاخه app/http/Middleware یه کلاس User ساختم با کد زیر که از دیتابیس چک میکنه اگر ستون role مقدارش 1 هست یعنی دسترسی کاربر هست و بهش دسترسی دیدن صفحاتی که در route معرفی کردم را میده

class User
{
    /**
     * Handle an incoming request.
     *
     * @param \Illuminate\Http\Request $request
     * @param \Closure $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (auth::check()) {
            if (auth::user()->role == 1) {
                return $next($request);
            }
        }
        return redirect('/dashboard');
    }
}

اینم نحوه استفاده کدم در web.php

    Route::get('/user_domains', 'users_domainController@index')->middleware('auth', 'User');

حالا چطور میتونم برای middleware تعریف کنم که هر کاربر فقط به همون مطالبی که گذاشته دسترسی حذف و ادیت داشته باشه و نتونه با inspect از فرم id مطلب را تغییر بده و مال کاربر دیگه ای را دستکاری کنه

ممنون


ثبت پرسش جدید
سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 4 سال پیش مطرح شد
0

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


نوب
تخصص : کدنویس نوب :)
@yk5742g 4 سال پیش مطرح شد
0

@juza66 سلام
میدونم اینو ::D
مشکل اینجاست که نمیدونم کدی که توی کلاس User برای چک کردن دسترسی کاربر به id مطلب خودش هست چیه
البته منظورم با لاراول هست که استاندارد باشه
وگرنه به صورت عادی میتونم بنویسم ولی میخوام بر اساس قواعد لاراول باشه


جواد کرمی
تخصص : توسعه دهنده وب و اپلیکیشن | فر...
@javadkarami 4 سال پیش مطرح شد
0

با user_id چک کن اگر user_id مطلب مورد نظر برابر با id کاربر بود دسترسی موردنظرت رو فعال کن


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 4 سال پیش مطرح شد
0

برای این کار میتونی خیلی راحت از Policy ها و Authorization استفاده کنی..
هر چند که با میدلور هم میتونی کار کنی


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

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