مجید
2 سال پیش توسط مجید مطرح شد
0 پاسخ

سطوح دسترسی بر اساس تعداد درخواست دربسترهای مختلف

سلام یه App داریم که روی یه بستری درحال کار کردنه و حالا می خوای روی یک بستر دیگه هم پیاده سازیش کنیم.
به راحتی می تونیم پیاده سازی کنیم . چون یک سری API هست که میشه هر بستر مختلفی که بخوایم App رو پیاده سازی کنیم(اندروید و وب و ...).

یک سری Role و Permissiom داریم که برای همه بسترها باید استفاده بشه و مشترک هست.
به طور مثال یک کاربر باRole1 اگه Permissiom5 رو داشته باشه همین کاربر تووی هر بستر این دسترسی رو خواهد داشت.
مشکل اینجاست ما برای بستر اول برای هر Permission یک محدودیت تعدادی هم داریم.برای مثال کاربرهای Role1 برای Permissiom5 فقط می تونن 5 درخواست بدن و بعد از اون اجازه اینکار رو نخواهند داشت. (تا 24 ساعت بعد) .تووی بستر دوم این تعداد معنی نداره و آزاده
و یا با Permmission3 کاربر می تواند کلا 5 مطلب ثبت کنه .تووی بستر دوم این تعداد 10 هست.
با Permmission10 کاربر می تواند کلا 5 زیر مجموعه داشته باشه و برای همه بسترها یکسان هست.
این تعداد هم تووی جدول RoleAndPermission تعریف شده. یعنی جدول به جای دو ستون یک ستون دیگه هم برای همین تعداد داره.
حالا اگر تووی بستر دوم ما API که Permissiom5 رو داره فراخوانی کنیم همون محدودیت تعدادی رو داره و خطا دریافت می کنه.درصورتی که برای این بستر این محدودیت رو نمی خوایم وجود داشته باشه.
چطور می تونیم این مشکل رو رفع کنیم که کمترین تغییر کد رو داشته باشیم.

$role = $user->roles()->first();
    if (is_null($role))
    {
        return false;
    }
    return $role->roleLimit($permission);

با تیکه کد بالا چک می کنیم دسترسی رو داره و اگه داشت تعداد رو هم بر می گردونه.
نکته: این محدودیت تعدادی برای بعضی از Permission ها برای همه بسترها وجود داره و فقط برای بعضی از Permission ها نمی خوایم وجود داشته باشه.


ثبت پرسش جدید

به همدیگه کمک کنیم

به مجید کمک کنید تا مشکل خودش را حل کند؛ این‌طور می‌توانیم با هم پیشرفت کنیم.

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

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