سلام
ما یه سیستم میخواهیم طراحی کنیم با چندین قسمت مجزا
میخوام بدونم بهترین راه برای ایجاد و مدیریت سطح دسترسی های مختلف برای اپراتورها و ادمین ها در لاراول چی هست؟
و آیا پکیج لاراولی میشناسید برای اینکار؟ یا اصلا با پکیج مدیریت کردنش کار درستی هست یا خودمون بنویسیم از صفر؟
نمونه بخش های مختلف سیستم:
نکته قابل توجه اینکه، ممکن هست یک یوزر چندتا سطح دسترسی همزمان داشته باش. مثلا کاربر با Id=20 همزمان هم مدیرپشتیبانی در قسمت فروش محصول باشد و هم مدیر آکادمی در بخش آکادمی که انتظار میرود به بخش های دارای دسترسی فقط دسترسی داشته باشد نه بیشتر و نه کمتر
خیلی خیلی ممنونم ازتون اگه تجربیاتتون رو در اختیارم بزارید. موفق باشید✌️
چیزی که دنبالش هستید یک نیاز خیلی رایج و پراستفاده هست و معمولا با کلیدواژه ACL (Access Control List) بهش اشاره میشه.
منطق کلی و رایج به این صورت هست که با تعریف نقش (role) و دسترسی (permission) و روابط بینشون تقریبا هر جور نیازی که داشته باشید رو پوشش میده.
مثلا نقش ها رو تعریف میکنید. برای هر نقش چندین مجوز دسترسی تعیین می کنید. و در نهایت با اعطای یک یا چند نقش به هر کاربر اون مجوزهای دسترسی براش فعال میشه.
بعلاوه شما میتونید مجوز دسترسی ها رو مستقیما به خود کاربر تخصیص بدید که به این حالت میگن direct permission. یا یک مجوز خاص رو برای یک کاربر خاص مسدود کنید.
هم خودتون می تونید بنویسید و هم از پکیج های محبوب لاراولی استفاده کنید که پیشنهادم چندتا پکیج زیر هست:
https://github.com/spatie/laravel-permission
https://github.com/JosephSilber/bouncer
درود بر شما ،من توی پروژه ما از پکیج spatie/laravel-permission استفاده می کنم که واقعا پکیج خوبی هست و داکیومنت کاملی هم داره.
البته سایت اصلی فیل×ر هست
https://github.com/spatie/laravel-permission
سلام دوست عزیز پکیج های مختلفی برای اینکار وجود دارد اما اگه میخواین خودتون این کار رو انجام بدین کار زیاد سختی نیست برای یوزر ها و ادمین ها توی جدولشون یه قسمت قرار بدین به اسم role و یه میدلور تعریف کنید برای ادمین ها که چک کنه اگه role مناسب داشتن بهشون خدمات بده اما اگه نداشتن اررور 404 بده و برای یوزر ها هم همینطور و توی روت ها این میدلور رو به به اون دسته از روت های مربوطه اخصاص بده اگه از پکیج هایی مثل sanctum یا passport استفاده میکنید که توکن میده میتونید با استفاده از
auth()->user()->role
به role کاربر یا ادمین دسترسی پیدا کنید که توی middleware ازش استفاده کنید و چک کنید
چیزی که دنبالش هستید یک نیاز خیلی رایج و پراستفاده هست و معمولا با کلیدواژه ACL (Access Control List) بهش اشاره میشه.
منطق کلی و رایج به این صورت هست که با تعریف نقش (role) و دسترسی (permission) و روابط بینشون تقریبا هر جور نیازی که داشته باشید رو پوشش میده.
مثلا نقش ها رو تعریف میکنید. برای هر نقش چندین مجوز دسترسی تعیین می کنید. و در نهایت با اعطای یک یا چند نقش به هر کاربر اون مجوزهای دسترسی براش فعال میشه.
بعلاوه شما میتونید مجوز دسترسی ها رو مستقیما به خود کاربر تخصیص بدید که به این حالت میگن direct permission. یا یک مجوز خاص رو برای یک کاربر خاص مسدود کنید.
هم خودتون می تونید بنویسید و هم از پکیج های محبوب لاراولی استفاده کنید که پیشنهادم چندتا پکیج زیر هست:
https://github.com/spatie/laravel-permission
https://github.com/JosephSilber/bouncer
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