X-Git-Url: http://git.harvie.cz/?a=blobdiff_plain;f=inc%2Feventz%2FK.inc;h=05485e4d498f7497f5dc2c5cf5b6e00ca5b4cbea;hb=673e23209e2e3b9782c037e70156a1a20154a5b9;hp=4083f7ecaa27cea422668a8defad736ca35d1ed7;hpb=e586807dafc64c3fe152ab518599e6cf3f0f84e1;p=mirrors%2FKyberia-bloodline.git diff --git a/inc/eventz/K.inc b/inc/eventz/K.inc index 4083f7e..05485e4 100644 --- a/inc/eventz/K.inc +++ b/inc/eventz/K.inc @@ -1,66 +1,113 @@ query($q); + if ($result->next()) { + $node=$result->getRecord(); + $node['node_vector']=trim($node['node_vector'],"z"); + $ancestors=explode(' ',chunk_split($node['node_vector'],VECTOR_CHARS,' ')); + foreach ($ancestors as $ancestor) { + $anc[]=array("name"=>"","link"=>ltrim($ancestor,"0")); + } + return $anc; + }else{ return false;} +} +function getCommanders($node_id) { + global $db; + $set=$db->query("select node_permission,users.login,users.user_id from node_access left join users on node_access.user_id=users.user_id where node_id='$node_id' and node_permission!='' order by node_permission"); + while ($set->next()) { + $commanders[$set->getString('node_permission')][]=$set->getString('user_id'); + } + return $commanders; +} +function isCommander($comms,$user_id){ + foreach($comms['master'] as $one){ + if($one == $user_id){return true;} + } + foreach($comms['op'] as $one){ + if($one == $user_id){return true;} + } + foreach($comms['execute'] as $one){ + if($one == $user_id){return true;} + } + return false; +} +function isSenatOwner($senat_id, $user_id){ + global $db; + $set=$db->query("select node_creator from nodes where node_id='$senat_id'"); + if ($set->next()) { + if(($set->getString('user_id')) == $user_id){return true;} + } + return false; +} function K() { - global $db,$node,$error,$error_messages; - $user_id=$_SESSION['user_id']; - $user_name=$_SESSION['user_name']; - $kset=$db->query("select user_k from users where user_id='$user_id'"); - $kset->next(); - $user_k=$kset->getString('user_k'); + global $db,$node,$error,$error_messages; + $user_id=$_SESSION['user_id']; + $user_name=$_SESSION['user_name']; + $kset=$db->query("select user_k from users where user_id='$user_id'"); + $kset->next(); + $user_k=$kset->getString('user_k'); + + $senat_id = 876611; + $K_id = 1961061; + $comms = getCommanders($K_id); + $isComm = isCommander($comms,$user_id); + $isSOwner = isSenatOwner($senat_id, $user_id); - if (is_array($_POST['node_chosen'])) { - $k=$_POST['node_chosen']; - } - else $k[]=$node['node_id']; + if (is_array($_POST['node_chosen'])) { + $k=$_POST['node_chosen']; + } + else $k[]=$node['node_id']; + $db->query("set autocommit=0"); - foreach ($k as $id) { - if ($user_k) { - $userset=$db->query("select node_creator from nodes where node_id='$id'"); - $userset->next(); - $donor_id=$userset->getString('node_creator'); -/* - if ($donor_id==$user_id) { - $error.=$error_messages['K_EGOTRIP']; - log::log('K',$id,'failed',$donor_id,'egotrippin'); - } + foreach ($k as $id) { - else { -*/ - $set=$db->query("select * from node_access where node_id='$id' and user_id='$user_id' and given_k='yes'"); - if ($set->getNumRows()) { - $error.=$error_messages['K_GIVEN']; - log::log('K',$id,'failed',$donor_id,'already given'); - } - else { - --$user_k; - $db->query("update nodes set k=k+1 where node_id='$id'"); - $result=$db->update("update node_access set given_k='yes' where node_id='$id' and user_id='$user_id'"); - if (!$result) { - $db->query("insert into node_access set given_k='yes',node_id='$id',user_id='$user_id',last_visit=NOW()"); - } + if ($user_k) { + $isSenat = hasAncestor(getAncestors($id), $senat_id); + if ($isSenat && !($isComm || $isSOwner)){ + $error.="Sorry, ale v senate mozu Kckovat len obcania."; + }else{ + $userset=$db->query("select node_creator from nodes where node_id='$id'"); + $userset->next(); + $acceptor_id=$userset->getString('node_creator'); + $set=$db->query("select * from node_access where node_id='$id' and user_id='$user_id' and given_k='yes'"); + if ($set->getNumRows()) { + $error.=$error_messages['K_GIVEN']; + }else{ + --$user_k; + $db->query("update users set k_wallet=k_wallet+1 where user_id='$acceptor_id'"); - log::log('K',$id,'ok',$donor_id); - } -// } - } + $db->query("update nodes set k=k+1 where node_id='$id'"); + $db->query("insert into I set node_id='$id'"); + $result=$db->update("update node_access set given_k='yes' where node_id='$id' and user_id='$user_id'"); + if (!$result) { + $db->query("insert into node_access set given_k='yes',node_id='$id',user_id='$user_id',last_visit=NOW()"); + } + } + } + } - else { - $error.=$error_messages['K_SPENT']; - log::log('K',$id,'failed',$donor_id,'zero amount'); - } - } + else { + $error.=$error_messages['K_SPENT']; + } + } - $db->query("update users set user_k='$user_k' where user_id='$user_id'"); + $db->query("update users set user_k='$user_k' where user_id='$user_id'"); + $db->query("commit"); - if (!$error) return true; - else return false; + if (!$error) return true; + else return false; } -?> \ No newline at end of file +?> + +