PDA

View Full Version : سطح دسترسی برای متدهای کنترلر و ایجاد منو بر اساس آن



IMANAZADI
جمعه 06 اسفند 1395, 07:23 صبح
سلام

چطوری میشه دوستان برای متدهای هر کنترلر سطح دسترسی تعریف کرد و بر اساس اون سطح دسترسی منوها (navigation) ساخته بشه ؟؟

فرض کنید یک کنترلر شامل 10 تا اکشن باشه که میخوایم همه این 10 تا برای کل یوزرها اجرا نشه و هر یوزر با توجه به سطح دسترسیش بتونه اکشن های هر کنترلر رو اجرا کنه
این یکطرف قضیه

طرف دیگه اینکه میخوایم منوهای سایت بر اساس سطح دسترسی کاربران با اکشن های کنترلر ایجا د بشن

مثال :

یک سایت برای هر یوزرش یک منو خاص نشون میده
یک منو برای یوزرهای معمولی
یک منو برای کاربرائی که اطلاعات سایت (دیتا) وارد میکنن
یک منو برای کاربرای که دیتا ها رو تایید ، اصلاح و ... انجام میدن
یک منو برای مدیر --> خود مدیر به چند بخش تقسیم میشه یک منو برای مدیر کنترل کیفی _ یک منو برای مدیر فنی _ یک منو برای مدیر اداری _ یک منو برای مدیر مالی _ که هر کدوم میتونن بخشهای خودشو ن رو مدیریت کنن
یک منو برای انبارداری
یک منو برای ادمین
و ......

numberone1
جمعه 06 اسفند 1395, 15:43 عصر
سلام

این یه بحث مجوز دسترسی هست و خیلی ربطی به کدایگنایتر نداره , شما با هر فریم ورک دیگه ای یا هر برنامه ی دیگه ای حتما این مشکل و دارین.
چندین نوع روش بررسی دسترسی داریم معروف ترین هاش acl , rbac
راجع به این الگوریتم ها مطالعه کن بعد با هر سیستمی خواستی پیاده سازیشون کن. کتابخانه های اماده هم برای کدایگنایتر هست میتونی ازشون استفاده کنی

IMANAZADI
شنبه 07 اسفند 1395, 13:13 عصر
دوست عزیز من role base control list را تشکلیل دادم ولی نمیدونم بر اساس او ن چطوری منوی داینامیک بسازم 

numberone1
شنبه 07 اسفند 1395, 16:01 عصر
دوست عزیز من role base control list را تشکلیل دادم ولی نمیدونم بر اساس او ن چطوری منوی داینامیک بسازم 

خوبه , من الان فرض میکنم شما یه role داری به اسم مدیر فنی و این رول باید یک ارایه از لیست کنترل های مجازش داشته باشه
حالا یا منو های سایتت استاتیک هست که باید با if و in_array چک کنی ببینی دسترسی داره یا نه اگر هم منو ها داینامیک هست میریزی توی ارایه و با یه حلقه foreach تو در تو منو رو چاپ میکنی