g(376));
}
function computer_list_by_tag($tag="",$format='LIST'){
$arg_sql=array();
if ($tag == ""){
$sql_mycomputers['SQL']="select hardware_id from accountinfo a where ".$_SESSION['OCS']["mesmachines"];
}elseif (is_array($tag)){
$sql_mycomputers="select hardware_id from accountinfo a where a.tag in ";
$sql_mycomputers=mysql2_prepare($sql_mycomputers,$arg_sql,$tag);
}else{
$sql_mycomputers="select hardware_id from accountinfo a where a.tag in ";
$sql_mycomputers=mysql2_prepare($sql_mycomputers,$arg_sql,$tag);
}
$res_mycomputers = mysql2_query_secure($sql_mycomputers['SQL'], $_SESSION['OCS']["readServer"],$sql_mycomputers['ARG']);
$mycomputers="(";
while ($item_mycomputers = mysql_fetch_object($res_mycomputers)){
$mycomputers.= $item_mycomputers->hardware_id.",";
$array_mycomputers[]=$item_mycomputers->hardware_id;
}
$mycomputers=substr($mycomputers,0,-1).")";
if ($mycomputers == "()" or !isset($array_mycomputers))
$mycomputers = "ERROR";
if ($format == 'LIST'){
return $mycomputers;
}else{
return $array_mycomputers;
}
}
/**
* Deleting function
* @param id Hardware identifier to be deleted
* @param checkLock Tells wether or not the locking system must be used (default true)
* @param traceDel Tells wether or not the deleted entities must be inserted in deleted_equiv for tracking purpose (default true)
*/
function deleteDid($id, $checkLock = true, $traceDel = true, $silent=false
) {
global $l;
if ($_SESSION['OCS']['CONFIGURATION']['DELETE_COMPUTERS'] == "NO"){
msg_error($l->g(1273));
return false;
}
//If lock is not user OR it is used and available
if( ! $checkLock || lock($id) ) {
$sql="SELECT deviceid,name,IPADDR,OSNAME FROM hardware WHERE id='%s'";
$resId = mysql2_query_secure($sql,$_SESSION['OCS']["readServer"],$id);
$valId = mysql_fetch_array($resId);
$idHard = $id;
$did = $valId["deviceid"];
if( $did ) {
//Deleting a network device
if( strpos ( $did, "NETWORK_DEVICE-" ) === false ) {
$sql="SELECT macaddr FROM networks WHERE hardware_id='%s'";
$resNetm = mysql2_query_secure($sql, $_SESSION['OCS']["readServer"],$idHard);
while( $valNetm = mysql_fetch_array($resNetm)) {
$sql="DELETE FROM netmap WHERE mac='%s'";
mysql2_query_secure($sql, $_SESSION['OCS']["readServer"],$valNetm["macaddr"]);
}
}
//deleting a regular computer
if( $did != "_SYSTEMGROUP_" and $did != '_DOWNLOADGROUP_') {
$tables=$_SESSION['OCS']['SQL_TABLE_HARDWARE_ID'];
}
elseif($did == "_SYSTEMGROUP_" or $did == '_DOWNLOADGROUP_'){//Deleting a group
$tables=Array("devices");
//del messages on this group
$sql_group_msg="DELETE FROM config WHERE name like '%s' and ivalue='%s'";
mysql2_query_secure($sql_group_msg, $_SESSION['OCS']["writeServer"],array('GUI_REPORT_MSG%',$idHard));
$sql_group="DELETE FROM groups WHERE hardware_id='%s'";
mysql2_query_secure($sql_group, $_SESSION['OCS']["writeServer"],$idHard);
$sql_group_cache="DELETE FROM groups_cache WHERE group_id='%s'";
$resDelete = mysql2_query_secure($sql_group_cache, $_SESSION['OCS']["writeServer"],$idHard);
$affectedComputers = mysql_affected_rows( $_SESSION['OCS']["writeServer"] );
//Deleting redistribution group
$sql_group_cache="DELETE FROM download_servers WHERE group_id='%s'";
$resDelete = mysql2_query_secure($sql_group_cache, $_SESSION['OCS']["writeServer"],$idHard);
$affectedComputers = mysql_affected_rows( $_SESSION['OCS']["writeServer"] );
}
if( !$silent )
msg_success($valId["name"]." ".$l->g(220));
if (isset($tables) and is_array($tables)){
foreach ($tables as $table) {
$sql="DELETE FROM %s WHERE hardware_id='%s'";
$arg=array($table,$idHard);
mysql2_query_secure($sql, $_SESSION['OCS']["writeServer"],$arg);
}
}
$sql="delete from download_enable where SERVER_ID='%s'";
mysql2_query_secure($sql, $_SESSION['OCS']["writeServer"],$idHard);
$sql="DELETE FROM hardware WHERE id='%s'";
mysql2_query_secure($sql, $_SESSION['OCS']["writeServer"],$idHard);
//Deleted computers tracking
if($traceDel && mysql_num_rows(mysql2_query_secure("SELECT IVALUE FROM config WHERE IVALUE>0 AND NAME='TRACE_DELETED'", $_SESSION['OCS']["readServer"]))){
$sql="insert into deleted_equiv(DELETED,EQUIVALENT) values('%s',%s)";
$arg=array($did,'NULL');
mysql2_query_secure($sql, $_SESSION['OCS']["writeServer"],$arg);
}
}
//Using lock ? Unlock
if( $checkLock )
unlock($id);
return $valId["name"];
}
else
errlock();
}
function fusionne($afus) {
global $l;
$i=0;
$maxStamp = 0;
$minStamp = mktime(0,0,0,date("m"),date("d") + 1,date("Y")); //demain
foreach($afus as $a) {
$d = $a["lastcome"];
$a["stamp"] = mktime($d[11].$d[12],$d[14].$d[15],$d[17].$d[18],$d[5].$d[6],$d[8].$d[9],$d[0].$d[1].$d[2].$d[3]);
//echo "stamp:".$a["stamp"]."== mktime($d[11]$d[12],$d[14]$d[15],$d[17]$d[18],$d[5]$d[6],$d[8]$d[9],$d[0]$d[1]$d[2]$d[3]);
";
if($maxStamp<$a["stamp"]) {
$maxStamp = $a["stamp"];
$maxInd = $i;
}
if($minStamp>$a["stamp"]) {
$minStamp = $a["stamp"];
$minInd = $i;
}
$i++;
}
if($afus[$minInd]["deviceid"]!="") {
$okLock = true;
foreach($afus as $a) {
if( ! $okLock = ($okLock && lock($a["id"])) )
break;
else
$locked[] = $a["id"];
}
if( $okLock ) {
//TRACE_DELETED
if(mysql_num_rows(mysql2_query_secure("SELECT * FROM config WHERE IVALUE>0 AND NAME='TRACE_DELETED'", $_SESSION['OCS']["readServer"]))){
foreach($afus as $a) {
if($afus[$maxInd]["deviceid"]==$a["deviceid"]){continue;}
$sql="insert into deleted_equiv(DELETED,EQUIVALENT) values('%s','%s')";
$arg=array($a["deviceid"],$afus[$maxInd]["deviceid"]);
mysql2_query_secure($sql, $_SESSION['OCS']["writeServer"],$arg) ;
}
}
//KEEP OLD QUALITY,FIDELITY AND CHECKSUM
$sql="SELECT CHECKSUM,QUALITY,FIDELITY FROM hardware WHERE ID='%s'";
$persistent_req = mysql2_query_secure($sql,$_SESSION['OCS']["readServer"],$afus[$minInd]["id"]);
$reqDelAccount = "DELETE FROM accountinfo WHERE hardware_id='%s'";
mysql2_query_secure($reqDelAccount, $_SESSION['OCS']["writeServer"],$afus[$maxInd]["id"]) ;
msg_success($l->g(190)." ".$afus[$maxInd]["deviceid"]." ".$l->g(191));
$keep = array( "accountinfo", "devices", "groups_cache" );
foreach( $keep as $tableToBeKept ) {
$reqRecupAccount = "UPDATE %s SET hardware_id='%s' WHERE hardware_id='%s'";
$argRecupAccount=array($tableToBeKept,$afus[$maxInd]["id"],$afus[$minInd]["id"]);
mysql2_query_secure($reqRecupAccount, $_SESSION['OCS']["writeServer"],$argRecupAccount) ;
}
msg_success($l->g(190)." ".$afus[$minInd]["deviceid"]." ".$l->g(206)." ".$afus[$maxInd]["deviceid"]);
$i=0;
foreach($afus as $a) {
if($i != $maxInd) {
deleteDid($a["id"], false, false,false);
$lesDel .= $a["deviceid"]."/";
}
$i++;
}
//RESTORE PERSISTENT VALUES
$persistent_values = mysql_fetch_row($persistent_req);
$sql="UPDATE hardware SET QUALITY=%s,FIDELITY=%s,CHECKSUM=CHECKSUM|%s WHERE id='%s'";
$arg=array($persistent_values[1],$persistent_values[2],$persistent_values[0],$afus[$maxInd]["id"]);
mysql2_query_secure($sql, $_SESSION['OCS']["writeServer"],$arg) ;
}
else
errlock();
foreach($locked as $a) {
unlock($a);
}
}
$lesDel .= " => ".$afus[$maxInd]["deviceid"];
AddLog("FUSION", $lesDel);
}
function form_add_computer(){
global $l;
$name_field=array("NAME","OSNAME");
$name_field[]="LASTNAME";
$name_field[]="EMAIL";
$name_field[]="COMMENTS";
//$name_field[]="USER_GROUP";
$tab_name[]=$l->g(49).": ";
$tab_name[]=$l->g(996).": ";
$tab_name[]="Email: ";
$tab_name[]=$l->g(51).": ";
//$tab_name[]="Groupe de l'utilisateur: ";
$type_field[]= 0;
$type_field[]= 0;
$type_field[]= 0;
$type_field[]= 0;
//$type_field[]= 2;
if ($id_user != '' or $_SESSION['OCS']['CONFIGURATION']['CHANGE_USER_GROUP'] == 'NO'){
$tab_hidden['MODIF']=$id_user;
$sql="select ID,NEW_ACCESSLVL,USER_GROUP,FIRSTNAME,LASTNAME,EMAIL,COMMENTS from operators where id= '%s'";
$arg=$id_user;
$res=mysql2_query_secure($sql, $_SESSION['OCS']["readServer"],$arg);
$row=mysql_fetch_object($res);
if ($_SESSION['OCS']['CONFIGURATION']['CHANGE_USER_GROUP'] == 'YES'){
$protectedPost['ACCESSLVL']=$row->NEW_ACCESSLVL;
$protectedPost['USER_GROUP']=$row->USER_GROUP;
$value_field=array($row->ID,$list_profil,$list_groups);
}
$value_field[]=$row->FIRSTNAME;
$value_field[]=$row->LASTNAME;
$value_field[]=$row->EMAIL;
$value_field[]=$row->COMMENTS;
}else{
if ($_SESSION['OCS']['CONFIGURATION']['CHANGE_USER_GROUP'] == 'YES'){
$value_field=array($protectedPost['ID'],$list_profil,$list_groups);
}
$value_field[]=$protectedPost['FIRSTNAME'];
$value_field[]=$protectedPost['LASTNAME'];
$value_field[]=$protectedPost['EMAIL'];
$value_field[]=$protectedPost['COMMENTS'];
}
if ($_SESSION['OCS']['cnx_origine'] == "LOCAL"){
$name_field[]="PASSWORD";
$type_field[]=0;
$tab_name[]=$l->g(217).":";
$value_field[]=$protectedPost['PASSWORD'];
}
$tab_typ_champ=show_field($name_field,$type_field,$value_field);
foreach ($tab_typ_champ as $id=>$values){
$tab_typ_champ[$id]['CONFIG']['SIZE']=40;
}
if ($_SESSION['OCS']['CONFIGURATION']['MANAGE_USER_GROUP'] == 'YES'){
$tab_typ_champ[2]["CONFIG"]['DEFAULT']="YES";
// $tab_typ_champ[1]['COMMENT_BEHING']="
";
$tab_typ_champ[2]['COMMENT_BEHING']="
";
}
if (isset($tab_typ_champ)){
tab_modif_values($tab_name,$tab_typ_champ,$tab_hidden);
}
}
function insert_manual_computer($values,$nb=1,$generic=false){
global $i;
if ($nb == 1)
$name=$values['COMPUTER_NAME_GENERIC'];
else
$name=$values['COMPUTER_NAME_GENERIC'].$i;
/*if ($generic){
if ($values['COMPUTER_NAME_GENERIC'] == "")
$values['COMPUTER_NAME_GENERIC']='MANUEL_ENTRY';
if ($values['SERIAL_GENERIC'] == "")
$values['SERIAL_GENERIC']='MANUEL_ENTRY';
if ($values['ADDR_MAC_GENERIC'] == "")
$values['ADDR_MAC_GENERIC']='MANUEL_ENTRY';
}*/
$sql="insert into hardware (deviceid,name) values ('%s','%s')";
$arg=array('MANUEL',$name.'_M');
mysql2_query_secure($sql,$_SESSION['OCS']["writeServer"],$arg);
$id_computer=mysql_insert_id($_SESSION['OCS']["writeServer"]);
$sql="insert into bios (hardware_id,ssn) values ('%s','%s')";
$arg=array($id_computer,$values['SERIAL_GENERIC'].'_M');
mysql2_query_secure($sql,$_SESSION['OCS']["writeServer"],$arg);
$sql="insert into networks (hardware_id,macaddr) values ('%s','%s')";
$arg=array($id_computer,$values['ADDR_MAC_GENERIC'].'_M');
mysql2_query_secure($sql,$_SESSION['OCS']["writeServer"],$arg);
return $id_computer;
}
/*
* function to verify if user can access
* on computer
*/
function is_mine_computer($id){
if (isset($_SESSION['OCS']['TAGS']) and is_array($_SESSION['OCS']['TAGS'])){
$sql="select hardware_id from accountinfo where hardware_id = %s and tag in ";
$arg=array($id);
$sql=mysql2_prepare($sql,$arg,$_SESSION['OCS']['TAGS']);
$result = mysql2_query_secure( $sql['SQL'], $_SESSION['OCS']["readServer"],$sql['ARG']);
$item = mysql_fetch_object($result);
if (isset($item->hardware_id))
return true;
else
return false;
}
return true;
}
function RandomMAC()
{
$word = "A,B,C,D,E,F,0,1,2,3,4,5,6,7,8,9";
$mac='';
$array=explode(",",$word);
while ($j<8){
$i=0;
while ($i<2){
shuffle($array);
$mac.=$array[0];
$i++;
}
$mac.=":";
$j++;
}
return substr($mac, 0, -1);
}
?>