Django developer
اموزش ایجاد سطح دسترسی در لاراول
یکی از چیزهایی که ما توی پروژه ها خیلی بهش نیاز داریم ، تعیین سطح دسترسی برای کار است و حتی پکیجهایی هستند که شما میتوانید با نصب آنها سطح دسترسی آنها را مدیریت کنید ، با اینجال ما در این مطلب تصمیم داریم که آموزش ایجاد سطح دسترسی در لاراول به صورت دستی یاد بگیریم
تعیین سطح دسترسی به 2 شکل انجام میشود :
روش اول -> گروه کاری
مثلا میتونید تعریف کنید که اگه مدیر بود بتونه این ایتم ها رو ببینه و انجام بده و همه کاربران یک گروه دسترسی برابری دارند و در صورتی که یک دسترسی تعریف کنید برای همه اعمال خواهد شد
روش دوم -> سطح دسترسی انتخابی
در این روش شما مشخص میکنید که مثلا کاربر نوید به ایتم های مشخصی دسترسی داشته باشد و افرادی که در یک گروه هستند دسترسی های برابری ندارند و هرکس بنا به احتیاجات خودش به ایتم های مشخصی دسترسی داره
خوشبختانه در لاراول ما ابزاری به نام Gate و در سطح گسترده تر Policy داریم ، با وجود Gate شما میتوانید با کمترین سطح کد نویسی دسترسی ها رو اعمال کنید
تعریف دسترسی بر اساس گروه کاری
ابتدا در تیبل کاربران خود یک فیلد اضافه میکنیم به نام type
افزودن فیلد type به کاربر
سپس در فایل : 'app/Providers/AuthServiceProvider.php'
به شکل زیر 3 عدد Gate برای دسترسی های مدیر ، ویرایشگر و نویسنده تعریف میکنیم :
همچنین اگر از PHP Storm استفاده نمیکنید و import ندارید ، یادتون نره که به شکل زیر Gate رو import کنید
خب حالا کار ما تمومه .
حالا شما در 2 جا نیاز دارید که از Gate استفاده کنید ، یکی درون فایلهای html و موتور قالب Blade و دیگری درون کنترلر هاست
برای اینکه مشخص کنید که کاربر به چیزی دسترسی داره ، شما میتونید از کلمه کلیدی can استفاده کنید
استفاده درون موتور قالب blade
مثلا در تصویر زیر مشخص کردیم که کاربر به Dashboard - New Post و Edit Post دسترسی داشته باشد
همچنین اگر بخواهید درون کنترلر ها تعیین کنید که کاربر به چه چیزهایی دسترسی داشته باشد به جای can میتوانید از کلمه allows استفاده کنید ، در تصویر زیر ، ما گفتم که اگر کاربر Admin بود به پیغام دسترسی داشته باشد
روش دوم ، در پست بعد (بزودی)
مطلبی دیگر از این انتشارات
نه، واقعا چرا لاراول ؟
مطلبی دیگر از این انتشارات
سرویس کانتینر و سرویس پرووایدر در لاراول
مطلبی دیگر از این انتشارات
حالا چرا لاراول؟ شاهدی به نام صفحهبندی