parsa
4 سال پیش توسط parsa مطرح شد
10 پاسخ

نحوه عملکرد رول و پرمیشن در لاراول

سلام دوستان گل وقت بخیر

ببخشید میشه برام توضیح بدید رول و پرمیشن چطوری کار میکنن ؟ من یه سری کد ها رو نگاه کردم ولی راستش متوجه نشدم

اگر هم لینک خوبی سراغ دارید هم ممنون میشم به اشتراک بذارید

== نمیخام از پکیج استفاده کنم لطفا پیشنهاد ندید ==

@ali.bayat
@hesammousavi
@elyasbeshkani


ثبت پرسش جدید
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 4 سال پیش مطرح شد
1

به شکل ساده بخوام بگم..
ما در اپلیکیشن هامون به پرمیشن های مختلف احتیاج داریم.. مثلا آیا این کاربر مجاز هست فلان ریسورس رو ویرایش کنه یا نه؟

پس برای مدیریت این گونه موارد Permission ها یا مجوزهای مختلف تعریف میکنیم (مثلا ویرایش یک پست، یا حذف کامنت های پست)

سپس میتونیم چندین پرمیشن رو در یک گروه قرار بدیم و یک نام به این گروه اختصاص بدیم.. که هر گروه میشه یک Role
(مثلا Role کاربر یا ادمین)

و در نهایت میتونیم Role های مختلف رو به کاربرها اختصاص بدیم


حالا اگر نمی‌خواهی از پکیج استفاده کنی باید

  • این جداول رو خودت بسازی
  • روابط بین مدل ها رو بوجود بیاری
  • و Authorization رو روی ریسورس های مختلف اعمال کنی

محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 4 سال پیش مطرح شد
2

@miladfathi021
تعریف آقای بیات بسیار دقیق هستش. اما درمورد این که نمی خواهید از پکیج استفاده کنید، به نظرم کار اشتباهیه. چونکه پکیج های خیلی قدرتمندی برای اینکار ساخته شده که هم از لحاظ امنیت هم از نظر کارایی بسیار مفید هستند.
اگر سایتی دارید که بخواهید خودتون براش این کار رو انجام بدید، هم خیلی زمان بره هم خیلی پیچیده. پیشنهاد میکنم از پکیج زیر استفاده کنید :
https://github.com/spatie/laravel-permission


Reza Jashnsaz
تخصص : مهندس نرم افزار
@rezajashnsaz0011 4 سال پیش مطرح شد
1

تو وب اپلیکیشن های پیچیده هر کاربر میتونه چنتا نقش داشته باشه مثلا
مدیر بخش نظرات و مدیر بخش سوالات
هر نقش هم میتونه چنتا دسترسی داشته باشه مثلا مدیر بخش سوالات میتونه سوالو تایید کنه یا حذف کنه یا جواب بده یا غیر فعال کنه و ...
پیاده سازی صحیح و بهینه اش طول میکشه و لازم نیس دوباره چرخ رو اختراع کرد !
از پکیج استفاده کنید


coarad supp
تخصص : برنامه نویس لاراول
@coaradsupp 4 سال پیش مطرح شد
0

@ali.bayat
@mohsenbostan

برای اینکه از بخوایم از multi auth استفاده کنیم، این پکیج امکانش رو اضافه کرده درسته؟

https://github.com/spatie/laravel-permission

اونوقت الان برای هر پرمیشن میخوایم یه عنوانی بنویسیم که خواناتر باشه واسه مدیر که بتونه بفهمه این پرمیشن برای چیه، ینی خودمون یه فیل به جداول اضافه کنیم؟


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 4 سال پیش مطرح شد
1

@coaradsupp
احتیاجی نیست فیلد اضافه کنید
میتونید Role هایی مثل ویرایشگر یا Moderator یا هر نام دیگه دوست دارید بسازید
سپس پرمیشن ها رو برای اون Role مشخص کنید
و از اون Role برای کاربرانی که میخواهید استفاده کنید

و یا اینکه مستقیما به کاربر پرمیشن بدید


coarad supp
تخصص : برنامه نویس لاراول
@coaradsupp 4 سال پیش مطرح شد
0

@ali.bayat

ینی توی کد ها به این شکل بنویسیم؟

@role('ویرایشگر')

@endrole

یه خورده زشته نیس؟😐😐😐


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 4 سال پیش مطرح شد
1

@coaradsupp
منظور شما دایرکتیوهای داخل ویو هست
خوب میتونی داخل سورس پکیج این دایرکتیو رو پیدا کنی و عملکردش رو عوض کنی


coarad supp
تخصص : برنامه نویس لاراول
@coaradsupp 4 سال پیش مطرح شد
0

@ali.bayat

ممنون، ولی اگه یه فیلد فقط واسه نمایش عنوان پرمیشن و رول توی جدول قرار بدیم صرف اینکه اسم اون رو ذخیره کنه و برای مدیر نمایش بده، مشکلی پیش میاد؟چون دیگه نخوایم توی پکیج دست ببریم؟


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 4 سال پیش مطرح شد
1

@coaradsupp
فکر نکنم مشکلی پیش بیاد


رافق مجتهدزاده
تخصص : برنامه نویسی php
@rafig 2 سال پیش مطرح شد
0

با این پکیج ها می شه یه پنل تخصیص سطح دسترسی ایجاد کرد. یعنی مثلا یک نقش جدید ایجاد کرد و دسترسی های مورد نظر رو تیک زد و براش فعال کرد؟


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

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