<?
require('./conf/config.php');

/***************************************************************************
*
* addPower($idPower, $descPower)
* selectPower($idPower)
* delPower($idPower)
* updatePower($idPowern $descPower)
* ctrlPower($idLogin, $idService, $idPower, $idSwitch)
*
*****************************************************************************/



function addPower($idPower, $descPower) {
//connect DB
$link = mysql_connect($GLOBALS['hostDB'], $GLOBALS['userDB'], $GLOBALS['passwdDB']);
if (!$link) {
    $buffer = "Connexion [FAILED]: " . mysql_error() ;
	return $buffer;
}

$db_selected = @mysql_select_db($GLOBALS['nameDB'], $link);
    if (!$db_selected) {
       $buffer .= "Impossible de sélectionner la base de données :$nameDB"  . mysql_error();
    }


//Add Power
$sql = "INSERT INTO POWER VALUE('$idPower', '$descPower');";

if (mysql_query($sql, $link)) {
   $buffer = 1;
} else {
   $buffer = "CREATE POWER $idPower, $descPower: [FAILED] :" . mysql_error() ;
}

return $buffer;
}



function selectPower($idPower) {
//connect DB
$link = mysql_connect($GLOBALS['hostDB'], $GLOBALS['userDB'], $GLOBALS['passwdDB']);
if (!$link) {
    $buffer = "Connexion [FAILED]: " . mysql_error() ;
	return $buffer;
}

$db_selected = @mysql_select_db($GLOBALS['nameDB'], $link);
    if (!$db_selected) {
       $buffer .= "Impossible de sélectionner la base de données :$nameDB"  . mysql_error();
    }
	
	
	if (empty($idPower)) {
		$sql = "SELECT * FROM POWER";
	}else{
		$sql = "SELECT * FROM POWER WHERE idPower='$idPower'; ";
	}


if ($result = mysql_query($sql, $link)) {
	//test if $return is_array
    return  $result ;

} else {
   $buffer = "SELECT POWER $idPower: [FAILED] :" . mysql_error() ;
    return $buffer ;   
}


}






function delPower($idPower) {
//connect DB
$link = mysql_connect($GLOBALS['hostDB'], $GLOBALS['userDB'], $GLOBALS['passwdDB']);
if (!$link) {
    $buffer = "Connexion [FAILED]: " . mysql_error() ;
	return $buffer;
}

$db_selected = @mysql_select_db($GLOBALS['nameDB'], $link);
    if (!$db_selected) {
       $buffer .= "Impossible de sélectionner la base de données :$nameDB"  . mysql_error();
    }


//del Power


$sql = "DELETE FROM Power WHERE idPower='$idPower';";

if (mysql_query($sql, $link)) {
   $buffer = "DELETE POWER $idPower: [OK]";
} else {
   $buffer = "DELETE POWER $idPower: [FAILED] :" . mysql_error() ;
}

return $buffer;
}


function updatePower($idPower, $descPower) {
//connect DB
$link = mysql_connect($GLOBALS['hostDB'], $GLOBALS['userDB'], $GLOBALS['passwdDB']);
if (!$link) {
    $buffer = "Connexion [FAILED]: " . mysql_error() ;
	return $buffer;
}


$db_selected = @mysql_select_db($GLOBALS['nameDB'], $link);
    if (!$db_selected) {
       $buffer .= "Impossible de sélectionner la base de données :$nameDB"  . mysql_error();
    }

//update Power
$sql = "UPDATE POWER SET 
        idPower='$idPower',
        descPower='$descPower',
  		WHERE idPower='$idPower' ;" ;

if (mysql_query($sql, $link)) {
   $buffer = "UPDATE POWER $idPower, $descPower: [OK]";
} else {
   $buffer = "UPDATE POWER $idPower, $descPower: [FAILED] :" . mysql_error() ;
}

return $buffer;
}





