PDA

View Full Version : سوال: پیاده سازی تعیین سطح دسترسی کاربران در c# با treeview



sm_1366
سه شنبه 23 شهریور 1400, 23:41 عصر
با سلام خدمت دوستان
من میخواستم سطح دسترسی کاربران رو با treeview پیاده سازی کنم
و سطح دسترسی که میخوام بسیار بزرگ و دارای جزئیات زیادی هست
روشی که به ذهن خودم رسیده بسیار وقت گیر و پیچیده هست
من روشم رو مینویسم اگر کسی از دویتان روش بهتری تو ذهنش داره ممنون میشم بگه

روش من اینه که
اول به تعداد عملیاتی که قراره کاربر دسترسی داشته باشه فیلد توی جدول یوزر ساختم مثلا ۲۰ تا فیلد از نوع bit که مقدار ۰ یا ۱ برگردونه
و بعد همون عملیات رو مثلا ۲۰ عمل رو به صورت node تو treeview تعریف میکنم ....(به ازای هر فیلد جدول یه نود توی treeview تعریف میشه)
یعنی در treeview بیستا نود خواهیم داشت
بعد هنگام درج تو دیتابیس میگم اگر خاصیت checked اون نود true بود عدد ۱ رو وارد فیلد مربوطه ش کنه تو جدول
و اگر false بود عدد صفر بذاره ...


این کار خیلی وقت گیره
حالا صرفا اگر فقط تعیین دسترسی بود مشکلی نداشت چون ما عملیات ویرایش این دسترسی ها رو هم باید داشته باشیم به نظرم لود کردن این اطلاعات برای ویرایش ممکنه با روشی که تو درج توضیح دادم وقت گیر باشه
مثلا برا ویرایش دوباره دونه دونه فیلدهارو چک کنه اگر ۱ بود نود اون فیلد رو تو treeview برابر true کنه و ...

مهندسای ‌پیج نظر بدید راه من درسته یا اینکه راه بهتری هم هست؟

ShayanFiroozi
پنج شنبه 01 مهر 1400, 22:30 عصر
سلام ،

موضوع اینجا treeview نیست ! چون شما با FrontEnd پروژه مشکلی ندارین ، BackEnd مهمه.
TreeView نباشه هم خیلی فرقی نمیکنه ، 20 تا CheckBox معمولی هم میتونن true , false برگردونن.

شما یه کلاس تعریف کن با 3 فیلد :

UserID , AccessTitle , AccessValue

یک تابع برای Insert محتویات این کلاس به دیتابیس بنویس ، یک تابع برای Edit و یک تایع برای Load.

چندان پیچیده نیست ، 2..3 ساعته پیاده سازی میشه.

mmbguide
پنج شنبه 01 مهر 1400, 23:00 عصر
سلام

روش آقای ShayanFiroozi به نظر خیلی بهینه هستش. ولی خودم تو یکی از برنامه هام همون روش شما را پیاده کردم و یکم وقتگیر بود ولی خوب جواب داده و ویژگی هایی مثل Add, Delete, Edit, Print, ... برای هر کاربر قابل تنظیم هستش. البته در جایی هم میشد تنظیم کنید که برای چه بخش هایی قابلیت Add و برای چه بخش هایی قابلیت Delete داره. یک مقدار وقتگیر بود ولی بسیار کارآمد بود و براحتی Admin برنامه میتونست برای بخش های مختلف برای کاربران مختلف دسترسی های متفاوت تعیین کنه. البته در این خصوص خودمم یک سوال دارم که احتمالا در یک پست جداگانه مطرح میکنم.