راکت
حل شده

سطح دسترسی در لاراول

4 پاسخ

سلام
ما یه سیستم میخواهیم طراحی کنیم با چندین قسمت مجزا
میخوام بدونم بهترین راه برای ایجاد و مدیریت سطح دسترسی های مختلف برای اپراتورها و ادمین ها در لاراول چی هست؟
و آیا پکیج لاراولی میشناسید برای اینکار؟ یا اصلا با پکیج مدیریت کردنش کار درستی هست یا خودمون بنویسیم از صفر؟
نمونه بخش های مختلف سیستم:

  • فروش محصول (شامل : مدیر پشتیبانی - پشتیبان - تولید محتوا و سئو و ...)
  • آکادمی (شامل: مدرس - مدیرآکادمی - پشتیبان)

نکته قابل توجه اینکه، ممکن هست یک یوزر چندتا سطح دسترسی همزمان داشته باش. مثلا کاربر با Id=20 همزمان هم مدیرپشتیبانی در قسمت فروش محصول باشد و هم مدیر آکادمی در بخش آکادمی که انتظار میرود به بخش های دارای دسترسی فقط دسترسی داشته باشد نه بیشتر و نه کمتر

خیلی خیلی ممنونم ازتون اگه تجربیاتتون رو در اختیارم بزارید. موفق باشید✌️

ثبت پرسش جدید

پاسخ‌ها

4
محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

بهترین پاسخ

چیزی که دنبالش هستید یک نیاز خیلی رایج و پراستفاده هست و معمولا با کلیدواژه ACL (Access Control List) بهش اشاره میشه.
منطق کلی و رایج به این صورت هست که با تعریف نقش (role) و دسترسی (permission) و روابط بینشون تقریبا هر جور نیازی که داشته باشید رو پوشش میده.

مثلا نقش ها رو تعریف می‌کنید. برای هر نقش چندین مجوز دسترسی تعیین می ‌کنید. و در نهایت با اعطای یک یا چند نقش به هر کاربر اون مجوزهای دسترسی براش فعال میشه.

بعلاوه شما می‌تونید مجوز دسترسی ها رو مستقیما به خود کاربر تخصیص بدید که به این حالت میگن direct permission. یا یک مجوز خاص رو برای یک کاربر خاص مسدود کنید.

هم خودتون می تونید بنویسید و هم از پکیج های محبوب لاراولی استفاده کنید که پیشنهادم چندتا پکیج زیر هست:
https://github.com/spatie/laravel-permission
https://github.com/JosephSilber/bouncer

احسان اسدی
احسان اسدی
@assadiehsan

تخصص: برنامه نویس Back-end

درود بر شما ،‌من توی پروژه ما از پکیج spatie/laravel-permission استفاده می کنم که واقعا پکیج خوبی هست و داکیومنت کاملی هم داره.
البته سایت اصلی فیل×ر هست
https://github.com/spatie/laravel-permission

میکائیل
میکائیل
@FullStack

تخصص: برنامه نویسی سمت سرور و کلاینت

سلام دوست عزیز پکیج های مختلفی برای اینکار وجود دارد اما اگه میخواین خودتون این کار رو انجام بدین کار زیاد سختی نیست برای یوزر ها و ادمین ها توی جدولشون یه قسمت قرار بدین به اسم role و یه میدلور تعریف کنید برای ادمین ها که چک کنه اگه role مناسب داشتن بهشون خدمات بده اما اگه نداشتن اررور 404 بده و برای یوزر ها هم همینطور و توی روت ها این میدلور رو به به اون دسته از روت های مربوطه اخصاص بده اگه از پکیج هایی مثل sanctum یا passport استفاده میکنید که توکن میده میتونید با استفاده از

auth()->user()->role

به role کاربر یا ادمین دسترسی پیدا کنید که توی middleware ازش استفاده کنید و چک کنید

شاید پاسخ شما همین‌جا باشد

نیما جهان بین
نیما جهان بین
@nimajbin

تخصص: Backend Developer

خیلی ممنونم بچها
کمک بزرگی بم کردید 🌹
@FullStack @mhyeganeh @assadiehsan

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

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