نیما جهان بین
2 سال پیش توسط نیما جهان بین مطرح شد
4 پاسخ

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

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

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

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

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


ثبت پرسش جدید
محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 2 سال پیش مطرح شد
1

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

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

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

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


احسان اسدی
تخصص : برنامه نویس Back-end
@assadiehsan 2 سال پیش مطرح شد
1

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


میکائیل
تخصص : برنامه نویسی سمت سرور و کلاینت
@FullStack 2 سال پیش آپدیت شد
0

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

auth()->user()->role

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


محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 2 سال پیش مطرح شد
1

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

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

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

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


نیما جهان بین
تخصص : Backend Developer
@nimajbin 2 سال پیش مطرح شد
1

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


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

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