راکت
حل شده

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

10 پاسخ

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

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

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

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

@ali.bayat
@hesammousavi
@elyasbeshkani

ثبت پرسش جدید

پاسخ‌ها

10
علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

بهترین پاسخ

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

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

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

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


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

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

تخصص: Senior Backend Developer

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

Reza Jashnsaz
Reza Jashnsaz
@rezajashnsaz0011

تخصص: مهندس نرم افزار

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

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

coarad supp
coarad supp
@coaradsupp

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

@ali.bayat
@mohsenbostan

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

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

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

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

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

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

coarad supp
coarad supp
@coaradsupp

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

@ali.bayat

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

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

@endrole

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

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

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

coarad supp
coarad supp
@coaradsupp

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

@ali.bayat

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

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

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

رافق مجتهدزاده
رافق مجتهدزاده
@rafig

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

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

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

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