Private GIT

Skip to content
Snippets Groups Projects
Commit 8e42d193 authored by Kevin Duret's avatar Kevin Duret
Browse files

improve centreon kb

parent 963d740e
No related branches found
No related tags found
No related merge requests found
......@@ -49,17 +49,26 @@ class CentreonWiki extends CentreonWebService
public function postCheckConnection()
{
$sql_host = $_POST['host'];
$sql_user = $_POST['user'];
$sql_pwd = $_POST['pwd'];
$sql_name = $_POST['name'];
$sql_host = explode(':', $this->arguments['host']);
$host = $sql_host[0];
$port = isset($sql_host[1]) ? $sql_host[1] : '3306';
$user = $this->arguments['user'];
$password = $this->arguments['pwd'];
$db = $this->arguments['name'];
try {
$dbh = new PDO('mysql:host=' . $sql_host . ';dbname=' . $sql_name, $sql_user, $sql_pwd);
die(json_encode(array('outcome' => true)));
} catch (PDOException $ex) {
die(json_encode(array('outcome' => false, 'message' => $ex->getMessage())));
new PDO('mysql:host=' . $host . ';port=' . $port . ';dbname=' . $db, $user, $password);
$outcome = true;
$message = _('Connection Successful');
} catch (PDOException $e) {
$outcome = false;
$message = $e->getMessage();
}
return array(
'outcome' => $outcome,
'message' => $message
);
}
public function postDeletePage()
......@@ -70,16 +79,14 @@ class CentreonWiki extends CentreonWebService
$wikiVersion = getWikiVersion($apiWikiURL);
$login = $conf['kb_wiki_account'];
$pass = $conf['kb_wiki_password'];
$title = $_POST['title'];
$title = $this->arguments['title'];
$path_cookie = '/tmp/temporary_wiki_connection.txt';
if (!file_exists($path_cookie)) {
touch($path_cookie);
}
//////////////////////////////////////////////////////////////////////////
// Get Connexion Cookie/Token
//////////////////////////////////////////////////////////////////////////
// Get Connection Cookie/Token
$postfields = array(
'action' => 'login',
'format' => 'json',
......@@ -102,37 +109,26 @@ class CentreonWiki extends CentreonWebService
// /!\ don't close the curl connection or initialize a new one or your session id will change !
//////////////////////////////////////////////////////////////////////////
// Launch Connexion
//////////////////////////////////////////////////////////////////////////
// Launch Connection
$postfields = array(
'action' => 'login',
'format' => 'json',
'lgtoken' => $tokenConnexion,
'lgname' => $login,
'lgpassword' => $pass
);
curl_setopt($curl, CURLOPT_URL, $apiWikiURL);
curl_setopt($curl, CURLOPT_COOKIESESSION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postfields);
curl_setopt($curl, CURLOPT_COOKIEFILE, $path_cookie); //get the previous cookie
$connexionToken = curl_exec($curl);
$json_connexion = json_decode($connexionToken, true);
$resultLogin = $json_connexion['login']['result'];
if ($resultLogin != 'Success') {
die(json_encode(array('result' => $resultLogin)));
return array(
'result' => $resultLogin
);
}
//////////////////////////////////////////////////////////////////////////
// Get Delete Token
//////////////////////////////////////////////////////////////////////////
if ($wikiVersion >= 1.20) {
$postfields = array(
'action' => 'tokens',
......@@ -148,47 +144,31 @@ class CentreonWiki extends CentreonWebService
'titles' => $title
);
}
curl_setopt($curl, CURLOPT_URL, $apiWikiURL);
curl_setopt($curl, CURLOPT_COOKIESESSION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postfields);
curl_setopt($curl, CURLOPT_COOKIEFILE, $path_cookie); //get the previous cookie
$deleteToken = curl_exec($curl);
$json_delete = json_decode($deleteToken, true);
if ($wikiVersion >= 1.20) {
$tokenDelete = $json_delete['tokens']['deletetoken'];
} else {
$tokenDelete = $json_delete['query']['pages'][2]['deletetoken'];
$page = array_pop($json_delete['query']['pages']);
$tokenDelete = $page['deletetoken'];
}
//////////////////////////////////////////////////////////////////////////
// Delete Page
//////////////////////////////////////////////////////////////////////////
$postfields = array(
'action' => 'delete',
'title' => $title,
'token' => $tokenDelete
);
curl_setopt($curl, CURLOPT_URL, $apiWikiURL);
curl_setopt($curl, CURLOPT_COOKIESESSION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postfields);
curl_setopt($curl, CURLOPT_COOKIEFILE, $path_cookie); //get the previous cookie
$delete = curl_exec($curl);
$json_delete = json_decode($delete, true);
$tokenDelete = $json_delete['tokens']['deletetoken'];
curl_exec($curl);
// close the curl connection
curl_close($curl);
die(json_encode(array('result' => 'delete')));
return array(
'result' => 'delete'
);
}
}
......@@ -57,36 +57,30 @@
</form>
{$helptext}
{literal}
<script type="text/javascript">
function checkWikiConnection() {
jQuery.ajax({
type : "POST",
url : "./include/common/webServices/rest/internal.php?object=centreon_wiki&action=checkConnection",
data : {
data : JSON.stringify({
name: jQuery( "input[name='kb_db_name']" ).val(),
user: jQuery( "input[name='kb_db_user']" ).val(),
pwd: jQuery( "input[name='kb_db_password']" ).val(),
host: jQuery( "input[name='kb_db_host']" ).val()
},
}),
success : function(data) {
var result = eval('(' + data + ')');
var classpopin =''
var msg =''
var classpopin = 'success2';
var msg = data.message;
if(result.outcome == false ){
msg = result.message;
if (!data.outcome) {
classpopin ='error';
} else {
msg = 'Connection successful';
classpopin = 'success2';
}
var span = '<span class="msg-field ' + classpopin + '">' + msg + '</span>';
jQuery('#msg-wrapper').html(span);
jQuery('#testConnection').centreonPopin("open");
}
});
}
......
......@@ -132,6 +132,7 @@ $res = $pearDB->query("SELECT FOUND_ROWS() as numrows");
$row = $res->fetchRow();
$rows = $row['numrows'];
$selection = array();
while ($data = $DBRESULT->fetchRow()) {
if ($data["host_register"] == 0) {
$selection[$data["host_name"]] = $data["host_id"];
......
......@@ -144,6 +144,7 @@ $res = $pearDB->query("SELECT FOUND_ROWS() as numrows");
$row = $res->fetchRow();
$rows = $row['numrows'];
$selection = array();
while ($data = $DBRESULT->fetchRow()) {
if ($data["host_register"] == 1) {
$selection[$data["host_name"]] = $data["host_id"];
......
......@@ -128,6 +128,7 @@ if (isset($_REQUEST['searchServiceTemplate']) && $_REQUEST['searchServiceTemplat
}
$query .= "ORDER BY $orderby $order LIMIT " . $num * $limit . ", " . $limit;
$DBRESULT = $pearDB->query($query);
$selection = array();
while ($data = $DBRESULT->fetchRow()) {
$data["service_description"] = str_replace("#S#", "/", $data["service_description"]);
$data["service_description"] = str_replace("#BS#", "\\", $data["service_description"]);
......
......@@ -23,12 +23,12 @@ function versionCentreon($pearDB)
return null;
}
$row = $res->fetchRow();
return $row['value'];
}
function Mediawikiconfigexist($url)
{
$file_headers = @get_headers($url);
if ($file_headers[0] == 'HTTP/1.1 404 Not Found') {
return false;
......@@ -63,19 +63,16 @@ function getWikiConfig($pearDB)
function getWikiVersion($apiWikiURL)
{
if (is_null($apiWikiURL)) {
return;
}
// Création du flux
$post = array(
'action' => 'query',
'meta' => 'siteinfo',
'format' => 'json',
);
$data = http_build_query($post);
$httpOpts = array(
......
......@@ -228,11 +228,11 @@
jQuery.ajax({
type : "POST",
url : "./include/common/webServices/rest/internal.php?object=centreon_wiki&action=deletePage",
data : {
data : JSON.stringify({
title: title
},
}),
success : function(data) {
location.reload()
//location.reload()
}
});
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment