5 //trillion lights to Hierarchy!
6 function checkPerms($node) {
7 // new permissions checking
9 $node_id=$node['node_id'];
10 $node_vector=$node['node_vector'];
11 $user_id = $_SESSION['user_id'];
15 $perms['node_permission'] = '';
16 $perms['node_system_access'] = '';
17 $perms['node_external_access'] = '';
19 if (!is_numeric($node_id))
22 $nv_arr = str_split($node_vector, VECTOR_CHARS);
23 $nv_arr = array_map('intval', $nv_arr);
24 $node_list = implode(', ', $nv_arr);
26 $q_np = sprintf('select n.node_id, n.node_creator, length(n.node_vector) as nv_length
27 , n.node_system_access, n.node_external_access, na.node_permission
29 left join node_access na on na.node_id = n.node_id
31 where n.node_id in(%s)
32 order by nv_length desc', $user_id, $node_list);
33 $qr_np = $db->query($q_np);
35 while ($qr_np->next()) {
36 // nastavim si prava hlavnej zvolenej nody
37 if ($perms['node_permission'] == '' && $perms['node_system_access'] == '') {
39 $perms['node_permission'] = $qr_np->getString('node_permission');
40 $perms['node_system_access'] = $qr_np->getString('node_system_access');
41 $perms['node_external_access'] = $qr_np->getString('node_external_access');
43 // r/w prava podla system accessu
44 if ($perms['node_system_access'] == 'public') {
48 elseif ($perms['node_system_access'] == 'moderated') {
52 elseif ($perms['node_system_access'] == 'private') {
57 if ($qr_np->getInt('node_creator') == $user_id) {
58 $perms['node_permission'] = 'owner';
64 if ($perms['node_system_access'] != 'private'
65 && !$_SESSION['user_id']
66 && $perms['node_external_access'] == 'yes') {
72 } // if ($perms['node_permission'] == '' && $perms['node_system_access'] == '')
74 // ked som v public alebo moderated fore a dalsie nadradene su uz privatne
75 if ($node_system_access != 'private' && $qr_np->getString('node_system_access') == 'private')
77 // ked som v privatnom fore a dalsie nadradene su public alebo moderated
78 if ($node_system_access == 'private' && $qr_np->getString('node_system_access') != 'private')
82 $node_permission = $qr_np->getString('node_permission');
83 $node_system_access = $qr_np->getString('node_system_access');
85 // nastavim r/w podla permissions a skoncim to
86 if ($node_permission == 'ban') {
91 elseif ($node_permission == 'silence') {
96 elseif ($node_permission == 'op') {
101 elseif ($node_permission == 'master') {
106 elseif ($node_permission == 'access') {
112 if ($qr_np->getInt('node_creator') == $user_id) {
113 $perms['node_permission'] = 'owner';