v.1.1 changes 16-04-2026:
- Minor changes to interface. - Fixed different missing includes. - Access now denied to api calls that are related to disabled modules. - Fixed sorting of CPU and memory in server overview.
This commit is contained in:
@@ -1,173 +1,173 @@
|
||||
<?php
|
||||
|
||||
use api\classes\API_usergroups;
|
||||
use bin\php\Classes\pageNavbar;
|
||||
|
||||
if (!defined('APP_INIT')) {
|
||||
exit;
|
||||
}
|
||||
# IDE Section
|
||||
|
||||
# Includes Section
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/bin/php/Classes/pageNavbar.php');
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/api/classes/API_usergroups.php');
|
||||
|
||||
# Check permissions
|
||||
$API = new API_usergroups();
|
||||
if (!$API->checkPermissions('admin-access-control-user-groups', 'RO', true)) {
|
||||
echo 'error 401 unauthorized';
|
||||
exit;
|
||||
}
|
||||
|
||||
# Page functions
|
||||
|
||||
# JS Scripts to load for this page
|
||||
$jsScriptLoadData['breadCrumbs'] = true;
|
||||
$jsScriptLoadData['updatePermissions'] = true;
|
||||
|
||||
# PageClasses Setup
|
||||
$pageNavbar = new pageNavbar(true);
|
||||
|
||||
# Retrieve Information for the page
|
||||
|
||||
$user_group_uuid = htmlspecialchars($_GET['user_group_view'], ENT_QUOTES, 'UTF-8');
|
||||
|
||||
$_GET['user_group_uuid'] = $user_group_uuid;
|
||||
$API_usergroups = new API_usergroups();
|
||||
$_GET['builder'] = [1 => ['where' => [0 => 'user_group_uuid', 1 => $user_group_uuid]]];
|
||||
$requiredFields = ['user_group_uuid' => ['type' => 'uuid']];
|
||||
$API_usergroups->validateData($requiredFields);
|
||||
$user_group = $API_usergroups->getUsergroup()[0];
|
||||
|
||||
$query = "SELECT * FROM vc_user_group_permissions_portal
|
||||
INNER JOIN vc_permissions ON vc_user_group_permissions_portal.permission_uuid = vc_permissions.permission_uuid
|
||||
WHERE user_group_uuid = ?";
|
||||
$stmt = $GLOBALS['pdo']->prepare($query);
|
||||
$stmt->execute([$user_group_uuid]);
|
||||
$group_permissions = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
# Set breadcrumb data
|
||||
array_push($GLOBALS['breadCrumbArray'], array('display' => __('user_gr1oups'), 'href' => '/accesscontrol/#user-groups'));
|
||||
array_push($GLOBALS['breadCrumbArray'], array('display' => $user_group['user_group_name'], 'href' => ''));
|
||||
|
||||
# Start page output
|
||||
$pageNavbar->outPutNavbar();
|
||||
?>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<h1>
|
||||
<i class="fa-solid fa-user-group"></i> <?php echo __('user_group') . ': ' . $user_group['user_group_name'] ?>
|
||||
</h1>
|
||||
</div>
|
||||
<div class="col-md-6 col-lg-6">
|
||||
<table>
|
||||
<tr>
|
||||
<td>user_group_uuid:</td>
|
||||
<td><?php echo $user_group['user_group_uuid'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>user_group_name:</td>
|
||||
<td><?php echo $user_group['user_group_name'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>user_group_slugify:</td>
|
||||
<td><?php echo $user_group['user_group_slugify'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>user_group_type:</td>
|
||||
<td><?php echo $user_group['user_group_type'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>user_group_weight:</td>
|
||||
<td><?php echo $user_group['user_group_weight'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>user_group_create_timestamp:</td>
|
||||
<td><?php echo $user_group['user_group_create_timestamp'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>user_group_modified_timestamp:</td>
|
||||
<td><?php echo $user_group['user_group_modified_timestamp'] ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h1>
|
||||
<i class="fa-solid fa-lock"></i> <?php echo __('permission') ?>
|
||||
</h1>
|
||||
<div class="table-responsive">
|
||||
<table class="multi-filter-select display table table-striped table-hover" data-skip-columns="0,5">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?php echo __('user_group') ?></th>
|
||||
<th><?php echo __('NA') ?></th>
|
||||
<th><?php echo __('RO') ?></th>
|
||||
<th><?php echo __('RW') ?></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th><?php echo __('user_group') ?></th>
|
||||
<th><?php echo __('NA') ?></th>
|
||||
<th><?php echo __('RO') ?></th>
|
||||
<th><?php echo __('RW') ?></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
<tbody>
|
||||
<?php
|
||||
foreach ($group_permissions as $group_permissions_data) { ?>
|
||||
<tr>
|
||||
<td><?php echo $group_permissions_data['permission_name'] ?> </td>
|
||||
<td>
|
||||
<label class="switch">
|
||||
<input type="checkbox" class="checkbox" data-permission-uuid="<?= $group_permissions_data['permission_uuid'] ?>" data-user-group-uuid="<?= $group_permissions_data['user_group_uuid'] ?>" data-value="NA" data-api-url="/api/v1/access-rights/" <?php echo(($group_permissions_data['permission_value'] == 'NA') ? 'checked' : '') ?>
|
||||
<?php echo ($API->checkPermissions('admin-access-control-permissions', 'RW', true)) ? '' : 'disabled' ?>>
|
||||
<div class="slider"></div>
|
||||
</label>
|
||||
</td>
|
||||
<td>
|
||||
<label class="switch">
|
||||
<input type="checkbox" class="checkbox" data-permission-uuid="<?= $group_permissions_data['permission_uuid'] ?>" data-user-group-uuid="<?= $group_permissions_data['user_group_uuid'] ?>" data-value="RO" data-api-url="/api/v1/access-rights/" <?php echo(($group_permissions_data['permission_value'] == 'RO') ? 'checked' : '') ?>
|
||||
<?php echo ($API->checkPermissions('admin-access-control-permissions', 'RW', true)) ? '' : 'disabled' ?>>
|
||||
<div class="slider"></div>
|
||||
</label>
|
||||
</td>
|
||||
<td>
|
||||
<label class="switch">
|
||||
<input type="checkbox" class="checkbox" data-permission-uuid="<?= $group_permissions_data['permission_uuid'] ?>" data-user-group-uuid="<?= $group_permissions_data['user_group_uuid'] ?>" data-value="RW" data-api-url="/api/v1/access-rights/" <?php echo(($group_permissions_data['permission_value'] == 'RW') ? 'checked' : '') ?>
|
||||
<?php echo ($API->checkPermissions('admin-access-control-permissions', 'RW', true)) ? '' : 'disabled' ?>>
|
||||
<div class="slider"></div>
|
||||
</label>
|
||||
</td>
|
||||
<td>
|
||||
<a href="#" class="btn btn-info btn-sm btn-rounded" data-bs-toggle="modal" data-bs-target="#infoModal<?php echo $group_permissions_data['permission_uuid'] ?>"><i class="fa-solid fa-circle-info"></i></a>
|
||||
</td>
|
||||
<div class="modal fade" id="infoModal<?php echo $group_permissions_data['permission_uuid'] ?>" tabindex="-1" aria-labelledby="infoModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-dialog-centered modal-lg">
|
||||
<div class="modal-content bg-black2">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="infoModalLabel">
|
||||
<i class="fas fa-info-circle"></i> <?php echo __('information') ?>
|
||||
</h5>
|
||||
<button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<?php echo $group_permissions_data['permission_description'] ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
|
||||
use api\classes\API_usergroups;
|
||||
use bin\php\Classes\pageNavbar;
|
||||
|
||||
if (!defined('APP_INIT')) {
|
||||
exit;
|
||||
}
|
||||
# IDE Section
|
||||
|
||||
# Includes Section
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/bin/php/Classes/pageNavbar.php');
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/api/classes/API_usergroups.php');
|
||||
|
||||
# Check permissions
|
||||
$API = new API_usergroups();
|
||||
if (!$API->checkPermissions('admin-access-control-user-groups', 'RO', true)) {
|
||||
echo 'error 401 unauthorized';
|
||||
exit;
|
||||
}
|
||||
|
||||
# Page functions
|
||||
|
||||
# JS Scripts to load for this page
|
||||
$jsScriptLoadData['breadCrumbs'] = true;
|
||||
$jsScriptLoadData['updatePermissions'] = true;
|
||||
|
||||
# PageClasses Setup
|
||||
$pageNavbar = new pageNavbar(true);
|
||||
|
||||
# Retrieve Information for the page
|
||||
|
||||
$user_group_uuid = htmlspecialchars($_GET['user_group_view'], ENT_QUOTES, 'UTF-8');
|
||||
|
||||
$_GET['user_group_uuid'] = $user_group_uuid;
|
||||
$API_usergroups = new API_usergroups();
|
||||
$_GET['builder'] = [1 => ['where' => [0 => 'user_group_uuid', 1 => $user_group_uuid]]];
|
||||
$requiredFields = ['user_group_uuid' => ['type' => 'uuid']];
|
||||
$API_usergroups->validateData($requiredFields);
|
||||
$user_group = $API_usergroups->getUsergroup()[0];
|
||||
|
||||
$query = "SELECT * FROM vc_user_group_permissions_portal
|
||||
INNER JOIN vc_permissions ON vc_user_group_permissions_portal.permission_uuid = vc_permissions.permission_uuid
|
||||
WHERE user_group_uuid = ?";
|
||||
$stmt = $GLOBALS['pdo']->prepare($query);
|
||||
$stmt->execute([$user_group_uuid]);
|
||||
$group_permissions = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
# Set breadcrumb data
|
||||
array_push($GLOBALS['breadCrumbArray'], array('display' => __('user_groups'), 'href' => '/accesscontrol/#user-groups'));
|
||||
array_push($GLOBALS['breadCrumbArray'], array('display' => $user_group['user_group_name'], 'href' => ''));
|
||||
|
||||
# Start page output
|
||||
$pageNavbar->outPutNavbar();
|
||||
?>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<h1>
|
||||
<i class="fa-solid fa-user-group"></i> <?php echo __('user_group') . ': ' . $user_group['user_group_name'] ?>
|
||||
</h1>
|
||||
</div>
|
||||
<div class="col-md-6 col-lg-6">
|
||||
<table>
|
||||
<tr>
|
||||
<td>user_group_uuid:</td>
|
||||
<td><?php echo $user_group['user_group_uuid'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>user_group_name:</td>
|
||||
<td><?php echo $user_group['user_group_name'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>user_group_slugify:</td>
|
||||
<td><?php echo $user_group['user_group_slugify'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>user_group_type:</td>
|
||||
<td><?php echo $user_group['user_group_type'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>user_group_weight:</td>
|
||||
<td><?php echo $user_group['user_group_weight'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>user_group_create_timestamp:</td>
|
||||
<td><?php echo $user_group['user_group_create_timestamp'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>user_group_modified_timestamp:</td>
|
||||
<td><?php echo $user_group['user_group_modified_timestamp'] ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h1>
|
||||
<i class="fa-solid fa-lock"></i> <?php echo __('permission') ?>
|
||||
</h1>
|
||||
<div class="table-responsive">
|
||||
<table class="multi-filter-select display table table-striped table-hover" data-skip-columns="0,5">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?php echo __('user_group') ?></th>
|
||||
<th><?php echo __('NA') ?></th>
|
||||
<th><?php echo __('RO') ?></th>
|
||||
<th><?php echo __('RW') ?></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th><?php echo __('user_group') ?></th>
|
||||
<th><?php echo __('NA') ?></th>
|
||||
<th><?php echo __('RO') ?></th>
|
||||
<th><?php echo __('RW') ?></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
<tbody>
|
||||
<?php
|
||||
foreach ($group_permissions as $group_permissions_data) { ?>
|
||||
<tr>
|
||||
<td><?php echo $group_permissions_data['permission_name'] ?> </td>
|
||||
<td>
|
||||
<label class="switch">
|
||||
<input type="checkbox" class="checkbox" data-permission-uuid="<?= $group_permissions_data['permission_uuid'] ?>" data-user-group-uuid="<?= $group_permissions_data['user_group_uuid'] ?>" data-value="NA" data-api-url="/api/v1/access-rights/" <?php echo(($group_permissions_data['permission_value'] == 'NA') ? 'checked' : '') ?>
|
||||
<?php echo ($API->checkPermissions('admin-access-control-permissions', 'RW', true)) ? '' : 'disabled' ?>>
|
||||
<div class="slider"></div>
|
||||
</label>
|
||||
</td>
|
||||
<td>
|
||||
<label class="switch">
|
||||
<input type="checkbox" class="checkbox" data-permission-uuid="<?= $group_permissions_data['permission_uuid'] ?>" data-user-group-uuid="<?= $group_permissions_data['user_group_uuid'] ?>" data-value="RO" data-api-url="/api/v1/access-rights/" <?php echo(($group_permissions_data['permission_value'] == 'RO') ? 'checked' : '') ?>
|
||||
<?php echo ($API->checkPermissions('admin-access-control-permissions', 'RW', true)) ? '' : 'disabled' ?>>
|
||||
<div class="slider"></div>
|
||||
</label>
|
||||
</td>
|
||||
<td>
|
||||
<label class="switch">
|
||||
<input type="checkbox" class="checkbox" data-permission-uuid="<?= $group_permissions_data['permission_uuid'] ?>" data-user-group-uuid="<?= $group_permissions_data['user_group_uuid'] ?>" data-value="RW" data-api-url="/api/v1/access-rights/" <?php echo(($group_permissions_data['permission_value'] == 'RW') ? 'checked' : '') ?>
|
||||
<?php echo ($API->checkPermissions('admin-access-control-permissions', 'RW', true)) ? '' : 'disabled' ?>>
|
||||
<div class="slider"></div>
|
||||
</label>
|
||||
</td>
|
||||
<td>
|
||||
<a href="#" class="btn btn-info btn-sm btn-rounded" data-bs-toggle="modal" data-bs-target="#infoModal<?php echo $group_permissions_data['permission_uuid'] ?>"><i class="fa-solid fa-circle-info"></i></a>
|
||||
</td>
|
||||
<div class="modal fade" id="infoModal<?php echo $group_permissions_data['permission_uuid'] ?>" tabindex="-1" aria-labelledby="infoModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-dialog-centered modal-lg">
|
||||
<div class="modal-content bg-black2">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="infoModalLabel">
|
||||
<i class="fas fa-info-circle"></i> <?php echo __('information') ?>
|
||||
</h5>
|
||||
<button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<?php echo $group_permissions_data['permission_description'] ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,161 +1,167 @@
|
||||
<?php
|
||||
|
||||
use api\classes\API;
|
||||
use bin\php\Classes\pageNavbar;
|
||||
|
||||
if (!defined('APP_INIT')) {
|
||||
exit;
|
||||
}
|
||||
# IDE Section
|
||||
|
||||
|
||||
# Includes Section
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/bin/php/Classes/pageNavbar.php');
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/api/classes/API.php');
|
||||
|
||||
# Check permissions
|
||||
$API = new API();
|
||||
$API->checkPermissions('admin-sources', 'RO');
|
||||
|
||||
# Page functions
|
||||
|
||||
|
||||
# JS Scripts to load for this page
|
||||
$jsScriptLoadData['activeTabOnRefresh'] = true;
|
||||
$jsScriptLoadData['copyInputValue'] = true;
|
||||
$jsScriptLoadData['updateToggle'] = true;
|
||||
$jsScriptLoadData['breadCrumbs'] = true;
|
||||
$jsScriptLoadData['inserve_source'] = true;
|
||||
$jsScriptLoadData['validateJson'] = true;
|
||||
|
||||
# PageClasses Setup
|
||||
$pageNavbar = new pageNavbar(true);
|
||||
|
||||
# Retrieve Information for the page
|
||||
$inserve_settings = $GLOBALS['conn']->query("SELECT * FROM system_sources WHERE source_name = 'inserve'")->fetch_assoc();
|
||||
|
||||
# Set breadcrumb data
|
||||
array_push($GLOBALS['breadCrumbArray'], array('display' => __('portal_management'), 'href' => '/systemconfig'));
|
||||
array_push($GLOBALS['breadCrumbArray'], array('display' => __('sources'), 'href' => '/systemconfig#sources'));
|
||||
array_push($GLOBALS['breadCrumbArray'], array('display' => 'Inserve', 'href' => ''));
|
||||
|
||||
|
||||
# Start page output
|
||||
$pageNavbar->outPutNavbar();
|
||||
?>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12 col-lg-12">
|
||||
<div class="tab-content" id="v-pills-with-icon-tabContent">
|
||||
<div class="card">
|
||||
<div class="mx-2 pb-0 card-body">
|
||||
<h1 class="">Inserve settings</h1>
|
||||
<p>
|
||||
Enter the necessary API details to set up and configure your connection to the Inserve API. This allows Sentri to communicate with Inserve and retrieve the data it needs. </p>
|
||||
<hr>
|
||||
</div>
|
||||
|
||||
<form id="FormValidation" method="post" action="/api/v1/system/sources/inserve/">
|
||||
<input type="hidden" name="_method" value="POST">
|
||||
<input type="hidden" name="_return" value="/system/sources/inserve">
|
||||
<input type="hidden" name="source_name" value="inserve">
|
||||
<div class="card-body">
|
||||
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="source_url" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('inserve_url') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<input type="text" class="form-control" id="source_url" name="source_url" value="<?php echo ($inserve_settings) ? $inserve_settings['source_url'] : '' ?>" placeholder="" required/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="source_auth_token" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('api_token') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<input type="text" class="form-control" id="source_auth_token" name="source_auth_token" value="" autocomplete="off" placeholder="<?php echo ($inserve_settings) ? substr($inserve_settings['source_auth_token'], 0, 6) . str_repeat('*', max(0, strlen($inserve_settings['source_auth_token']) - 6)) : ''; ?>" required/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer py-4">
|
||||
<div class="row">
|
||||
<div class="col d-flex justify-content-end">
|
||||
<button class="btn btn-success mx-2 test-inserve-connection-btn">
|
||||
<i class="fa-solid fa-spell-check"></i> <?php echo __('test_connection') ?>
|
||||
</button>
|
||||
<?php if ($API->checkPermissions('admin-sources', 'RW', true)) { ?>
|
||||
<button type="submit" class="btn btn-primary">
|
||||
<i class="fa-solid fa-floppy-disk"></i> <?php echo __('save') ?>
|
||||
</button>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12 col-lg-12">
|
||||
<div class="tab-content" id="v-pills-with-icon-tabContent">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h1 class="">Inserve actions</h1>
|
||||
<hr>
|
||||
<div class="row row-cols-1 row-cols-md-3 g-2">
|
||||
<?php if ($GLOBALS['modules_enabled']['customers'] && $API->checkPermissions('customer-companies', 'RW', true)) { ?>
|
||||
<div class="col">
|
||||
<div class="card h-100">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Sync companies from Inserve to Sentri.</h5>
|
||||
<form method="post" action="/api/v1/sources/inserve/sync-companies/">
|
||||
<input type="hidden" name="_return" value="/system/sources/inserve">
|
||||
<p class="card-text">This API call retrieves all companies from Inserve and creates or updates them in Sentri.</p>
|
||||
<button class="btn btn-primary">
|
||||
<i class="fa-solid fa-arrow-rotate-right"></i> Sync.
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<?php if ($GLOBALS['modules_enabled']['servers'] && $API->checkPermissions('servers', 'RW', true)) { ?>
|
||||
<div class="col">
|
||||
<div class="card h-100">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Sync cloud distributor companies</h5>
|
||||
<form method="post" action="/api/v1/sources/inserve/sync-cloud-distributor/">
|
||||
<input type="hidden" name="_return" value="/system/sources/inserve">
|
||||
<p class="card-text">This API call synchronizes active companies in Sentri with the corresponding cloud distributor companies in Inserve. These cloud distributor companies are required to associate Sentri server licenses with companies in Inserve.</p>
|
||||
<button class="btn btn-primary">
|
||||
<i class="fa-solid fa-arrow-rotate-right"></i> Sync
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<?php if ($GLOBALS['modules_enabled']['servers'] && $API->checkPermissions('servers', 'RW', true)) { ?>
|
||||
<div class="col">
|
||||
<div class="card h-100">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Sync servers licenses</h5>
|
||||
<form method="post" action="/api/v1/sources/inserve/sync-server-licenses/">
|
||||
<input type="hidden" name="_return" value="/system/sources/inserve">
|
||||
<p class="card-text">This API call first executes the sync-cloud-distributor action and then synchronizes all servers in an active, deleted, or trial state with Inserve licenses. It creates or updates server licenses in Inserve if they do not exist or if the license quantities differ from those in Sentri.</p>
|
||||
<button class="btn btn-primary">
|
||||
<i class="fa-solid fa-arrow-rotate-right"></i> Sync
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
|
||||
use api\classes\API;
|
||||
use bin\php\Classes\pageNavbar;
|
||||
|
||||
if (!defined('APP_INIT')) {
|
||||
exit;
|
||||
}
|
||||
# IDE Section
|
||||
|
||||
|
||||
# Includes Section
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/bin/php/Classes/pageNavbar.php');
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/api/classes/API.php');
|
||||
|
||||
# Check permissions
|
||||
$API = new API();
|
||||
$API->checkPermissions('admin-sources', 'RO');
|
||||
|
||||
# Page functions
|
||||
|
||||
|
||||
# JS Scripts to load for this page
|
||||
$jsScriptLoadData['activeTabOnRefresh'] = true;
|
||||
$jsScriptLoadData['copyInputValue'] = true;
|
||||
$jsScriptLoadData['updateToggle'] = true;
|
||||
$jsScriptLoadData['breadCrumbs'] = true;
|
||||
$jsScriptLoadData['inserve_source'] = true;
|
||||
$jsScriptLoadData['validateJson'] = true;
|
||||
|
||||
# PageClasses Setup
|
||||
$pageNavbar = new pageNavbar(true);
|
||||
|
||||
# Retrieve Information for the page
|
||||
$inserve_settings = $GLOBALS['conn']->query("SELECT * FROM system_sources WHERE source_name = 'inserve'")->fetch_assoc();
|
||||
|
||||
# Set breadcrumb data
|
||||
array_push($GLOBALS['breadCrumbArray'], array('display' => __('portal_management'), 'href' => '/systemconfig'));
|
||||
array_push($GLOBALS['breadCrumbArray'], array('display' => __('sources'), 'href' => '/systemconfig#sources'));
|
||||
array_push($GLOBALS['breadCrumbArray'], array('display' => 'Inserve', 'href' => ''));
|
||||
|
||||
|
||||
# Start page output
|
||||
$pageNavbar->outPutNavbar();
|
||||
?>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12 col-lg-12">
|
||||
<div class="tab-content" id="v-pills-with-icon-tabContent">
|
||||
<div class="card">
|
||||
<div class="mx-2 pb-0 card-body">
|
||||
<h1 class="">Inserve settings</h1>
|
||||
<p>
|
||||
Enter the necessary API details to set up and configure your connection to the Inserve API. This allows Sentri to communicate with Inserve and retrieve the data it needs. </p>
|
||||
<hr>
|
||||
</div>
|
||||
|
||||
<form id="FormValidation" method="post" action="/api/v1/system/sources/inserve/">
|
||||
<input type="hidden" name="_method" value="POST">
|
||||
<input type="hidden" name="_return" value="/system/sources/inserve">
|
||||
<input type="hidden" name="source_name" value="inserve">
|
||||
<div class="card-body">
|
||||
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="source_url" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('inserve_url') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<input type="text" class="form-control" id="source_url" name="source_url" value="<?php echo ($inserve_settings) ? $inserve_settings['source_url'] : '' ?>" placeholder="" required/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="source_auth_token" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('api_token') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<input type="text" class="form-control" id="source_auth_token" name="source_auth_token" value="" autocomplete="off" placeholder="<?php echo ($inserve_settings) ? substr($inserve_settings['source_auth_token'], 0, 6) . str_repeat('*', max(0, strlen($inserve_settings['source_auth_token']) - 6)) : ''; ?>" required/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer py-4">
|
||||
<div class="row">
|
||||
<div class="col d-flex justify-content-end">
|
||||
<button class="btn btn-success mx-2 test-inserve-connection-btn">
|
||||
<i class="fa-solid fa-spell-check"></i> <?php echo __('test_connection') ?>
|
||||
</button>
|
||||
<?php if ($API->checkPermissions('admin-sources', 'RW', true)) { ?>
|
||||
<button type="submit" class="btn btn-primary">
|
||||
<i class="fa-solid fa-floppy-disk"></i> <?php echo __('save') ?>
|
||||
</button>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12 col-lg-12">
|
||||
<div class="tab-content" id="v-pills-with-icon-tabContent">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h1 class="">Inserve actions</h1>
|
||||
<div class="row row-cols-1 row-cols-md-3 g-2">
|
||||
<?php if ($GLOBALS['modules_enabled']['customers'] && $API->checkPermissions('customer-companies', 'RW', true)) { ?>
|
||||
<div class="col">
|
||||
<div class="card h-100">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Sync companies from Inserve to Sentri.</h5>
|
||||
<form method="post" action="/api/v1/sources/inserve/sync-companies/">
|
||||
<input type="hidden" name="_return" value="/system/sources/inserve">
|
||||
<p class="card-text">This API call retrieves all companies from Inserve and creates or updates them in Sentri.</p>
|
||||
</form>
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
<button class="btn btn-primary">
|
||||
<i class="fa-solid fa-arrow-rotate-right"></i> Sync.
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<?php if ($GLOBALS['modules_enabled']['servers'] && $API->checkPermissions('servers', 'RW', true)) { ?>
|
||||
<div class="col">
|
||||
<div class="card h-100">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Sync cloud distributor companies</h5>
|
||||
<form method="post" action="/api/v1/sources/inserve/sync-cloud-distributor/">
|
||||
<input type="hidden" name="_return" value="/system/sources/inserve">
|
||||
<p class="card-text">This API call synchronizes active companies in Sentri with the corresponding cloud distributor companies in Inserve. These cloud distributor companies are required to associate Sentri server licenses with companies in Inserve.</p>
|
||||
</form>
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
<button class="btn btn-primary">
|
||||
<i class="fa-solid fa-arrow-rotate-right"></i> Sync
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<?php if ($GLOBALS['modules_enabled']['servers'] && $API->checkPermissions('servers', 'RW', true)) { ?>
|
||||
<div class="col">
|
||||
<div class="card h-100">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Sync servers licenses</h5>
|
||||
<form method="post" action="/api/v1/sources/inserve/sync-server-licenses/">
|
||||
<input type="hidden" name="_return" value="/system/sources/inserve">
|
||||
<p class="card-text">This API call first executes the sync-cloud-distributor action and then synchronizes all servers in an active, deleted, or trial state with Inserve licenses. It creates or updates server licenses in Inserve if they do not exist or if the license quantities differ from those in Sentri.</p>
|
||||
</form>
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
<button class="btn btn-primary">
|
||||
<i class="fa-solid fa-arrow-rotate-right"></i> Sync
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
Reference in New Issue
Block a user