function calculatePropagation($permission_level, $uid, $shared_with_user, $user_id, $db) { ereg('^([0-2])([0-2])([0-2])$', $permission_level, $tmpPLd); if ($tmpPLd[3] == 2) { $propagates = 1; $propagation_level = $permission_level; } elseif ($tmpPLd[3] == 1) { $propagates = createdBy($uid, $db) == $shared_with_user ? 1 : 0; $propagation_level = ($tmpPLd[1] == 0 ? '0' : $tmpPLd[1] / $tmpPLd[1]) . $tmpPLd[2] / $tmpPLd[2] . '1'; } elseif ($tmpPLd[3] == 0) { $propagates = 0; $propagation_level = '000'; } $return = compact('propagates', 'propagation_level'); return $return; }
function filterDataForQuery($pack) { extract($pack); $letter = letter($uid); $info_ID = $GLOBALS['COREletterInv'][$letter]; $uid_info = uid($uid); $uid_info['uid'] = $info['uid'] != '' ? $info['uid'] : $uid_info['uid']; $info['uid'] = ereg_replace('^D', 'D|', $uid_info['Did']) . ($letter != 'U' ? '|U|' . $user_id : '') . '|' . $letter . '|' . $info[$info_ID] . '|'; if (substr($info['acl'], 0, 1) == '0' || substr($info[$acl], 0, 1) == '1' && createdBy($uid, $db) != $user_id) { $info = array(); } if ($s3ql['where'] != '') { foreach ($s3ql['where'] as $query_field => $query_value) { #map the query_field first. because s3ql was transformed. To avoid being deleted if (in_array($query_field, $GLOBALS['s3map'][$GLOBALS['s3codes'][$letter] . 's']) && $info[$query_field] != $query_value) { $query_field = @array_search($query_field, $GLOBALS['s3map'][$elements]); } $whereLetter = letter($query_field); if (in_array($query_field, $GLOBALS['COREids']) && ereg('^(U|G)$', $letter) && $letter . $query_value != $whereLetter . $query_value) { $D = array('shared_with' => $uid, 'uid' => $whereLetter . $query_value, 'strictsharedwith' => 1, 'stricuid' => 1, 'db' => $db, 'user_id' => $user_id, 'stream' => 'upstream'); ##Look for shared_with in uid instead of uid in shared_with $info['permissionOnResource'] = permissionOnResource($D); #echo '<pre>';print_r($info);exit; } #echo '<pre>';print_r($info);exit; $tmp = $GLOBALS['s3codes'][$letter]; if ($info[$query_field] != $query_value && in_array($query_field, $GLOBALS['queriable'][$tmp])) { if (!in_array($query_field, $cols) && !in_array($query_field, $GLOBALS['COREids'])) { #is there regular expresion in the query? if (ereg("!=\\'(.*)\\'", stripslashes($query_value), $regout)) { if ($info[$query_field] == $regout[1]) { $info = array(); } } else { $info = array(); } } } } } return $info; }
function permission_level($pl, $uid, $user_id, $db) { if (ereg('([0-2])([0-2])([0-2])', $pl, $dl)) { $a['view'] = $dl[1] == '2' ? 1 : ($dl[1] == '1' && createdBy($uid, $db) == $user_id ? 1 : 0); $a['edit'] = $dl[2] == '2' ? 1 : ($dl[2] == '1' && createdBy($uid, $db) == $user_id ? 1 : 0); $a['use'] = $dl[3] == '2' ? 1 : ($dl[3] == '1' && createdBy($uid, $db) == $user_id ? 1 : 0); $a['propagate'] = $a['use']; $a['add_data'] = $a['use']; } else { if (strlen($pl) < 2) { $a['edit'] = 0; } if (strlen($pl) > 1) { $a['view'] = 0; } } return $a; }