X-Git-Url: http://git.harvie.cz/?a=blobdiff_plain;f=wwwroot%2Fbackend%2Fmysql%2Fpermissions.inc;h=14bc7d42b245d9e36d5194abfb51ee673c0ba57c;hb=41b53a981f7bab0ca17e16fddb72d868311f9ba9;hp=0b6239641ad42b5b8c31dd7d44d8538adc822b93;hpb=b107a58b11524db21f615c6e926ed8bde1774d67;p=mirrors%2FKyberia-bloodline.git diff --git a/wwwroot/backend/mysql/permissions.inc b/wwwroot/backend/mysql/permissions.inc index 0b62396..14bc7d4 100644 --- a/wwwroot/backend/mysql/permissions.inc +++ b/wwwroot/backend/mysql/permissions.inc @@ -4,7 +4,7 @@ class permissions { //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; @@ -16,14 +16,15 @@ function checkPerms($node) { 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; @@ -37,6 +38,7 @@ function checkPerms($node) { $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 @@ -45,7 +47,7 @@ function checkPerms($node) { 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()) { @@ -55,7 +57,7 @@ function checkPerms($node) { $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; @@ -78,7 +80,7 @@ function checkPerms($node) { } if ($perms['node_system_access'] != 'private' - && !$_SESSION['user_id'] + && (empty($_SESSION['user_id'])) && $perms['node_external_access'] == 'yes') { $perms['r'] = 1; $perms['w'] = 0; @@ -125,7 +127,7 @@ function checkPerms($node) { 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; @@ -138,4 +140,4 @@ function checkPerms($node) { } -?> \ No newline at end of file +?>