
یکی از چیزهایی که ما توی پروژه ها خیلی بهش نیاز داریم ، تعیین سطح دسترسی برای کار است و حتی پکیجهایی هستند که شما میتوانید با نصب آنها سطح دسترسی آنها را مدیریت کنید ، با اینجال ما در این مطلب تصمیم داریم که آموزش ایجاد سطح دسترسی در لاراول به صورت دستی یاد بگیریم
تعیین سطح دسترسی به 2 شکل انجام میشود :
مثلا میتونید تعریف کنید که اگه مدیر بود بتونه این ایتم ها رو ببینه و انجام بده و همه کاربران یک گروه دسترسی برابری دارند و در صورتی که یک دسترسی تعریف کنید برای همه اعمال خواهد شد
در این روش شما مشخص میکنید که مثلا کاربر نوید به ایتم های مشخصی دسترسی داشته باشد و افرادی که در یک گروه هستند دسترسی های برابری ندارند و هرکس بنا به احتیاجات خودش به ایتم های مشخصی دسترسی داره
خوشبختانه در لاراول ما ابزاری به نام Gate و در سطح گسترده تر Policy داریم ، با وجود Gate شما میتوانید با کمترین سطح کد نویسی دسترسی ها رو اعمال کنید
ابتدا در تیبل کاربران خود یک فیلد اضافه میکنیم به نام type
افزودن فیلد type به کاربر

سپس در فایل : 'app/Providers/AuthServiceProvider.php'
به شکل زیر 3 عدد Gate برای دسترسی های مدیر ، ویرایشگر و نویسنده تعریف میکنیم :

همچنین اگر از PHP Storm استفاده نمیکنید و import ندارید ، یادتون نره که به شکل زیر Gate رو import کنید

خب حالا کار ما تمومه .
حالا شما در 2 جا نیاز دارید که از Gate استفاده کنید ، یکی درون فایلهای html و موتور قالب Blade و دیگری درون کنترلر هاست
برای اینکه مشخص کنید که کاربر به چیزی دسترسی داره ، شما میتونید از کلمه کلیدی can استفاده کنید
مثلا در تصویر زیر مشخص کردیم که کاربر به Dashboard - New Post و Edit Post دسترسی داشته باشد

همچنین اگر بخواهید درون کنترلر ها تعیین کنید که کاربر به چه چیزهایی دسترسی داشته باشد به جای can میتوانید از کلمه allows استفاده کنید ، در تصویر زیر ، ما گفتم که اگر کاربر Admin بود به پیغام دسترسی داشته باشد

روش دوم ، در پست بعد (بزودی)