query("/ROOT/CONFIG/*") as $cf) { $_SESSION['config'][$cf->nodeName] = $cf->nodeValue; } $xp_tablename = new domxpath($tablename); foreach($xp_tablename->query("/ROOT/TABLENAME/*") as $tbl) { $_SESSION['tablename'][$tbl->nodeName] = $tbl->nodeValue; } if(file_exists($_SESSION['config']['lang'].'.php')) { include($_SESSION['config']['lang'].'.php'); } else { $_SESSION['error'] = "Language file missing...
"; } ///////////////////////////////////////////////////////////////////// require("class_functions.php"); require_once("class_db.php"); require_once("class_webdav_tools.php"); ///////////////////////////////////////////////////////////////////// //Create XML function createXML($root_name,$parameters) { global $debug, $debug_file; $r_xml = new DomDocument("1.0","UTF-8"); $r_root_node = $r_xml->createElement($root_name); $r_xml->appendChild($r_root_node); if( is_array($parameters) ) { foreach( $parameters as $k_par => $d_par ) { $node = $r_xml->createElement($k_par,$d_par); $r_root_node->appendChild($node); } } else { $r_root_node->nodeValue = $parameters; } if( $debug ) $r_xml->save($debug_file); header("content-type: application/xml"); echo $r_xml->saveXML(); exit; } //////////////////////////// DEBUG ////////////////////////////// /* file_put_contents(dirname( __FILE__ ) . '/webdav/letterbox/Applet/log.txt', date("Y-m-d H:i:s")."\n:".var_export($_GET,true)."\n-----------------------------------------------------------------------------\n",FILE_APPEND); */ /////////////////////////////////////////////////////////////////// //Vérification globale des paramètres if ( !( ( isset($_GET['action']) && $_GET['action'] == "open" && isset($_GET['user_id']) && !empty($_GET['user_id']) && isset($_GET['password']) && !empty($_GET['password']) && isset($_GET['res_table']) && !empty($_GET['res_table']) && isset($_GET['res_id']) && is_numeric($_GET['res_id']) ) OR ( isset($_GET['action']) && $_GET['action'] == "close" && isset($_GET['webdav_id']) && !empty($_GET['webdav_id']) && isset($_GET['user_id']) && !empty($_GET['user_id']) && isset($_GET['password']) && !empty($_GET['password']) ) OR ( isset($_GET['action']) && $_GET['action'] == "save" && isset($_GET['webdav_id']) && !empty($_GET['webdav_id']) ) OR ( isset($_GET['action']) && $_GET['action'] == "time" && isset($_GET['webdav_id']) && !empty($_GET['webdav_id']) ) ) ) createXML("ERROR",_ERROR_CALL_WS); ////////////////////////////////////////////////////////////////// //Connection Base de données $db = new dbquery(); $db->connect(); ////////////////////////////////////////////////////////////////// //Sécurité Login + Mot de passe $db->query("SELECT COUNT(*) AS LOGIN_OK FROM ".$_SESSION['tablename']['users']." WHERE USER_ID = '".$_GET['user_id']."' AND PASSWORD = '".$_GET['password']."' AND ENABLED = 'Y' "); ////////////////////////////////////////////////////////////////// if( $_GET['action'] != "time" && $_GET['action'] != "save" && $res = $db->fetch_object() ) { if( $res->LOGIN_OK != 1 ) createXML("ERROR",_ERROR_LOGIN_WS); } //Edition d'un nouveau document if( $_GET['action'] == "open" ) { $wd = new webdav_tools(); $wd->deleteExpiredWebdav(); //Vérifier si le courrier n'est pas reservé $wd = new webdav_tools(); $reserved_by = $wd->is_reserved_by($_GET['res_table'],$_GET['res_id']); if( $reserved_by !== false && $reserved_by != $_GET['user_id'] ) { $db->query("SELECT LASTNAME, FIRSTNAME FROM ".$_SESSION['tablename']['users']." WHERE USER_ID = '".$reserved_by."' AND ENABLED = 'Y'"); if( $res = $db->fetch_object() ) { createXML("ERROR",_RESPONSE_ALREADY_RESERVED." "._BY." : ".$res->FIRSTNAME.",".$res->LASTNAME); } else { createXML("ERROR",_RESPONSE_ALREADY_RESERVED); } } $result = $wd->mountWebdav($_GET['user_id'],$_GET['res_table'],$_GET['res_id']); if( is_array($result) && count($result) > 0 ) { $result["APP_NAME"] = _LAUNCH_APPLICATION." : ".$result["APP_NAME"]; //RESERVED THE RESPONSE $wd->addExpiryDate($_GET['res_table'],$_GET['res_id'],$result["ID"],$_GET['user_id']); createXML("SUCCESS",$result); } else { createXML("ERROR",constant($result)); } } //Fin edition d'un nouveau document if ( $_GET['action'] == "save" ) { $wd = new webdav_tools(); $result = $wd->save($_GET['webdav_id']); if( $result === true ) { createXML("SUCCESS",""); } else { createXML("ERROR",constant($result)); } } //Fin edition d'un nouveau document if ( $_GET['action'] == "close" ) { $wd = new webdav_tools(); $wd->deleteExpiredWebdav(); $wd->closeWebdav($_GET['webdav_id']); createXML("SUCCESS",""); } //Temps en seconde avant expiration du delai de reservation if ( $_GET['action'] == "time" ) { $wd = new webdav_tools(); $result["TIME"] = $wd->time_before_expiration($_GET['webdav_id']); createXML("SUCCESS",$result); } ?>