function ctrlPower($idLogin,  $idPower, $idSwitch) {

//connect DB
$link = mysql_connect($GLOBALS['hostDB'], $GLOBALS['userDB'], $GLOBALS['passwdDB']);
if (!$link) {
    $buffer = "Connexion [FAILED]: " . mysql_error() ;
	return $buffer;
}

$db_selected = @mysql_select_db($GLOBALS['nameDB'], $link);
    if (!$db_selected) {
       $buffer .= "Impossible de sélectionner la base de données :$nameDB"  . mysql_error();
    }


$varCtrl=0;

//Powers for switch are just update, delete, disablePort, enablePort. /!\ No addSwitch is not possible to check Powers for a switch to create /!\
if (!empty($idSwitch)) {
   //Verify if service is authorized to execute Power for a switch
   
//recupere le ou les services de l'utilisateur loggé
	$resultat  = selectUserService($idLogin, "");
	if ( !is_string($resultat) ) {
		while ( $row = mysql_fetch_assoc($resultat) ) {
			$idService = $row['idService'];
			//check if service is authorized to execute command
		   $sql = "SELECT COUNT(CMDSERVICE.idService) FROM CMDSERVICE, SERVICESWITCH
                           WHERE CMDSERVICE.idService='$idService'
                           AND idPower='$idPower'
	                   AND SERVICESWITCH.idService = CMDSERVICE.idService
                           AND SERVICESWITCH.idSwitch='$idSwitch';" ;
			   
			if ($result = mysql_query($sql, $link)) {
				$buffer = "VEFICATION SERVICE'S POWER: $idService, $idPower FOR SWITCH $idSwitch : [OK]";
				while ($rowCount = mysql_fetch_row($result) ) {
					if ( $rowCount[0] == 1 ) {
						$varCtrl=1;
					}
				}
			}else {
				$buffer = "VEFICATION SERVICE'S POWER: $idService, $idPower FOR SWITCH $idSwitch : [FAILED] :" .mysql_error() ;
				return $buffer;
			}
		}
	}else{
		
         return $resultat;
	}



   //verify if user is authorized to execute Power for a switch

   $sql = "SELECT COUNT(idPower) FROM CMDSWITCH
              WHERE idUser='$idLogin'
              AND idPower='$idPower'
              AND idSwitch='$idswitch';" ;

   if ($result = mysql_query($sql, $link)) {
      $buffer = "VEFICATION USER'S POWER : $idLogin, $idPower FOR SWITCH $idSwitch : [OK]";
      while ($row = mysql_fetch_row($result) ) {
         if ( $row[0] == 1 ) {
			$varCtrl=1;
         }
	   } 
   }else {
      $buffer = "VEFICATION USER'S POWER: $idService, $idPower FOR SWITCH $idSwitch : [FAILED] :" . mysql_error() ;
      return $buffer;
   }

}else{
	
	
	//recupere le ou les services de l'utilisateur loggé
	$resultat  = selectUserService($idLogin,"");
	if ( !is_string($resultat) ) {
		while ( $row = mysql_fetch_assoc($resultat) ) {
			$idService = $row['idService'];
			//check if service is authorized to execute command
		   $sql = "SELECT COUNT(idService) FROM CMDSERVICE 
               WHERE CMDSERVICE.idService='$idService'
               AND idPower='$idPower' ;";
	           
            if ($result = mysql_query($sql, $link)) {
				$buffer = "VEFICATION SERVICE'S POWER: $idService, $idPower : [OK]";
				while ($row = mysql_fetch_row($result) ) {
					if ( $row[0] == 1 ) {
						$varCtrl=1;
					}
				}
		    }else {
				$buffer = "VEFICATION SERVICE'S POWER: $idService, $idPower : [FAILED] :" .mysql_error() ;
				return $buffer;
			}
		}
		
	}else{
		
         return $resultat;
	}

	
	

   //check if user is authorized to execute command
   $sql = "SELECT COUNT(idPower) FROM CMDUSER
              WHERE idUser='$idLogin'
              AND idPower='$idPower' " ;

   if ($result = mysql_query($sql, $link)) {
      $buffer = "VEFICATION USER'S POWER : $idLogin, $idPower : [OK]";
      while ($row = mysql_fetch_row($result) ) {
         if ( $row[0] == 1 ) {
			$varCtrl=1;
         }
	   } 
   }else {
      $buffer = "VEFICATION USER'S POWER: $idService, $idPower : [FAILED] :" . mysql_error() ;
      return $buffer;
   }



}

if ( $varCtrl == 1 ) {
	return 1 ;
}else{
	return "ACCESS DENIED FOR THIS COMMAND $idPower FOR ". $idLogin ;
}

}




?>
