PDA

View Full Version : گفتگو: سایت چند کاربره !



masiha68
چهارشنبه 16 بهمن 1392, 18:36 عصر
سلام
من واسه سایتم میخوام چندتا یوزر تعریف کنم و به این شکل عمل می کنم
اول میام یه سری نقش تعریف میکنم و دسترسی مجاز به بعضی پیج ها رو بهشون میدم مثلا نقش ویرایشگر و دسترسی به پیج های (1 و5 و 8 و 11)_(قبلا واسه هر پیج یه ای دی تعریف کردم ) حالا وقتی کاربر لاگین می کنه نام کاربریشو از دیتابیس می گیرم و توی یه سشن می ریزم و همچین پیج هایی رو که مجاز به مشاهد هست به صورت یک ارایه در یه سشن دیگه میزارم و توی هر پیج ای دی پیج رو می گیرم و با مقادیر سشن بررسی می کنم در صورتی که مجاز به مشاهده باشه که خوبه در این این صورت ریدارکت میشه به یه پیج دیگه

این کاری که من می کنم چقد منطقی هستش و اینکه روشی که به کار بردم چه مشکلاتی داره و ایا روش بهتری هست ؟
ممنون می شم جواب بدین

saidshp
چهارشنبه 16 بهمن 1392, 21:20 عصر
اگر از mvc استفاده می کنید تعریف ای دی برای هر پیج شاید اصولی نباشه و گسترشش سخت باشه.
بنده با acl سیمفونی که کار کردم این طور عمل میکنه که برای یه مسیر (منبع) یک یا چند نقش رو میشه تعریف کرد که اونها می تونن دسترسی داشته باشن به اون مسیر مثلا یه نقش داریم به نام ROLE_ADMIN که می تونه دسترسی داشته باشه به هر مسیری که اولش این هست.


^/admin

حالا فرض کن یه مدیر اصلی داری که باید بتونه کاربرها رو مدیریت کنه پس یه نقش تعریف می کنیم به نام مثلا ROLE_SUPER_ADMIN برای این نقش یه منبع یا همون مسیر تعریف می کنیم که میشه این


^/admin/user

حالا فقط ROLE_SUPER_ADMIN به این مسیر و زیر مسیرهاش دسترسی داره و نهROLE_ADMIN .
خوب می بینی گسترش خیلی راحته البته در این مثال مربوط بود به سیمفونی که بستر کار رو اماده کرده.

masiha68
چهارشنبه 16 بهمن 1392, 22:35 عصر
خب
من از mvc استفاده نمی کنم و فقط oop ....
راه دیگه ای هست ؟ یه چند جای دیگه هم دیدم که acl رو پیشنهاد کردن ولی نمی دونم میشه با oop پیاده سازیش کرد یا نه

saidshp
چهارشنبه 16 بهمن 1392, 23:53 عصر
بله بدون mvc هم میشه فقط بستگی به معماری برنامت داره که چطور پیاده شده تا منابع (پیج) رو چطور تعریف کنی

shahriyar3
پنج شنبه 17 بهمن 1392, 00:22 صبح
یه role تعریف کن یه rule بعد همه رو بریز توی یک سشن
مثلا role کاربر admin هست دسترسی به page_id شماره 1 داره با مجوز های CRUD
توی سشن یک ردیف ایجاد میشه مثلا این شکلی
username=>admin
role=>admin
page_id=>1
rule=>CRU (ادمین به صفحع 1 فقط دسترسی ایجاد ویرایش و خوندن داره مجوز حذف نداره)
موقع لاگین کل دسترسی ها با مجوز ها رو همین شکلی ذخیره میکنی تو کل صفحات ازش استفاده میکنی.

masiha68
پنج شنبه 17 بهمن 1392, 09:09 صبح
یه role تعریف کن یه rule بعد همه رو بریز توی یک سشن
مثلا role کاربر admin هست دسترسی به page_id شماره 1 داره با مجوز های CRUD
توی سشن یک ردیف ایجاد میشه مثلا این شکلی
username=>admin
role=>admin
page_id=>1
rule=>CRU (ادمین به صفحع 1 فقط دسترسی ایجاد ویرایش و خوندن داره مجوز حذف نداره)
موقع لاگین کل دسترسی ها با مجوز ها رو همین شکلی ذخیره میکنی تو کل صفحات ازش استفاده میکنی.

اینکه دقیقا اون چیزی بود من پیاده ش کردم . دنبال یه طرح کامل تر هستم

masiha68
پنج شنبه 17 بهمن 1392, 09:09 صبح
بله بدون mvc هم میشه فقط بستگی به معماری برنامت داره که چطور پیاده شده تا منابع (پیج) رو چطور تعریف کنی

میشه بیشتر توضیح بدین . چون تا جایی که میدونم فقط توی mvc ما بر اساس مسیر کار می کنیم