//trillion lights to Hierarchy!
//$node input parameter can be a numeric node_id of a node-to-be-checked or a hash containing node_id,node_vector
-function checkPerms($node) {
+public static function checkPerms($node) {
// new permissions checking
global $db;
elseif (is_numeric($node)) {
$node_id=$node;
}
+
- if (!$node_vector) {
+ if (empty($node_vector)) {
$set=$db->query("select node_vector from nodes where node_id='$node_id'");
$set->next();
$node_vector=$set->getString('node_vector');
}
-
- $user_id = $_SESSION['user_id'];
+
+ $user_id=(empty($_SESSION['user_id'])) ? "" : $_SESSION['user_id'];
$perms['r'] = 0;
$perms['w'] = 0;
$nv_arr = str_split($node_vector, VECTOR_CHARS);
$nv_arr = array_map('intval', $nv_arr);
$node_list = implode(', ', $nv_arr);
+ $node_list.=",$node_id";
$q_np = sprintf('select n.node_id, n.node_creator, length(n.node_vector) as nv_length
, n.node_system_access, n.node_external_access, na.node_permission
and na.user_id = %d
where n.node_id in(%s)
order by nv_length desc', $user_id, $node_list);
- print $q_np;
+
$qr_np = $db->query($q_np);
while ($qr_np->next()) {
$perms['node_permission'] = $qr_np->getString('node_permission');
$perms['node_system_access'] = $qr_np->getString('node_system_access');
$perms['node_external_access'] = $qr_np->getString('node_external_access');
- print_r($perms);
+
// r/w prava podla system accessu
if ($perms['node_system_access'] == 'public') {
$perms['r'] = 1;
}
if ($perms['node_system_access'] != 'private'
- && !$_SESSION['user_id']
+ && (empty($_SESSION['user_id']))
&& $perms['node_external_access'] == 'yes') {
$perms['r'] = 1;
$perms['w'] = 0;
break;
}
- if ($qr_np->getInt('node_creator') == $user_id) {
+ if ($qr_np->getString('node_creator') == $user_id) {
$perms['node_permission'] = 'owner';
$perms['r'] = 1;
$perms['w'] = 1;
}
-?>
\ No newline at end of file
+?>