آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

نوع کد نویسی در بررسی سطح دسترسی ها

مهدی  8 سال پیش  8 سال پیش
0 0

سلام دوستان

من بعد از مدتی شروع کردم مجدد PHP کار می کنم(چند وقتی ا کد زدن دلسرد شده بودم :D اینم آفت عدم کارگرفتن از دانش هست :) ). به همین ترتیب شروع کردم به ادامه مشاهده آموزش ها. الان در قسمت "مدیریت سطح دسترسی ها" هستم.

 

من دیدم که جناب آقاجانی یه خورده این قسمت رو پیچیده(از نظر من) کردند و خیلی کد بیشتر نوشتند، به همین دلیل من شروع کردم بر اساس ذهن خودم این قسمت رو به نوشتن.

 

1- من نمیدونم روش من درست هست یا نه! منتهی چند تستی که گرفتم مشکلی نداشنم، اگر شما احساس می کنید اشتباهی وجود داره خواهشا بیان کنید.

2+ به نظر شما روشی که تو آموزش ها بیان شده بهتر هست یا این روش؟ چون می خوام بدونم اگر روش من درست هست ادامه بدم و الگوریتم بهتری رو تولید کنم.

 

کد من:

function getAccess(){
$access = $_SESSION['access'];
$accessName = '';
if(empty($access)){
$access = $_SESSION['access'];
 }else{
$access = explode(',',$access);
$countAccess = count($access);
for($i = 0;$i < $countAccess;$i++){
if($access[$i] == 'vip'){
$accessName .= ',' . "کاربر ویژه" ;
   }
if($access[$i] == 'admin'){
$accessName .= ',' . "مدیر" ;
   }
if($access[$i] == 'superadmin'){
$accessName .= ',' . "مدیریت کل" ;
   }
if($access[$i] == 'user'){
$accessName .= ',' . "کاربر عادی" ;
   }
  }
 }
return $accessName;
}
function isAccess($value = null,$value1 = null,$value2 = null){
$accessNames = getAccess();
$accessNames = explode(',',$accessNames);
$countAccess = count($accessNames);
for($i=0;$i<=$countAccess;$i++){
if($accessNames[$i] == $value || $accessNames[$i] == $value1 || $accessNames[$i] == $value2){
return true;
  }
 }
return false;
}

function isAdmin(){
return isAccess('مدیریت کل');
}

function isVip(){
return isAccess('کاربر ویژه');
}

 

 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
javac  8 سال پیش
+3 0

روشی که استاد گفتن روش خیلی استاندارد و خوبی نیست. برای اهداف آموزشی بیشتر مناسبه اما در یک سیستم تجاری و حرفه ای معمولا نیاز به کنترل سطوح دسترسی به صورت کاملا داینامیک به ماژول های مختلف سایت هست. برای یک سیستم استاندارد حداقل 4 جدول نیاز هست.

در تصویر زیر ERD مربوط به سیستم کنترل سطح دسترسی کاربران رو می بینید که من خودم در پروژه هام استفاده میکنم.

در جدول ماژول ها (rnd_module) نام کنترلر و متدی که میخوام سطح دسترسی رو بهش مشخص کنیم تعریف میکنیم ، اطلاعات رو من بدین شکل ذخیره میکنم:

 

و در جدول permission ها مشخص میکنیم که کدام گروه کاربری به کدام ماژول دسترسی دارد

و در سطح controller با استفاده از این اطلاعات میتونیم جز به جز سیستم رو دسترسیش رو تعیین کنیم.

مثلا گروه نویسندگان >> دسترسی افزودن خبر رو داشته باشن اما حذف خبر رو نداشته باشند


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .