PDA

View Full Version : سوال: نحوه تعريف نقش كاربر و دادن مجوزهای دسترسی



iliamatin
یک شنبه 05 مهر 1388, 10:18 صبح
با سلام
در برنامه اي که به زبان PHP هست و تازه شروع به طراحی اون کردم:
در مورد نحوه تعریف نقش ها و دادن نقشهای متفاوت به کاربران و تعریف مجوز دسترسی به هر نقش از شما اساتید محترم یک راه حل مناسب برای مشکل فوق خواستارم .
با تشکر فراوان.

s_salavati2002
یک شنبه 05 مهر 1388, 15:53 عصر
با سلام
در برنامه اي که به زبان PHP هست و تازه شروع به طراحی اون کردم:
در مورد نحوه تعریف نقش ها و دادن نقشهای متفاوت به کاربران و تعریف مجوز دسترسی به هر نقش از شما اساتید محترم یک راه حل مناسب برای مشکل فوق خواستارم .
با تشکر فراوان.
سلام دوست عزیز به فوروم خوش اومدی
سیستم ها برای شناسایی هویت (Authentication) و تعیین اجازه (Authorization) از روش های مختلفی استفاده می کنند:

Authentication
1. استفاده از شناسه کاربری و رمز عبور: برای این منظور کافیه که یکبار لاگین کنی که شناسه کاربری و کلمه عبور توسط سیستم با دیتابیس مقایسه میشه و درسشن ذخیره میشه یا قبلا لاگین کرده باشی که سشن هات توسط سیستم با دیتابیس مقایسه میشه
2. استفاده از ip :که ip مورد نظر با دیتابیس مقایسه شده و ...
بازم خیلی موارد دیگه هست
(در ضمن تقسیم بندی فوق غیر علمی است و فقط دو نمونه از موارد پرکاربرد است)

Authorization
در این مورد چندین روش بنابه نیاز وجود داره
1. مجوز های نقشی
2. مجوز های سطح دسترسی

__ziXet__
یک شنبه 05 مهر 1388, 22:46 عصر
با سلام
در برنامه اي که به زبان PHP هست و تازه شروع به طراحی اون کردم:
در مورد نحوه تعریف نقش ها و دادن نقشهای متفاوت به کاربران و تعریف مجوز دسترسی به هر نقش از شما اساتید محترم یک راه حل مناسب برای مشکل فوق خواستارم .
با تشکر فراوان.
برای تعیین مجوز هر کاربر شما باید تو جدول مربوط به کاربرها در دیتابیس یک فیلد در نظر بگیرید و نقش اون کاربر رو در اون ذخیره کنید.
و یک جدول دیگه هم بسازید که در اون برای هر نقشی یه مجوز خاص در نظر گرفته بشه.
روش های زیادی برای پیدا سازی وجود داره و شما باید ببینی کدومش برات مناسب تره!

موفق باشید

zoghal
دوشنبه 06 مهر 1388, 08:18 صبح
تو گوگل به دنبال acl بگرد

iliamatin
دوشنبه 06 مهر 1388, 08:41 صبح
سلام دوست عزیز به فوروم خوش اومدی
سیستم ها برای شناسایی هویت (Authentication) و تعیین اجازه (Authorization) از روش های مختلفی استفاده می کنند:

Authentication
1. استفاده از شناسه کاربری و رمز عبور: برای این منظور کافیه که یکبار لاگین کنی که شناسه کاربری و کلمه عبور توسط سیستم با دیتابیس مقایسه میشه و درسشن ذخیره میشه یا قبلا لاگین کرده باشی که سشن هات توسط سیستم با دیتابیس مقایسه میشه
2. استفاده از ip :که ip مورد نظر با دیتابیس مقایسه شده و ...
بازم خیلی موارد دیگه هست
(در ضمن تقسیم بندی فوق غیر علمی است و فقط دو نمونه از موارد پرکاربرد است)

Authorization
در این مورد چندین روش بنابه نیاز وجود داره
1. مجوز های نقشی
2. مجوز های سطح دسترسی


سلام دوست عزيز
ازتون تشكر ميكنم
ببينيد من ميخام 4تا نقش يعني 4تاسطح دسترسي تعيين كنم(كاربر عادي،مدير،مدير گروه،محقق) و به هر كاربري يكي از اين 4 نقش تا را بدم.
اما تو برنامه هايي قبلا كه نوشته بودم همچين چيزي نياز نداشتم بخاطر همين الان تو اين مبحث مشكل دارم
با توجه به اين توضيحات اگه ميشه كمي واضحتر و بيشتر كمكم كنيد ممنون ميشم

iliamatin
چهارشنبه 08 مهر 1388, 12:20 عصر
اساتيد محترم
يعني سوالم اينقدر سخت بود؟؟
خوب كمكم كنيد ديگه

saeid99
چهارشنبه 08 مهر 1388, 12:51 عصر
سلام ..
در جدول مربوط به کاربران در دیتا بیس یه فیلد دیگه مثلا با نام valid بسازید...
برای مدیر مقدار 1
برای کاربر ساده 2
و
..
رو در نظر بگیرید ..
حال فرض می کنیم که مدیران سایت فقط میتوانند پست بدهند..
موقع ورود به بخش پست جدید فیلد valid رو چک کن اگه مقدارش 1 بود اجازه پست جدبد رو به کاربر بده در غیر این صورت خیر..
امیدوارم مفید باشه...

iliamatin
شنبه 11 مهر 1388, 12:42 عصر
سلام ..
در جدول مربوط به کاربران در دیتا بیس یه فیلد دیگه مثلا با نام valid بسازید...
برای مدیر مقدار 1
برای کاربر ساده 2
و
..
رو در نظر بگیرید ..
حال فرض می کنیم که مدیران سایت فقط میتوانند پست بدهند..
موقع ورود به بخش پست جدید فیلد valid رو چک کن اگه مقدارش 1 بود اجازه پست جدبد رو به کاربر بده در غیر این صورت خیر..
امیدوارم مفید باشه...


سعيد جان خيلي ممنون
بله فهميدم بايد چجوري نقش را تعريف كنم
اما توي دسترسي دادن هنوزم مشكل دارم.مثلا ميخام مدير داخلي مثلا فقط يه بخشايي از فرمرا ببينه مدير گروه يه بخشاي ديگه را و....
اينا را بايد چجور تعريف كنم؟؟
الان پروژم تقريبا تكميل شده فقط لنگ همين بخشم
اكه براي اين دسترسي(اينكه چجور باشه و كدهاش چجور نوشته بشه) بتوني كمكم كني خيلي ممنونت ميشم
منتظر جوابت هستم

saeid99
شنبه 11 مهر 1388, 13:00 عصر
در ابتدای هر صفحه که می خوای نمایش صفحه رو محدود کنی مقدار valid رو از دیتا بیس بگیر اگه کاربر مجوز ورود به صفحه رو نداشت پیغام خطا بده و یا به صفحه دیگه انتقالش بدید

saeid99
شنبه 11 مهر 1388, 13:12 عصر
باید از کدی همانند کد زیر استفاده کنی ..

$con=mysql_connect("server name","user name","pass");
mysql_select_db("db_name",$con);
$result=mysql_query("SELECT valid,username FROM users WHERE username=1");
$row=mysql_fetch_array($result);
if ($row['valid']==1)
echo '<input type="text" value="admin" >';
else if ($row['valid']==2)
echo '<input type="text" value="user" >';
mysql_close($con);

iliamatin
شنبه 11 مهر 1388, 13:16 عصر
در ابتدای هر صفحه که می خوای نمایش صفحه رو محدود کنی مقدار valid رو از دیتا بیس بگیر اگه کاربر مجوز ورود به صفحه رو نداشت پیغام خطا بده و یا به صفحه دیگه انتقالش بدید

ممنون
ببين اينم اوكي
اما اينكه مثلا كاربري كه valid اون 1 هست به چه جاهايي دسترسي داشته باشه را چجور تعريف كنيم؟
يعني شما ميگي مثلا توي صفحه فرمي كه ارسال شده من اول صفحه valid را چك كنم و همونجا دستوراتي بنويسم كه اگه مثلا valid اون 1 بود اين بخشها از ديتا بيس خونده بشه و اگه valid اون 2 بود فلان بخشا؟؟
درسته؟؟
اگه منتظورت اين باشه يعني اونوقت من توي اون صفحاتي كه ميخام براي كاربران مختلف محدوديت داشته باشه كلي كد بنويسم.

saeid99
شنبه 11 مهر 1388, 13:23 عصر
اگه منتظورت اين باشه يعني اونوقت من توي اون صفحاتي كه ميخام براي كاربران مختلف محدوديت داشته باشه كلي كد بنويسم.
البته اینایی که من نوشتم ایده من بوده نه بهترین ایده..
برای جلوگیری از تکرار کد ها از توابع و include , requre استفاده کنید..
و کار بهتر اینکه valid رو در سشن بریزید و بعد چک کنید..

azam2005
یک شنبه 17 اردیبهشت 1391, 18:14 عصر
با سلام
اگر بخواهید روی سطر های خاص هم مجوز دهید چکار می کنید؟
مثلا اگر بخواهید یک کاربر پس از ورود به سایت امکان ویرایش - مشاهده - حذف و ... رکوردهای خاصی را داشته باشد مثلا :

1-همه رکورد های یک جدول را
2- رکوردهایی که خودش ثبت کرده
3-رکوردهای که پرسنل ثبت کرده
4- رکوردهایی که همکار ثبت کرده و ...