PDA

View Full Version : ایجاد یکسری سطح دسترسی های انعطاف پذیر



armanb2013
چهارشنبه 13 فروردین 1393, 23:52 عصر
سلام
اگر بخواهیم سطح دسترسی های کاربر رو خیلی انعطاف پذیر تنظیم کنیم طوری که ادمین بتونه به کاربری که در نقش خاصی هست یکسری مجوز ها رو بده و یا ازش سلب کنه ، دقیقا مثل تصویری که در زیر می بینید ؛ با چه منطقی این موضوع قابل پیاده سازی است .
توی فیلم آموزشی قابلیت اضافه کردن یک کاربر به یک پروژه با استفاده از rbac و بیزرول اش و با کمک جدول واسط tbl_project_user_assignment (https://localhost/phpmyadmin/sql.php?db=yiile&token=a90417d544cb0d52e39108a07d7e2d21&table=tbl_project_user_assignment&pos=0) انجام شد . حالا اگر بخواهیم چندین مجوز رو به کاربر بدیم یا ازش بگیریم آیا اینجا هم باید برای هر مجوز یک جدول assignment قرار بدیم و با بیزرول ، چک اش کنیم یا با روش و منطق دیگه ای پیاده میشه ؟؟

117549

MMSHFE
پنج شنبه 14 فروردین 1393, 01:23 صبح
معمولاً برای پیاده سازی موارد ساده مثل اینها که سطح دسترسی (Level) نداریم و صرفاً itemهای دسترسی مطرحه، از RBAC استفاده نمیشه بلکه میتونید از روشهای ساده تری استفاده کنید. برای مثال: به هرکدوم از این آیتمها یکی از توانهای 2 رو نسبت بدین. مثال:
1 بتواند تنظیمات سیستم را مدیریت کند
2 بتواند تنظیمات استایل ها و قالب را مدیریت کند
4 بتواند تنظیمات زبان ها و لغات را مدیریت کند
8 بتواند تنظیمات انجمن ها را مدیریت کند
16 بتواند تنظیمات فایل های پیوست را مدیریت کند
.
.
.

موقع ذخیره کردن فرم هم عدد موارد انتخاب شده رو با هم جمع کنید و توی فیلد Permission قرار بدین. مثلاً اگه عدد 103 انتخاب شده باشه یعنی 64 + 32 + 4 + 2 + 1
موقع خوندن هم اینطوری تبدیل کنید:

$bits = decbin(103);
$value = 1;
for($i = strlen($bits) - 1; $i >= 0; $i--) {
echo '<p>' . $value . ' : ' . $bits[$i] . '</p>' . PHP_EOL;
$value *= 2;
}
/* Output:
1 : 1
2 : 1
4 : 1
8 : 0
16 : 0
32 : 1
64 : 1
*/
البته اگه اصرار به استفاده از RBAC دارین، میتونید فقط از بخش itemهای اون استفاده کنید.

mostafa_shoakry
سه شنبه 19 فروردین 1393, 22:57 عصر
معمولاً برای پیاده سازی موارد ساده مثل اینها که سطح دسترسی (Level) نداریم و صرفاً itemهای دسترسی مطرحه، از RBAC استفاده نمیشه بلکه میتونید از روشهای ساده تری استفاده کنید
ببخشین آقای شهرکی نخندینا من این قسمت رو متوجه نمیشم :لبخند: میشه بیشتر توضیح بدین.ممنون


البته اگه اصرار به استفاده از RBAC دارین، میتونید فقط از بخش itemهای اون استفاده کنید.
و این دومی که نوشتین منظور از item های استفاده بشه یعنی چی؟