PDA

View Full Version : سوال: اعمال محدودیت های دسترسی به برخی کاربران سایت در php



Taimaz_222
پنج شنبه 02 آذر 1391, 22:10 عصر
دوستان سلام

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

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

اما کاربران دیگر با توجه به تخصصشون و کاری که بهشون سپرده میشه دارای محدودیت های دسترسی به قسمت هایی از سایت هست.

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

پیشاپیش از تمامی دوستان سپاسگذارم.

tux-world
پنج شنبه 02 آذر 1391, 23:45 عصر
تو دیتابیس باید برای هر یوزر قسمتهای مجاز رو تعریف کنید و تو لاگین اون قسمتهایی که براش مقدور هستش رو باید لود کنید برای هر یوزر انگار شما کانفیگ کردید. برای یه قسمتی از برنامم این کار رو کردم کار یه خورده سختیه ولی این بهترین روشی هستش که پیاده سازی کردم. اینطوری
مثلا بازدید از پروژه - انجام پروژه - ارسال پیغام به دیگر کاربران
اینها رو تو یه جدول بنویسید بعد برای یوزر آی دی های اون ها رو تو جدولش تنظیم کنید مثلا 1,2,4 تو php اون ها اکسپلودشون کنید و ببینید اگه دسترسی یوزر براش هست یا خیر

mrgraphy
جمعه 03 آذر 1391, 08:19 صبح
سلام دوست عزیز.
یک راه بهتر به جز این راهی که tux-world (http://barnamenevis.org/member.php?17548-tux-world)گفتند وجود داره.
به شکل که شما مییاد و 4 گروه کاربری(حالا هر چندتا که دلتون خواست) تعریف میکند و هرگروه طبق دسته بندی و دسترسی که تعیین کردید فقط به قسمت خاصی از سایت دسترسی پیدا میکنه.
مثلا کاربر x تو گروه 2 و کاربر y تو گروه 3 و الا آخر.
اگز طبق روشی که دوستمون گفتن بخوایید پیش برید باید تک تک برای هر کاربر تو دیتا بیس مشخص کنید که کی به کجا دسترسی داشته باشه که این کار هم زمان گیره و هم با عث سنگین شدن دیتابیس در تعداد کاربران بالا و افت سرعت میشه اما اگر از گروه بندی برای کاربران استفاده کنید فقط با یک بار تعریف یک گروه و قرار دادن هر کاربر در گروه خاصی کار انجام میشه.
امیدوارم کمکتون کرده باشم.
موفق باشید.

tux-world
جمعه 03 آذر 1391, 09:50 صبح
شاید اونی که من گفتم یه خورده سخت تر باشه ولی قدرت مانور بیشتری بهتون میده چون هر موقع خواستید محدودیتهای خاص رو هم میشه اعمال کرد و یا از بین برد. و اینکه نوع برنامه نویسیتون هم مهم هستش که چطوری از این روش استفاده کنید. گروه بندی همچون CMS هایی که هستش مفیده تره ولی محدودیتشون بیشتره البته نمیگم بده هاااا ولی این دوستمون میتونن از هر دو روش استفاده کنن

Taimaz_222
جمعه 03 آذر 1391, 10:59 صبح
تو دیتابیس باید برای هر یوزر قسمتهای مجاز رو تعریف کنید و تو لاگین اون قسمتهایی که براش مقدور هستش رو باید لود کنید برای هر یوزر انگار شما کانفیگ کردید. برای یه قسمتی از برنامم این کار رو کردم کار یه خورده سختیه ولی این بهترین روشی هستش که پیاده سازی کردم. اینطوری
مثلا بازدید از پروژه - انجام پروژه - ارسال پیغام به دیگر کاربران
اینها رو تو یه جدول بنویسید بعد برای یوزر آی دی های اون ها رو تو جدولش تنظیم کنید مثلا 1,2,4 تو php اون ها اکسپلودشون کنید و ببینید اگه دسترسی یوزر براش هست یا خیر

ممنون از توضیحاتت دوست عزیز اما یه سوال ؟ یعنی من به ازای هر کاربر که میاد و ثبتنام می کنه باید بصورت پویا خودکار یه جدول هم برای دسترسی هاش داشته باشم؟امکانش هست روشتون رو بهتر توضیح بدید ؟

Taimaz_222
جمعه 03 آذر 1391, 11:03 صبح
سلام دوست عزیز.
یک راه بهتر به جز این راهی که tux-world (http://barnamenevis.org/member.php?17548-tux-world)گفتند وجود داره.
به شکل که شما مییاد و 4 گروه کاربری(حالا هر چندتا که دلتون خواست) تعریف میکند و هرگروه طبق دسته بندی و دسترسی که تعیین کردید فقط به قسمت خاصی از سایت دسترسی پیدا میکنه.
مثلا کاربر x تو گروه 2 و کاربر y تو گروه 3 و الا آخر.
اگز طبق روشی که دوستمون گفتن بخوایید پیش برید باید تک تک برای هر کاربر تو دیتا بیس مشخص کنید که کی به کجا دسترسی داشته باشه که این کار هم زمان گیره و هم با عث سنگین شدن دیتابیس در تعداد کاربران بالا و افت سرعت میشه اما اگر از گروه بندی برای کاربران استفاده کنید فقط با یک بار تعریف یک گروه و قرار دادن هر کاربر در گروه خاصی کار انجام میشه.
امیدوارم کمکتون کرده باشم.
موفق باشید.

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

mtchabok
جمعه 03 آذر 1391, 11:32 صبح
سلام
در ابتدا یه جدول برای تمامی گروه های کاریتون می سازید و به هر گروه یه عدد و یا نام منحصربه فرد بدید تا بشه ازش برای الصاق به هر کاربر استفاده کرد .
در ادامه یه جدول برای کاربران می سازیم و به همراه فیلدی که باید معرف گروه کاری اون کاربر در این جدول قرار میدیم .

tux-world
جمعه 03 آذر 1391, 13:01 عصر
خوب نه. شما یه جدول دارید به نام گروه بندی کاربرا
توش مواردی رو که میخوایید کاربرا دسترسی داشته باشن رو قید میکنید مثلا ورود به سایت - ویرایش - درج خبر
اینها هر کودوم یه آی دی دارن خوب؟ تو جدول کاربران فیلد کاربر شما آی اینایی رو که میخوایید بهشون دسترسی بدید رو تو یه ستون از اون جدول مینویسید و هنگام لاگین کاربر قسمتهایی که براش آزاد هست رو فعال میکنید