API CV #8677
This commit is contained in:
parent
9f03db37c1
commit
4f67ec2f22
|
@ -107,24 +107,33 @@ $auth_class = io_safe_output(
|
||||||
get_parameter('auth_class', 'PandoraFMS\User')
|
get_parameter('auth_class', 'PandoraFMS\User')
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$page = (string) get_parameter('page');
|
||||||
|
$page = safe_url_extraclean($page);
|
||||||
|
$page .= '.php';
|
||||||
$public_hash = get_parameter('auth_hash', false);
|
$public_hash = get_parameter('auth_hash', false);
|
||||||
$public_login = false;
|
$public_login = false;
|
||||||
// Check user.
|
|
||||||
if (class_exists($auth_class) === false || $public_hash === false) {
|
|
||||||
check_login();
|
|
||||||
} else {
|
|
||||||
if ($auth_class::validatePublicHash($public_hash) === false) {
|
|
||||||
db_pandora_audit(
|
|
||||||
AUDIT_LOG_USER_REGISTRATION,
|
|
||||||
'Trying to access public dashboard (Invalid public hash)'
|
|
||||||
);
|
|
||||||
include 'general/noaccess.php';
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
// OK. Simulated user log in. If you want to use your own auth_class
|
|
||||||
// remember to set $config['force_instant_logout'] to true to avoid
|
if (false === ((bool) get_parameter('doLogin', false) === true
|
||||||
// persistent user login.
|
&& $page === 'include/rest-api/index.php')
|
||||||
|
) {
|
||||||
|
// Check user.
|
||||||
|
if (class_exists($auth_class) === false || $public_hash === false) {
|
||||||
|
check_login();
|
||||||
|
} else {
|
||||||
|
if ($auth_class::validatePublicHash($public_hash) === false) {
|
||||||
|
db_pandora_audit(
|
||||||
|
AUDIT_LOG_USER_REGISTRATION,
|
||||||
|
'Trying to access public dashboard (Invalid public hash)'
|
||||||
|
);
|
||||||
|
include 'general/noaccess.php';
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// OK. Simulated user log in. If you want to use your own auth_class
|
||||||
|
// remember to set $config['force_instant_logout'] to true to avoid
|
||||||
|
// persistent user login.
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ob_start();
|
ob_start();
|
||||||
|
@ -136,9 +145,6 @@ if (file_exists(ENTERPRISE_DIR.'/load_enterprise.php') === true) {
|
||||||
|
|
||||||
$config['remote_addr'] = $_SERVER['REMOTE_ADDR'];
|
$config['remote_addr'] = $_SERVER['REMOTE_ADDR'];
|
||||||
|
|
||||||
$page = (string) get_parameter('page');
|
|
||||||
$page = safe_url_extraclean($page);
|
|
||||||
$page .= '.php';
|
|
||||||
$config['id_user'] = $_SESSION['id_usuario'];
|
$config['id_user'] = $_SESSION['id_usuario'];
|
||||||
$isFunctionSkins = enterprise_include_once('include/functions_skins.php');
|
$isFunctionSkins = enterprise_include_once('include/functions_skins.php');
|
||||||
if ($isFunctionSkins !== ENTERPRISE_NOT_HOOK) {
|
if ($isFunctionSkins !== ENTERPRISE_NOT_HOOK) {
|
||||||
|
|
|
@ -95,6 +95,7 @@ class User implements PublicLogin
|
||||||
);
|
);
|
||||||
if ($user_in_db !== false) {
|
if ($user_in_db !== false) {
|
||||||
$config['id_usuario'] = $user_in_db;
|
$config['id_usuario'] = $user_in_db;
|
||||||
|
$config['id_user'] = $user_in_db;
|
||||||
|
|
||||||
// Originally at api.php.
|
// Originally at api.php.
|
||||||
if (session_status() === PHP_SESSION_NONE) {
|
if (session_status() === PHP_SESSION_NONE) {
|
||||||
|
@ -116,6 +117,25 @@ class User implements PublicLogin
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Process login
|
||||||
|
*
|
||||||
|
* @param array|null $data Data.
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
public static function login(?array $data)
|
||||||
|
{
|
||||||
|
$user = new self($data);
|
||||||
|
|
||||||
|
if ($user === null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generates a hash to authenticate in public views.
|
* Generates a hash to authenticate in public views.
|
||||||
*
|
*
|
||||||
|
|
|
@ -16,6 +16,7 @@ enterprise_include('include/functions_metaconsole.php');
|
||||||
use Models\VisualConsole\Container as VisualConsole;
|
use Models\VisualConsole\Container as VisualConsole;
|
||||||
use Models\VisualConsole\View as Viewer;
|
use Models\VisualConsole\View as Viewer;
|
||||||
use Models\VisualConsole\Item as Item;
|
use Models\VisualConsole\Item as Item;
|
||||||
|
use PandoraFMS\User;
|
||||||
|
|
||||||
$method = get_parameter('method');
|
$method = get_parameter('method');
|
||||||
if ($method) {
|
if ($method) {
|
||||||
|
@ -35,6 +36,7 @@ if ($method) {
|
||||||
$visualConsoleId = (int) get_parameter('visualConsoleId');
|
$visualConsoleId = (int) get_parameter('visualConsoleId');
|
||||||
$getVisualConsole = (bool) get_parameter('getVisualConsole');
|
$getVisualConsole = (bool) get_parameter('getVisualConsole');
|
||||||
$getVisualConsoleItems = (bool) get_parameter('getVisualConsoleItems');
|
$getVisualConsoleItems = (bool) get_parameter('getVisualConsoleItems');
|
||||||
|
$doLogin = (bool) get_parameter('doLogin');
|
||||||
$updateVisualConsoleItem = (bool) get_parameter('updateVisualConsoleItem');
|
$updateVisualConsoleItem = (bool) get_parameter('updateVisualConsoleItem');
|
||||||
$createVisualConsoleItem = (bool) get_parameter('createVisualConsoleItem');
|
$createVisualConsoleItem = (bool) get_parameter('createVisualConsoleItem');
|
||||||
$getVisualConsoleItem = (bool) get_parameter('getVisualConsoleItem');
|
$getVisualConsoleItem = (bool) get_parameter('getVisualConsoleItem');
|
||||||
|
@ -53,6 +55,31 @@ $loadtabs = (bool) get_parameter('loadtabs');
|
||||||
|
|
||||||
ob_clean();
|
ob_clean();
|
||||||
|
|
||||||
|
if ($doLogin === true) {
|
||||||
|
$id_user = get_parameter('id_user', '');
|
||||||
|
$password = get_parameter('password', '');
|
||||||
|
|
||||||
|
if (User::login(
|
||||||
|
[
|
||||||
|
'id_usuario' => $id_user,
|
||||||
|
'password' => $password,
|
||||||
|
]
|
||||||
|
) === true
|
||||||
|
) {
|
||||||
|
echo json_encode(['auth_hash' => User::generatePublicHash()]);
|
||||||
|
} else {
|
||||||
|
db_pandora_audit(
|
||||||
|
AUDIT_LOG_ACL_VIOLATION,
|
||||||
|
'Trying to login using invalid credentials'
|
||||||
|
);
|
||||||
|
http_response_code(403);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if ($visualConsoleId) {
|
if ($visualConsoleId) {
|
||||||
// Retrieve the visual console.
|
// Retrieve the visual console.
|
||||||
$visualConsole = VisualConsole::fromDB(['id' => $visualConsoleId], $ratio);
|
$visualConsole = VisualConsole::fromDB(['id' => $visualConsoleId], $ratio);
|
||||||
|
|
|
@ -0,0 +1,114 @@
|
||||||
|
# Documentación de la api.
|
||||||
|
|
||||||
|
path = `http://localhost/pandora_console/ajax.php`
|
||||||
|
|
||||||
|
# Los metodos son:
|
||||||
|
|
||||||
|
- ## Pedir token:
|
||||||
|
|
||||||
|
- **data:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
page: include/rest-api/index,
|
||||||
|
doLogin: 1,
|
||||||
|
id_user: xxxxxx,
|
||||||
|
password: xxxxx
|
||||||
|
}
|
||||||
|
```
|
||||||
|
- **ejemplo resultado:**
|
||||||
|
```
|
||||||
|
ce015de2941dac933621d23d3f32ac5ead8254b7ea3f390494cfcf586d38de27
|
||||||
|
```
|
||||||
|
|
||||||
|
- **ejemplo peticion:**
|
||||||
|
```
|
||||||
|
curl "http://localhost/pandora_console/ajax.php?page=include/rest-api/index&doLogin=1&id_user=admin&password=pandora"
|
||||||
|
```
|
||||||
|
|
||||||
|
- ## Traer todos los elementos de una CV.
|
||||||
|
|
||||||
|
- **data:**
|
||||||
|
```javascript
|
||||||
|
{
|
||||||
|
page: include/rest-api/index,
|
||||||
|
id_user: XXX,
|
||||||
|
getVisualConsoleItems: 1
|
||||||
|
visualConsoleId: XX,
|
||||||
|
size: [
|
||||||
|
widht => XXX,
|
||||||
|
height => YYY
|
||||||
|
],
|
||||||
|
widthScreen: xxx
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
- **ejemplo resultado:**
|
||||||
|
```javascript
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"aclGroupId":0,
|
||||||
|
"agentDisabled":false,
|
||||||
|
"cacheExpiration":0,
|
||||||
|
"colorStatus":"#B2B2B2",
|
||||||
|
"height":132,
|
||||||
|
"id":180,
|
||||||
|
"image":"worldmap",
|
||||||
|
"imageSrc":"http:\/\/localhost\/pandora_console\/images\/console\/icons\/worldmap.png",
|
||||||
|
"isLinkEnabled":true,
|
||||||
|
"isOnTop":false,"label":"",
|
||||||
|
"labelPosition":"down",
|
||||||
|
"link":"http:\/\/localhost\/pandora_console\/index.php?sec=network&sec2=operation%2Fvisual_console%2Fview&id=3&pure=0",
|
||||||
|
"linkedLayoutId":3,
|
||||||
|
"linkedLayoutNodeId":0,"linkedLayoutStatusType":"default","moduleDisabled":false,
|
||||||
|
"parentId":0,
|
||||||
|
"type":5,
|
||||||
|
"width":200,
|
||||||
|
"x":1675,
|
||||||
|
"y":184
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"aclGroupId":0,
|
||||||
|
"agentDisabled":false,
|
||||||
|
"cacheExpiration":0,
|
||||||
|
"colorStatus":"#B2B2B2","height":132,"id":181,"image":"europemap","imageSrc":"http:\/\/localhost\/pandora_console\/images\/console\/icons\/europemap.png",
|
||||||
|
"isLinkEnabled":true,
|
||||||
|
"isOnTop":false,
|
||||||
|
"label":"",
|
||||||
|
"labelPosition":"down",
|
||||||
|
"link":"http:\/\/localhost\/pandora_console\/index.php?sec=network&sec2=operation%2Fvisual_console%2Fview&id=4&pure=0",
|
||||||
|
"linkedLayoutId":4,
|
||||||
|
"linkedLayoutNodeId":0,"linkedLayoutStatusType":"default","moduleDisabled":false,
|
||||||
|
"parentId":0,
|
||||||
|
"type":5,
|
||||||
|
"width":200,
|
||||||
|
"x":1673,
|
||||||
|
"y":340
|
||||||
|
}
|
||||||
|
...
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
- **ejemplo peticion:**
|
||||||
|
```
|
||||||
|
curl "http://localhost/pandora_console/ajax.php?page=include/rest-api/index&getVisualConsoleItems=1&auth_hash=ce015de2941dac933621d23d3f32ac5ead8254b7ea3f390494cfcf586d38de27&visualConsoleId=7&id_user=admin"
|
||||||
|
```
|
||||||
|
|
||||||
|
- ## Traer los datos del propio item.
|
||||||
|
|
||||||
|
- **data:**
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
{
|
||||||
|
page: include/rest-api/index,
|
||||||
|
,
|
||||||
|
getVisualConsoleItem: 1,
|
||||||
|
visualConsoleId: XX,
|
||||||
|
visualConsoleItemId: XX
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
- **ejemplo resultado:**
|
||||||
|
`javascript { "aclGroupId":0, "agentDisabled":false, "cacheExpiration":0, "clockFormat":"time", "clockTimezone":"Europe\/Madrid", "clockTimezoneOffset":3600, "clockType":"digital", "color":"#FFFFFF", "colorStatus":"#B2B2B2", "height":50, "id":212, "isLinkEnabled":true, "isOnTop":false,"label":"", "labelPosition":"down", "link":null, "linkedLayoutId":0, "linkedLayoutNodeId":0, "linkedLayoutStatusType":"default", "moduleDisabled":false, "parentId":0, "showClockTimezone":true, "type":19, "width":100, "x":848, "y":941 }`
|
||||||
|
|
||||||
|
- **ejemplo peticion:**
|
||||||
|
`curl "http://localhost/pandora_console/ajax.php?page=include/rest-api/index&getVisualConsoleItem=1&auth_hash=ce015de2941dac933621d23d3f32ac5ead8254b7ea3f390494cfcf586d38de27&visualConsoleId=7&visualConsoleItemId=212&id_user=admin"`
|
Loading…
Reference in New Issue