PDA

View Full Version : سوال: ایجاد و تعیین سطح دسترسی در برنامه



ahmadbh
پنج شنبه 29 تیر 1391, 12:38 عصر
با سلام خدمت استادان عزیز
برای برنامه ای که نوشتم میخواهم سطح دسترسی ایجاد کنم تو سایت چیزی پیدا نکردم اگه ممکنه مرا راهنمایی کنید اگه سورس کسی آماده داره نیز تشکر میکنم برای من بفرسته

firststep
پنج شنبه 29 تیر 1391, 14:42 عصر
سلام خوب اینجا شما در حال ساخت یک نام کاربری هستید خ.ب بعد از این عمل این باعث می شه که یک رکورد از اطلاعات وراد شده در این صفحه به دیتابیستون منتقل بشه
که حتماٌ یک فیلد هم از اعمل دسترسی مثلاٌ همین فروشنده و خریدار و .... در اون گنجانده شده
بعد از ورود به برنامه با نام کاریری فقط کافیست دریابید که سطح دسترسسی کدامیک است
خوب نسبت به اینکه فروشنده چه کارهایی می تواند انجام دهد تمامی دکمه به غبر از دکمه های مورد نیازیش (منظور دکمه تاییدهاست) رو غیر فعال می کنه همین...

Felony
پنج شنبه 29 تیر 1391, 17:06 عصر
3 تا جدول با نام های Users و Roles و Permissions به صورت زیر 99% مواقع بهترین پیاده سازی برای کاربران و دسترسی های اونها در یک برنامه میتونه باشه :

جدول Users شامل فیلد های :

ID
Username
Password
Role_ID

جدول Roles شامل فیلد های :

ID
Title

و جدول Permission شامل فیلد های :

ID
Role_ID
Section
Access


جدول Roles سطح های دسترسی رو نگهداری میکنه ، مثلا مدیر سیستم ، منشی و ...
جدول Users نام های کاربری و کلمه عبور اعضاء و سطح دسترسی اونها رو ( توسط Role_ID )
جدول Permissions دسترسی های هر سطح کاربری رو تعیین میکنه ؛ Section نام بخش مورد نظر یا یک شماره برای اون بخش هست که در نظر گرفتیم و Access هم از نوع Bit که اگر کاربر دسترسی داشت 1 و اگر نداشت 0

حالا فرض کنید که ما تو برناممون برای هر بخش یک عدد در نظر گرفتیم ( به صورت منطقی ) ؛ مثلا صندوق عدد 7
حالا مثلا ID سطح دسترسی "مدیر" در جدول Roles عدد 1 هست
ID مربوط به کاربر "حسین سهیلی" در جدول Users عدد 1 هست و سطح دسترسی این کاربر مدیر هست ( Role_ID = 1 )
حالا میخوایم تو جدول Permission به این سطح دسترسی ( مدیر ) حق باز کردن صندوق بدیم که در این صورت Role_ID در جدول Permission میشه 1 ؛ Section میشه 7 و Access هم میشه 1 که یعنی کاربرانی که Role_ID اون ها 1 هست به بخش 7 دسترسی دارن ، برای گرفتن دسترسی هم کافی هست مقدار فیلد Access مربوط به این رکورد رو 0 کنید .

برای بررسی تو برنامه هم کافیه سطح دسترسی کاربر جاری رو بگیرید ( Role_ID ) و از جدول Permissions رکوردهایی که سطح دسترسیشون با سطح دسترسی کاربر برنامه یکی هست و Section اونها 7 هست و Access اونها 1 هست رو استخراج کنید ؛ اگر رکوردی برگشت یعنی کاربر دسترسی داره و در غیر این صورت خیر .

ahmadbh
دوشنبه 02 مرداد 1391, 11:34 صبح
برای بررسی تو برنامه هم کافیه سطح دسترسی کاربر جاری رو بگیرید ( Role_ID ) و از جدول Permissions رکوردهایی که سطح دسترسیشون با سطح دسترسی کاربر برنامه یکی هست و Section اونها 7 هست و Access اونها 1 هست رو استخراج کنید ؛ اگر رکوردی برگشت یعنی کاربر دسترسی داره و در غیر این صورت خیر .
با تشکر
چطور میشه استخراج کنیم و چگونه این عملیات را با کد بنویسیم اگه نمونه سورسی باشه ممنون میشم

gbg
سه شنبه 03 مرداد 1391, 09:13 صبح
خب باید یه کوری بنویسی دیگه ، با دستور select
در ضمن توضیحات آقا ماهان خیلی کامل بود و فکر نکنم جای دیگه (به فارسی) گیر بیاری
من فقط دو مورد رو اضافه کنم
1- بعضی وقت ها کاربر به یک یا چند Section خارج از Role دسترسی داره
2- بعضی وقت ها کاربر به یک یا چند Section داخل Role دسترسی نداره
اگه می خوای کامل باشه باید این رو هم در نظر بگیری ، من همیشه یه جدول هم به نام ExtraPermission دارم که چهار فیلد اصلی داره که میگیه کاربر X در بخش Y به دسترسی Z دسترسی دارد یا ندارد

ahmadbh
سه شنبه 03 مرداد 1391, 09:48 صبح
با تشکر از همه
کسی سورس آماده نداره آخه اطلاعات کافی در این زمینه ندارم

ahmadbh
یک شنبه 08 مرداد 1391, 10:24 صبح
با تشکر
کسی در مورد کد نویسی میتونه به من کمک کنه که چطور باید اینکار را انجام بدم

gbg
یک شنبه 08 مرداد 1391, 13:03 عصر
زحمت نوشتن رو خودت باید بکشی
توهین نشه ولی نوشتنش آسونه اگه نمی تونی بنویسی برو سراغ کارای ساده تر
با این حرفت آدم به اون عکسی هم که گذاشتی شک میکنه خودت نوشته باشی

ahmadbh
یک شنبه 08 مرداد 1391, 13:47 عصر
عکس بالا را از یک برنامه حسابداری گرفتم
من زیاد تسلت بر کد نویسی ندارم اگه کسی میتونه زحمتشو بکشه

gbg
یک شنبه 08 مرداد 1391, 21:18 عصر
فرض کن این قسمت رو کسی نوشت برات بقیش چی؟
بیش رو هم باز باید از بقیه کمک بگیری باز

بهتره شروع کنی و هر قسمت رو نفهمیدی کمک بگیری
بعیده می دونم کسی برات بنویسه
تو سایت بعضی ها برنامه هایی نوشتن و سورسش رو گذاشتن
بگرد شاید کی پیدا کردی

Felony
دوشنبه 09 مرداد 1391, 08:55 صبح
بارها گفته شده ؛ اینجا ماهی به کسی داده نمیشه ، ماهی گیری یاد داد میشه ، شما برو سراغ موارد زیر و بعد از اینکه باهاشون آشنایی پیدا کردی شروع به کار کن و مشکلاتت رو مطرح کن :

نحوه نوشتن دستورات ساده T-SQL مثل SELECT, Update, Insert, Delete و نحوه نوشتن Inner Join .

نحوه کار با ADOQuery در دلفی و متدهایی اون مثل Insert , Edit, Post, Delete, FieldByName و ...

در آخر اگر خواستید کار درست و درمونی تحویل بدید نحوه نوشتن StoredProcedure در SQL Server و نحوه کار با کامپوننت ADOStoredProcedure در دلفی .

وقتت رو هم اینجا هدر نده ، کسی برات کد نمینویسه .

gbg
دوشنبه 09 مرداد 1391, 11:00 صبح
همین Gold یه برنامه اینجا (http://barnamenevis.org/showthread.php?206638-%D8%B3%D9%88%D8%B1%D8%B3-%DA%A9%D8%A7%D9%85%D9%84-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%AD%D8%B3%D8%A7%D8%A8%D8%AF%D8%A7%D8%B1%DB%8C-%D9%81%D8%B1%D9%88%D8%B4%DA%AF%D8%A7%D9%87%DB%8C) گذاشته من دانلود نکردم شاید کاربران رو داشته باشه و حتمن اگه سورس رو بخونی بفهمی کمک می کنه بهت

ahmadbh
شنبه 14 مرداد 1391, 10:55 صبح
چیزی که می خواستم نداشت