2 /* This program is free software. It comes without any warranty, to
3 * the extent permitted by applicable law. You can redistribute it
4 * and/or modify it under the terms of the Do What The Fuck You Want
5 * To Public License, Version 2, as published by Sam Hocevar. See
6 * http://sam.zoy.org/wtfpl/COPYING for more details. */
11 function isHierarch($node) {
14 $user_id=$_SESSION['user_id'];
15 $hierarchy=explode(';',$node['node_vector']);
16 foreach ($hierarchy as $hierarch) {
17 $q="select nodes.node_creator,node_access.node_permission from nodes left join node_access on nodes.node_id=node_access.node_id and node_access.user_id='".$_SESSION['user_id']."' where nodes.node_id='$hierarch'";
18 $result=$db->query($q);
20 if ($result->getString('node_creator')==$user_id)
22 if ($result->getString('node_permission')=='master')
24 if ($result->getString('node_creaotr')=='operator')
31 function checkPermissions($node) {
33 $user_id=$_SESSION['user_id'];
35 //thousand lights to Hierarchy!
36 if (($node['node_system_access']!='public' and $node['node_system_access']!='crypto') and empty($node['node_permission'])) {
37 $hierarchy=array_reverse(explode(';',$node['node_vector']));
38 foreach ($hierarchy as $hierarch) {
39 $q="select nodes.node_system_access,node_access.node_permission from nodes left join node_access on nodes.node_id=node_access.node_id and node_access.user_id='".$_SESSION['user_id']."' where nodes.node_id='$hierarch'";
40 $result=$db->query($q);
42 $hierarchy_bounce[]=$hierarch;
43 if ($result->getString('node_permission')!='') {
44 array_pop($hierarchy_bounce);
45 $node['node_permission']=$result->getString('node_permission');
46 foreach ($hierarchy_bounce as $hierarch_bounce) {
47 $q="update node_access set node_permission='".$result->getString('node_permission')."' where node_id='$hierarch_bounce' and user_id='".$_SESSION['user_id']."'";
48 $updated=$db->update($q);
50 $q="insert into node_access set node_permission='".$result->getString('node_permission')."', node_id='$hierarch_bounce',user_id='".$_SESSION['user_id']."'";
56 elseif ($result->getString('node_creator')=='$user_id') {
57 array_pop($hierarchy_bounce);
58 foreach ($hierarchy_bounce as $hierarch_bounce) {
59 $q="update node_access set node_permission='access' where node_id='$hierarch_bounce' and user_id='".$_SESSION['user_id']."'";
60 $updated=$db->update($q);
62 $q="insert into node_access set node_permission='access', node_id='$hierarch_bounce',user_id='".$_SESSION['user_id']."'";
68 elseif ($result->getString('node_system_access')=='public') {
76 //setting permissions for not logged in users
77 if ($_SESSION['user_id']==$node['node_creator']) {
78 $permissions['r']=true;
79 $permissions['w']=true;
82 elseif (!$_SESSION['user_id']) {
84 if ($node['node_external_access']=='yes' AND ($node['node_system_access']=='public' OR $node['node_system_access']=='moderated')) {
85 $permissions['r']=true;
86 $permissions['w']=false;
92 $permissions['r']=false;
93 $permissions['w']=false;
97 //setting permissions for personal node
98 elseif ($node['node_system_access']=='personal') {
100 if ($_SESSION['user_id']!=$node['node_creator']) {
101 $permissions['r']=false;
102 $permissions['w']=false;
105 $permissions['r']=true;
106 $permissions['w']=true;
110 //setting permissions for private node
111 elseif ($node['node_system_access']=='private') {
113 if (empty($node['node_permission'])) {
114 $permissions['r']=false;
115 $permissions['w']=false;
117 elseif($node['node_permission']=='silence') {
118 $permissions['r']=true;
119 $permissions['w']=false;
123 $permissions['r']=true;
124 $permissions['w']=true;
128 //setting permissions for moderated node
129 elseif ($node['node_system_access']=='moderated') {
130 if (($node['node_permission']=='access')||($node['node_permission']=='op')||($node['node_permission']=='master')) {
131 $permissions['r']=true;
132 $permissions['w']=true;
135 $permissions['r']=true;
136 $permissions['w']=false;
140 //setting rights for public node
141 elseif ($node['node_system_access']=='public') {
142 if ($node['node_permission']=='silence') {
143 $permissions['r']=true;
144 $permissions['w']=false;
147 elseif ($node['node_permission']=='ban') {
148 $permissions['r']=false;
149 $permissions['w']=false;
154 $permissions['r']=true;
155 $permissions['w']=true;
161 $permissions['r']=true;
162 $permissions['w']=true;