PDA

View Full Version : راهنمایی در خصوص قسمتی از "سیستم مدیریت کاربران"



Jason.Bourne
پنج شنبه 17 اسفند 1391, 12:01 عصر
من یک "سیستم مدیریت کاربران" برای خودم نوشته ام که قسمتی به عنوان مدیریت گروه های کاربری دارد.

مثلا گروه هایی مانند:


کاربر عادی
کاربر ویژه



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

SadeghPro19
پنج شنبه 17 اسفند 1391, 12:11 عصر
خب اگه بخواهید بصورت دستی اینکار رو انجام دهید هم وقت زیادی گرفته میشه و هم کمی پیچیده میشه... پیشنهاد من اینه که یک تیبل توی دیتابیستون ایجاد کنید به اسم permissions و برای هر دسترسی خاص یک فیلد در نظر بگیرید و مقدارش رو با 0 و 1 پر کنید و هنگام چک کردن اگه 1 بود اجازه داشته باشه اگه 0 بود بهش اجازه نمیدیم!!! به همین راحتی!!.

$ M 3 H R D A D $
پنج شنبه 17 اسفند 1391, 12:32 عصر
سطح دسترسی جوملا و وردپرس و نگاه کن ببین چیکار میکنند
اما میتونی از رشته هایی که دوستمون صادق برزگر گفت استفاده کنی
یک رسته که هر لوکیشن از اون یک معنی و بده
http://api.joomla.org/__filesource/fsource_Joomla-Platform_Form_librariesjoomlaformfieldsaccesslevel .php.html
http://www.katcode.com/get-joomla-user-access-level/
http://forum.iranphp.org/Thread-acl
http://en.wikipedia.org/wiki/Role-based_access_control
http://www.tonymarston.net/php-mysql/role-based-access-control.html
http://phpgacl.sourceforge.net/
http://forum.downloaderha.com/showthread.php?t=62
http://fotolia.ir/press/2012/01/04/%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%DA%AF%D8%A7%D9%85-%D8%A8%D9%87-%DA%AF%D8%A7%D9%85-%DB%8C%DA%A9-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%AD%D8%B1%D9%81%D9%87-%D8%A7%DB%8C.htm/

و
http://fotolia.ir/press/2012/01/04/%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%DA%AF%D8%A7%D9%85-%D8%A8%D9%87-%DA%AF%D8%A7%D9%85-%DB%8C%DA%A9-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%AD%D8%B1%D9%81%D9%87-%D8%A7%DB%8C.htm/
https://www.google.com/search?q=joomla+user+access+level&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a#q=%D8%B3%D8%B7%D8%AD+%D8%AF%D8%B3%D8%AA%D8%B1%D8 %B3%DB%8C+%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%A7%D9% 86+php&hl=en&client=firefox-a&hs=CGt&rls=org.mozilla:en-US:official&ei=1144Ua2RO4bJswbjxoF4&start=10&sa=N&bav=on.2,or.r_gc.r_pw.r_cp.r_qf.&bvm=bv.43287494,d.Yms&fp=40e4c13fe38a5b5d&biw=1366&bih=613

Jason.Bourne
پنج شنبه 17 اسفند 1391, 13:23 عصر
خب اگه بخواهید بصورت دستی اینکار رو انجام دهید هم وقت زیادی گرفته میشه و هم کمی پیچیده میشه... پیشنهاد من اینه که یک تیبل توی دیتابیستون ایجاد کنید به اسم permissions و برای هر دسترسی خاص یک فیلد در نظر بگیرید و مقدارش رو با 0 و 1 پر کنید و هنگام چک کردن اگه 1 بود اجازه داشته باشه اگه 0 بود بهش اجازه نمیدیم!!! به همین راحتی!!.


یعنی می فرمائید یک سری permission در دیتابیس بصورت دستی تعریف کنم. سپس در قسمت های مختلف برنامه (کد برنامه) داشتن آن permission خاص را، بررسی کنم؟

مثلا در دیتابیس permision خواندن را با یک کد منحصر به فرد تعریف کنم (مثلا عدد 50 برای عمل write) و سپس در کد نویسی و در قسمت write چک کنم که کاربر هایی که کد 50 را دارند، می توانند به این صفحه دسترسی داشته باشند؟!

SadeghPro19
پنج شنبه 17 اسفند 1391, 13:31 عصر
بله تقریبا یه همچین چیزایی...
ولی من بیشتر منظورم اینجوری بود با مثال::
دیتابیس cms
تیبل permissions
خب حالا برای مثلا دسترسی داشتن کاربر ویژه به بخش انتخاب آواتار یه فیلد توی تیبل permissions میزاریم به اسم avatar_per بعد مقدارش رو 1 میزاریم و برای بقیه کاربرا 0 رو ثبت میکنیم... خب حالا میایم و توی صفحه ای که مربوط به بخش آواتار هست چک میکنیم که کاربری که الان وارد این صفحه شده آیا مجوز داره که آواتار انتخاب کنه یا نه!!! همین!!! اگه متوجه نشدی بگو تا بیشتر توضیح بدم..

Jason.Bourne
پنج شنبه 17 اسفند 1391, 14:01 عصر
بله تقریبا یه همچین چیزایی...
ولی من بیشتر منظورم اینجوری بود با مثال::
دیتابیس cms
تیبل permissions
خب حالا برای مثلا دسترسی داشتن کاربر ویژه به بخش انتخاب آواتار یه فیلد توی تیبل permissions میزاریم به اسم avatar_per بعد مقدارش رو 1 میزاریم و برای بقیه کاربرا 0 رو ثبت میکنیم... خب حالا میایم و توی صفحه ای که مربوط به بخش آواتار هست چک میکنیم که کاربری که الان وارد این صفحه شده آیا مجوز داره که آواتار انتخاب کنه یا نه!!! همین!!! اگه متوجه نشدی بگو تا بیشتر توضیح بدم..

ببینید مثلا ما دو تا permission با نام های edit و write داریم و برای هر یک، کلید منحصر بفردی تعریف می کنیم. مثلا p_edit و p_write.
حالا در صفحه Write بررسی میکنیم که آیا کاربر جاری دارای permission ی با کلید p_write می باشد یا خیر!
درست متوجه شدم؟!

T.R.G.T
پنج شنبه 17 اسفند 1391, 14:14 عصر
به نظر من بهتره یه ستون تو گروه کاربری ایجاد کنی برای دسترسی ها بعد کاربر رو به اون نسبت بدی اینطوری راحت تر هم میتونی ویرایش کنی

SadeghPro19
پنج شنبه 17 اسفند 1391, 14:17 عصر
بله دقیقا همینکاار رو هم میتونید انجام بدید...

Jason.Bourne
جمعه 18 اسفند 1391, 00:33 صبح
بله دقیقا همینکاار رو هم میتونید انجام بدید...

چکار میشه کرد که بعد از ایجاد یک permission جدید، دیگر نیاز به ویرایش کد نباشد؟!

منظورم این هست که سیستم ما صد در صد پویا شود و نیاز به تغییرات در کد توسط برنامه نویس پس از ایجاد Permission جدید توسط مدیر سیستم نباشد؟!