• 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
کمک برای نقش ها
#1
شرمنده کمک می خواستم برای ایجاد سیستم مخصوص نقش ها ، که مثل سیستم نیوک باشه و یا وی بی بولتین !

یک کاربر میتونه چند نقش داشته باشه ! خواهشن با ذکر مثال توضیح بدید . با تشکر . Big Grin

به عنوان مثال یک کاربر مدیر و کاربر دیگه ویراستار و کاربر دیگه مثلا میتونه کاربر ها مدیریت کنه ! خوب مسلما مدیر همه این نقش ها در بر میگیره ! اما کاربر جدید ممکنه دو تا از این نقش ها بر گردن بگیره ! حالا این نقش ها به صورت تسائدی زیاد میشه !
راه چیست ؟
هستی از ان من است ان را میسازم !


http://www.wallfa.com

  پاسخ
تشکر شده توسط :
#2
اینو ببین http://en.wikipedia.org/wiki/Access_control_list
اگر نگرفتی چی به چیه و اینا و دوستانم کسی نبود راهنمایی کنه بعد از ظهر میام توضیح می دم
  پاسخ
تشکر شده توسط : wallfa oia
#3
اینجا رو هم میتونی یه نگاه بندازی
http://forum.iranphp.org/Thread-acl
  پاسخ
تشکر شده توسط : hidensoft wallfa
#4
دوستان این دو روش ACL من از این روش خوشم نمیاد . به نظر خودم روش بهتری هم میتونه باشه ! واقعا ضعف های این روش ها نمیدونم ولی خوب فکر میکنم روش بهتری هم وجود داره !

دو روش بیت مسک و acl رو فکر میکنم قدیمی شده و قدیمیه ! نظر بهتری ندارید ؟ اگر ندارید در مورد همین ACL توضیح بدید ممنون میشم !
هستی از ان من است ان را میسازم !


http://www.wallfa.com

  پاسخ
تشکر شده توسط :
#5
ای بابا فکر کنم ما رو یادتون رفت !
هستی از ان من است ان را میسازم !


http://www.wallfa.com

  پاسخ
تشکر شده توسط :
#6
منظورتو متوجه نمی شم که قدیمی شده .. چیش قدیمی شده ؟
  پاسخ
تشکر شده توسط : wallfa
#7
ببین من کاری به روش های استاندارد ندارم، ولی یه روش کلاسیک هست که تو میای یه جدول نقش درست میکنی، مثل زیر:

ID - Manage User - Edit - Delete - SendMail - Make User

بغیر از ID بقیه اعضای جدول همون نقش هایی هست که شما میخواین، همش هم true , false هست(یا به عبارتی 0و1) حالا ID چیه؟ شما ID کاربر شماست، وقتی کاربر شما login میکنه، به جدول Role مراجعه میکنی، و بر اساس ID کاربر رکورد دسترسی هاش رو میخونی...
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط : wallfa
#8
دوستان حالا زیاد گیر ندید سر این موضع که چرا قدیمی شده ! توضیح بدید ببینم چی به چیه ! البته از آقا حمید ممنونم ! اما من می خواهم کامل توضیح داده بشه ! در مورد ACL
هستی از ان من است ان را میسازم !


http://www.wallfa.com

  پاسخ
تشکر شده توسط :
#9
والا من این روشهایی رو که میگن نخوندم ولی از یه همیچین روشی استفاده میکنم مشابه وردپرس هست .

توی جدول هر کاربر یه فیلدی هست که آراییه سطح دسترسی به نقاط مختلف رو توش میذارم مثلاً
کد پی‌اچ‌پی:
array(
'can_edit_post'=>,
'can_add_post'=>,
'can_add_user'=>,
'can_edit_user'=>,
'can_upload_file'=>1
); 

بعد توی هر بخش هم اول سطح دسترسی به اون بخش کاربر رو بررسی میکنم بعد نشون میدم یا نه .

مثلاً توی افزودن مطلب میاییم can_add_post رو چک میکنم اگه 1 بود اجازه میدم اگه نه یه پیغام نشون میدم که بره سال دیگه برگردهBig Grin

این روش مشابه روش آقا حمیده با این تفاوت میتونی هر وقت از پروژه خواستی به این لیست دسترسی های جدیدی بدی .
مثلاً بخش اس ام اس رو که فعال کردی به یک سری از کاربرا دسترسی بدی . یعنی یه can_send_sms اضافه کنی .

اما تنها بدی این روش اینه نمیتونی با توجه به نوع دسترسی از دیتابیس کوئری بگیری ، چون داده ها سریالیز میشن .
اگه اینو احتیاج نداری از این روش استفاده کن اگرم احتیاج داری به جای هر عضو آرایه یه فیلد بذار ، دقیقاً کاری که داش حمید گفته .

موفق باشی
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط : hamid_80386 wallfa
#10
حمیددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددددد
این چه الگوریتمیه پسر ؟ Sleepy

یعنی 10.000 تا کاربر داشته باشه باید این جدولت 10.000 دکورد داشته باشه ؟؟؟؟؟؟ HuhHuh

کاری که من میکنم ، تو همون تاپیکی که لینک دادم هم توضیح دادم . بچه ها هم راهنمایی کردن .
همین کاری که حمید میگه باشه ولی نه واسه کاربر ! واسه گروه کاربری

مثلا یه گروه کاربری داریم که میتونه edit post کنه .
یه گروه میتونه delete کنه .

که اینجوری میشه :

user_group
....................
id
can_edit_post
can_delete_post



users
...............
id
username
password
user_group_id
  پاسخ
تشکر شده توسط : hamid_80386 wallfa


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان