$b_length) return false; if(empty($a)) return false; if(empty($b)) return false; $d = $b; $b = substr($b,$b_length - $a_length,$b_length); $c = $b; $b_length = strlen($b); if($a_length != $b_length) return false; $sum = ""; for($i = 0; $i < $a_length; $i++) { $a_pos = substr($a,$i,1); $b_pos = substr($b,$i,1); if(($a_pos == 1) && ($b_pos == $a_pos)) $sum .= "1"; else $sum .= "0"; } if($sum != $a) return false; else return true; } public function setup_acl($perms) { $access = 0; $perm_array = array(); $max_length = 0; $max_value = 0; foreach($perms AS $perm) { $str_length = strlen($perm); if($str_length > $max_length) { $max_length = $str_length; $max_value = $perm; } } $new_perm = array(); foreach($perms AS $perm) if($perm != $max_value) $new_perm[] = $perm; foreach($new_perm AS $perm) { $length_perm = strlen($perm); $replace = $max_length - $length_perm; for($i = 0; $i < $length_perm; $i++) { $replacing = $max_value[$replace + $i ]; if(($replacing != "1") && ($perm[$i] == "1")) $max_value[$replace + $i ] = "1"; } } return $max_value; } public function perm_client($page) { $access = $_SESSION['user']['access']; $client_access = $_SESSION['client_info']['access']; $client_access = $_SESSION['user']['access']; $a_length = strlen($access); $b_length = strlen($client_access); if($a_length > $b_length) { $difference = $a_length - $b_length; $extra = ""; for($i =0 ; $i < $difference; $i++) $extra .= "0"; $client_access = $extra.$client_access; } else if($a_length < $b_length) { $difference = $b_length - $a_length; $extra = ""; for($i =0 ; $i < $difference; $i++) $extra .= "0"; $access = $extra.$access; } $get_modules = " SELECT permission FROM clients_modules_sub WHERE page = '$page' LIMIT 1"; $permission = $conn->getOne($get_modules); $client_avail = self::check_acl($permission,$client_access); $avail = "no"; if($client_avail) { $avail = self::check_acl($permission,$access); } return $avail; } } ?>