v1.0 Initial commit of project
This commit is contained in:
23
pub/bin/pages/system/pageAccessControl.php
Normal file
23
pub/bin/pages/system/pageAccessControl.php
Normal file
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
if (!defined('APP_INIT')) {
|
||||
exit;
|
||||
}
|
||||
if (isset($_GET['user_group_add'])) {
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/bin/pages/system/pageAccessControl_user_group_add.php');
|
||||
} elseif (isset($_GET['user_group_edit'])) {
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/bin/pages/system/pageAccessControl_user_group_edit.php');
|
||||
} elseif (isset($_GET['permission_add'])) {
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/bin/pages/system/pageAccessControl_permission_add.php');
|
||||
} elseif (isset($_GET['permission_edit'])) {
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/bin/pages/system/pageAccessControl_permission_edit.php');
|
||||
} elseif (isset($_GET['permission_view'])) {
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/bin/pages/system/pageAccessControl_permission_view.php');
|
||||
} elseif (isset($_GET['admin_add'])) {
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/bin/pages/system/pageAccessControl_admin_add.php');
|
||||
} elseif (isset($_GET['admin_edit'])) {
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/bin/pages/system/pageAccessControl_admin_edit.php');
|
||||
} elseif (isset($_GET['admin_view'])) {
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/bin/pages/system/pageAccessControl_admin_view.php');
|
||||
} else {
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/bin/pages/system/pageAccessControl_view.php');
|
||||
}
|
||||
122
pub/bin/pages/system/pageAccessControl_admin_add.php
Normal file
122
pub/bin/pages/system/pageAccessControl_admin_add.php
Normal file
@@ -0,0 +1,122 @@
|
||||
<?php
|
||||
|
||||
use api\classes\API;
|
||||
use bin\php\Classes\formBuilder;
|
||||
use bin\php\Classes\pageNavbar;
|
||||
|
||||
if (!defined('APP_INIT')) {
|
||||
exit;
|
||||
}
|
||||
# IDE Section
|
||||
|
||||
|
||||
# Includes Section
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/bin/php/Classes/formBuilder.php');
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/bin/php/Classes/pageNavbar.php');
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/api/classes/API.php');
|
||||
|
||||
# Check permissions
|
||||
$API = new API();
|
||||
if (!$API->checkPermissions('admin-access-admins', 'RW', true)) {
|
||||
echo 'error 401 unauthorized';
|
||||
exit;
|
||||
}
|
||||
# Page functions
|
||||
|
||||
# JS Scripts to load for this page
|
||||
$jsScriptLoadData['form'] = true;
|
||||
$jsScriptLoadData['Generatepassword'] = true;
|
||||
$jsScriptLoadData['passwordGenOnLoad'] = true;
|
||||
$jsScriptLoadData['passwordShowHide'] = true;
|
||||
$jsScriptLoadData['passwordRegen'] = true;
|
||||
$jsScriptLoadData['breadCrumbs'] = true;
|
||||
|
||||
# PageClasses Setup
|
||||
$pageNavbar = new pageNavbar(true);
|
||||
$pageNavbar->AddHTMLButton('<button class="btn btn-danger mx-3" type="button" disabled><i class="fas fa-trash-alt"></i>' . __('delete') . '</button>');
|
||||
$pageNavbar->AddHTMLButton('<a href="?admin_add="><button class="btn btn-primary"><i class="fas fa-plus text-success"></i>' . __('add_admin') . '</button></a>');
|
||||
$formBuilder = new formBuilder('add_admin', '<i class="fas fa-plus"></i>', '/accesscontrol/#user-groups');
|
||||
|
||||
# Retrieve Information for the page
|
||||
$user_groups_data = $GLOBALS['conn']->query("SELECT * FROM vc_user_groups WHERE user_group_type = 'admin' ORDER BY user_group_weight DESC");
|
||||
$user_groups = array();
|
||||
while ($user_group = $user_groups_data->fetch_assoc()) {
|
||||
array_push($user_groups, $user_group);
|
||||
$last_weight = $user_group['user_group_weight'];
|
||||
}
|
||||
|
||||
# Set breadcrumb data
|
||||
array_push($GLOBALS['breadCrumbArray'], array('display' => __('administrators'), 'href' => '/accesscontrol/#administrators'));
|
||||
array_push($GLOBALS['breadCrumbArray'], array('display' => __('add_admin'), 'href' => ''));
|
||||
|
||||
# Start page output
|
||||
$pageNavbar->outPutNavbar();
|
||||
$formBuilder->startForm();
|
||||
?>
|
||||
|
||||
<form id="FormValidation" enctype="multipart/form-data" method="POST" action="/api/v1/users/">
|
||||
<div class="card-body">
|
||||
<div class="col">
|
||||
<p><?php echo __('admin_creation_instruction') ?></p>
|
||||
</div>
|
||||
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="user_group_uuid" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('user_group') ?></label>
|
||||
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<select id="user_group_uuid" name="user_group_uuid" class="form-control" required>
|
||||
<?php foreach ($user_groups as $user_group) {
|
||||
if ($user_group['user_group_weight'] >= $_SESSION['user']['user_group_weight']) { ?>
|
||||
<option value="<?php echo $user_group['user_group_uuid'] ?>"><?php echo $user_group['user_group_name'] ?></option>
|
||||
<?php }
|
||||
} ?>
|
||||
<!-- Options should be dynamically generated from the database -->
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="user_email" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('user_email') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<input type="email" class="form-control" id="user_email" name="user_email" placeholder="user@example.xxx" required autofill="off" autofocus autocomplete="off"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="user_first_name" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('first_name') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<input type="text" class="form-control" id="user_first_name" name="user_first_name" required/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Last Name -->
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="user_last_name" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('last_name') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<input type="text" class="form-control" id="user_last_name" name="user_last_name" required/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Phone Number -->
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="user_phone_number" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('phone_number') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<input type="text" class="form-control" id="user_phone_number" name="user_phone_number" placeholder="+1234542069"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- User Status -->
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="user_status" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('user_status') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<select id="user_status" name="user_status" class="form-control" required>
|
||||
<option value="inactive"><?php echo __('inactive') ?></option>
|
||||
<option value="banned"><?php echo __('banned') ?></option>
|
||||
<option value="pending" selected><?php echo __('pending') ?></option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php $formBuilder->formFooter(); ?>
|
||||
</form>
|
||||
<?php $formBuilder->endForm(); ?>
|
||||
158
pub/bin/pages/system/pageAccessControl_admin_edit.php
Normal file
158
pub/bin/pages/system/pageAccessControl_admin_edit.php
Normal file
@@ -0,0 +1,158 @@
|
||||
<?php
|
||||
|
||||
use api\classes\API;
|
||||
use bin\php\Classes\formBuilder;
|
||||
use bin\php\Classes\pageNavbar;
|
||||
|
||||
if (!defined('APP_INIT')) {
|
||||
exit;
|
||||
}
|
||||
# IDE Section
|
||||
|
||||
# Includes Section
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/bin/php/Classes/formBuilder.php');
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/bin/php/Classes/pageNavbar.php');
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/api/classes/API.php');
|
||||
|
||||
# Check permissions
|
||||
$API = new API();
|
||||
if (!$API->checkPermissions('admin-access-admins', 'RW', true)) {
|
||||
echo 'error 401 unauthorized';
|
||||
exit;
|
||||
}
|
||||
|
||||
# Page functions
|
||||
|
||||
# JS Scripts to load for this page
|
||||
$jsScriptLoadData['form'] = true;
|
||||
$jsScriptLoadData['breadCrumbs'] = true;
|
||||
|
||||
# PageClasses Setup
|
||||
$pageNavbar = new pageNavbar(true);
|
||||
$pageNavbar->AddHTMLButton('<button class="btn btn-danger mx-3" type="button" disabled><i class="fas fa-trash-alt"></i>' . __('delete') . '</button>');
|
||||
$pageNavbar->AddHTMLButton('<a href="?admin_add="><button class="btn btn-primary"><i class="fas fa-plus text-success"></i>' . __('add_admin') . '</button></a>');
|
||||
$formBuilder = new formBuilder('edit_admin', '<i class="fas fa-plus"></i>', '/accesscontrol/#user-groups');
|
||||
|
||||
# Retrieve Information for the page
|
||||
$user_groups_data = $GLOBALS['conn']->query("SELECT * FROM vc_user_groups WHERE user_group_type = 'admin' ORDER BY user_group_weight DESC");
|
||||
$user_groups = array();
|
||||
$admin_data = false;
|
||||
while ($user_group = $user_groups_data->fetch_assoc()) {
|
||||
array_push($user_groups, $user_group);
|
||||
$last_weight = $user_group['user_group_weight'];
|
||||
}
|
||||
|
||||
$user_uuid = $_GET['admin_edit'];
|
||||
$stmt = $GLOBALS['conn']->prepare("SELECT * FROM vc_users INNER JOIN vc_user_groups ON vc_users.user_group_uuid = vc_user_groups.user_group_uuid WHERE user_uuid = ?");
|
||||
$stmt->bind_param("s", $user_uuid);
|
||||
$stmt->execute();
|
||||
$result = $stmt->get_result();
|
||||
if ($result->num_rows == 1) {
|
||||
$admin_data = $result->fetch_assoc();
|
||||
}
|
||||
|
||||
# Set breadcrumb data
|
||||
array_push($GLOBALS['breadCrumbArray'], array('display' => __('administrators'), 'href' => '/accesscontrol/#administrators'));
|
||||
array_push($GLOBALS['breadCrumbArray'], array('display' => __('edit_admin'), 'href' => ''));
|
||||
|
||||
# Start page output
|
||||
$pageNavbar->outPutNavbar();
|
||||
if ($admin_data) {
|
||||
$formBuilder->startForm(); ?>
|
||||
<form id="FormValidation" enctype="multipart/form-data" method="post" action="/api/v1/users/">
|
||||
<input type="hidden" name="_method" value="PUT">
|
||||
<input type="hidden" name="_return" value="/accesscontrol/?admin_view=<?php echo $user_uuid ?>">
|
||||
<input type="hidden" name="user_uuid" value="<?php echo $user_uuid; ?>"/>
|
||||
<div class="card-body">
|
||||
<!-- User Group -->
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="user_group_uuid" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('user_group') ?></label>
|
||||
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<select id="user_group_uuid" name="user_group_uuid" class="form-control" required>
|
||||
<?php foreach ($user_groups as $user_group) {
|
||||
if ($user_group['user_group_weight'] >= $_SESSION['user']['user_group_weight']) { ?>?>
|
||||
<option <?php echo(($admin_data['user_group_uuid'] == $user_group['user_group_uuid']) ? 'selected' : '') ?> value="<?php echo $user_group['user_group_uuid'] ?>"><?php echo $user_group['user_group_name'] ?></option>
|
||||
<?php }
|
||||
} ?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="user_email" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('user_email') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<input type="email" class="form-control" id="user_email" name="user_email" value="<?php echo $admin_data['user_email'] ?>" placeholder="user@example.xxx" required autofill="off" autocomplete="off"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="user_first_name" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('first_name') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<input type="text" class="form-control" id="user_first_name" name="user_first_name" value="<?php echo $admin_data['user_first_name'] ?>" required/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Last Name -->
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="user_last_name" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('last_name') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<input type="text" class="form-control" id="user_last_name" name="user_last_name" value="<?php echo $admin_data['user_last_name'] ?>" required/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Phone Number -->
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="user_phone_number" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('phone_number') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<input type="text" class="form-control" id="user_phone_number" name="user_phone_number" placeholder="+1234542069" value="<?php echo $admin_data['user_phone_number'] ?>"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- User Status -->
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="user_status" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('user_status') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<select id="user_status" name="user_status" class="form-control" required>
|
||||
<option value="active" <?php echo(($admin_data['user_status'] == 'active') ? 'selected' : '') ?> ><?php echo __('active') ?></option>
|
||||
<option value="inactive" <?php echo(($admin_data['user_status'] == 'inactive') ? 'selected' : '') ?>><?php echo __('inactive') ?></option>
|
||||
<option value="banned" <?php echo(($admin_data['user_status'] == 'banned') ? 'selected' : '') ?>><?php echo __('banned') ?></option>
|
||||
<option value="pending" <?php echo(($admin_data['user_status'] == 'pending') ? 'selected' : '') ?>><?php echo __('pending') ?></option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Preferred Language -->
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="user_pref_language" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('preferred_language') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<select id="user_pref_language" name="user_pref_language" class="form-control">
|
||||
<option value="none" selected>Browser language</option>
|
||||
<?php foreach (scandir($_SERVER['DOCUMENT_ROOT'] . '/bin/locales/') as $file) {
|
||||
if (pathinfo($file, PATHINFO_EXTENSION) === 'php') {
|
||||
$language = str_replace('.php', '', $file); ?>
|
||||
<option <?php echo(($admin_data['user_pref_language'] == $language) ? 'selected' : '') ?> value="<?php echo $language ?>"><?php echo __($language) ?></option>
|
||||
<?php }
|
||||
} ?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php if ($GLOBALS['modules_enabled']['office']) { ?>
|
||||
<!-- Stompbable -->
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="user_stompable" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('stompable') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<select id="user_stompable" name="user_stompable" class="form-control">
|
||||
<option <?php echo(($admin_data['user_stompable'] == 0) ? 'selected' : '') ?> value="0">Disabled</option>
|
||||
<option <?php echo(($admin_data['user_stompable'] == 1) ? 'selected' : '') ?> value="1">Enabled</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
<?php $formBuilder->formFooter(); ?>
|
||||
</form>
|
||||
<?php $formBuilder->endForm(); ?><?php } else { ?>
|
||||
<p>no admin with this uuid found.</p>
|
||||
<?php } ?>
|
||||
328
pub/bin/pages/system/pageAccessControl_admin_view.php
Normal file
328
pub/bin/pages/system/pageAccessControl_admin_view.php
Normal file
@@ -0,0 +1,328 @@
|
||||
<?php
|
||||
|
||||
use api\classes\API;
|
||||
use api\classes\API_apitoken;
|
||||
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_apitoken.php');
|
||||
|
||||
# Check permissions
|
||||
$API = new API();
|
||||
if (!$API->checkPermissions('admin-access-admins', 'RO', true)) {
|
||||
echo 'error 401 unauthorized';
|
||||
exit;
|
||||
}
|
||||
|
||||
# Page functions
|
||||
|
||||
# JS Scripts to load for this page
|
||||
$jsScriptLoadData['Generatepassword'] = true;
|
||||
$jsScriptLoadData['passwordShowHide'] = true;
|
||||
$jsScriptLoadData['passwordRegen'] = true;
|
||||
$jsScriptLoadData['enableButtonOnImageUpload'] = true;
|
||||
$jsScriptLoadData['delete_confirmation'] = true;
|
||||
$jsScriptLoadData['breadCrumbs'] = true;
|
||||
$jsScriptLoadData['updateToggle'] = true;
|
||||
|
||||
# PageClasses Setup
|
||||
$pageNavbar = new pageNavbar(true);
|
||||
if ($API->checkPermissions('admin-access-admins', 'RW', true)) {
|
||||
$pageNavbar->AddHTMLButton('<button class="btn btn-danger" type="button" disabled><i class="fas fa-trash-alt"></i> ' . __('delete') . '</button>');
|
||||
$admin_view = htmlspecialchars($_GET['admin_view'], ENT_QUOTES, 'UTF-8');
|
||||
$pageNavbar->AddHTMLButton('<a class="btn btn-primary mx-3" type="button" href="?admin_edit=' . $admin_view . '"><i class="fas fa-edit text-warning"></i> ' . __('edit') . '</a>');
|
||||
$pageNavbar->AddHTMLButton('<a href="?admin_add="><button class="btn btn-primary"><i class="fas fa-plus text-success"></i> ' . __('add_admin') . '</button></a>');
|
||||
}
|
||||
|
||||
# Retrieve Information for the page
|
||||
$user_groups_data = $GLOBALS['conn']->query("SELECT * FROM vc_user_groups WHERE user_group_type = 'admin' ORDER BY user_group_weight DESC");
|
||||
$user_groups = array();
|
||||
$admin_data = false;
|
||||
while ($user_group = $user_groups_data->fetch_assoc()) {
|
||||
array_push($user_groups, $user_group);
|
||||
$last_weight = $user_group['user_group_weight'];
|
||||
}
|
||||
|
||||
$user_uuid = $_GET['admin_view'];
|
||||
$stmt = $GLOBALS['conn']->prepare("SELECT * FROM vc_users INNER JOIN vc_user_groups ON vc_users.user_group_uuid = vc_user_groups.user_group_uuid WHERE user_uuid = ?");
|
||||
$stmt->bind_param("s", $user_uuid);
|
||||
$stmt->execute();
|
||||
$result = $stmt->get_result();
|
||||
if ($result->num_rows == 1) {
|
||||
$admin_data = $result->fetch_assoc();
|
||||
}
|
||||
|
||||
$_GET['user_uuid'] = $user_uuid;
|
||||
|
||||
$API_token = new API_apitoken();
|
||||
$requiredFields = ['user_uuid' => ['type' => 'uuid']];
|
||||
$API_token->validateData($requiredFields);
|
||||
$apitokens = $API_token->getTokens();
|
||||
|
||||
# Set breadcrumb data
|
||||
array_push($GLOBALS['breadCrumbArray'], array('display' => __('administrators'), 'href' => '/accesscontrol/#administrators'));
|
||||
array_push($GLOBALS['breadCrumbArray'], array('display' => __('view'), 'href' => ''));
|
||||
|
||||
|
||||
# Start page output
|
||||
$pageNavbar->outPutNavbar();
|
||||
|
||||
if ($admin_data) { ?>
|
||||
<div class="row d-flex align-items-stretch pb-2">
|
||||
<div class="col-md-4 pb-4">
|
||||
<div class="card h-100">
|
||||
<div class="card-body">
|
||||
<form method="POST" action="/api/v1/users/avatar/" enctype="multipart/form-data">
|
||||
<input type="hidden" name="user_uuid" value="<?php echo $admin_data['user_uuid'] ?>">
|
||||
<h1 class="text-center"><?php echo $admin_data['user_full_name'] ?></h1>
|
||||
<div class="form-group form-show-validation row align-items-center justify-content-center">
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<div class="input-file input-file-image">
|
||||
<img class="img-upload-preview w-100" src="<?php echo(($admin_data['user_profile_picture'] != null) ? 'data:image/png;base64, ' . $admin_data['user_profile_picture'] : '/src/images/user-avatar-default-small.png') ?>" alt="user_profile_picture">
|
||||
<?php if ($API->checkPermissions('admin-access-admins', 'RW', true)) { ?>
|
||||
<input type="file" class="form-control form-control-file" id="user_profile_picture" name="user_profile_picture" accept="image/png" data-enable-button="user_profile_change">
|
||||
<?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group form-show-validation row justify-content-center">
|
||||
<div class="d-flex flex-column align-items-center">
|
||||
<?php if ($API->checkPermissions('admin-access-admins', 'RW', true)) { ?>
|
||||
<label for="user_profile_picture" class="label-input-file btn btn-black btn-round mb-4">
|
||||
<span class="btn-label"><i class="fa fa-file-image"></i></span>
|
||||
<?php echo __('upload_image') ?>
|
||||
</label>
|
||||
<button id="user_profile_change" type="submit" class="btn btn-primary opacity-0 transition-opacity" disabled>
|
||||
<i class="fa-solid fa-floppy-disk"></i> <?php echo __('save') ?>
|
||||
</button>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-8 pb-4">
|
||||
<div class="card h-100">
|
||||
<div class="card-body">
|
||||
<table>
|
||||
<tr>
|
||||
<td>user_uuid:</td>
|
||||
<td><?php echo $admin_data['user_uuid'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>user_group_uuid:</td>
|
||||
<td><?php echo $admin_data['user_group_uuid'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>user_group_name:</td>
|
||||
<td><?php echo $admin_data['user_group_name'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>user_group_slugify:</td>
|
||||
<td><?php echo $admin_data['user_group_slugify'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>user_email:</td>
|
||||
<td><?php echo $admin_data['user_email'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>user_first_name:</td>
|
||||
<td><?php echo $admin_data['user_first_name'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>user_last_name:</td>
|
||||
<td><?php echo $admin_data['user_last_name'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>user_full_name:</td>
|
||||
<td><?php echo $admin_data['user_full_name'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>user_phone_number: </td>
|
||||
<td><?php echo $admin_data['user_phone_number'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>user_status: </td>
|
||||
<td><?php echo $admin_data['user_status'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>user_password_reset_expires: </td>
|
||||
<td><?php echo $admin_data['user_password_reset_expires'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>user_two_factor_enabled: </td>
|
||||
<td><?php echo $admin_data['user_two_factor_enabled'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>user_verified_email: </td>
|
||||
<td><?php echo $admin_data['user_verified_email'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>user_verified_phone: </td>
|
||||
<td><?php echo $admin_data['user_verified_phone'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>user_create_timestamp: </td>
|
||||
<td><?php showTime($admin_data['user_create_timestamp']) ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>user_modified_timestamp: </td>
|
||||
<td><?php showTime($admin_data['user_modified_timestamp']) ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>user_last_login_timestamp: </td>
|
||||
<td><?php showTime($admin_data['user_last_login_timestamp']) ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>user_login_attempts: </td>
|
||||
<td><?php echo $admin_data['user_login_attempts'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>user_pref_language: </td>
|
||||
<td><?php echo $admin_data['user_pref_language'] ?></td>
|
||||
</tr>
|
||||
<?php if ($GLOBALS['modules_enabled']['office']) { ?>
|
||||
<tr>
|
||||
<td>user_stompable: </td>
|
||||
<td><?php echo $admin_data['user_stompable'] ?></td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="card">
|
||||
<div class="card-header pt-2 pb-1">
|
||||
<h4>email-preferences</h4>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
to be made
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<div class="card">
|
||||
<div class="card-header pt-2 pb-1">
|
||||
<h4><?php echo __('user_management') ?></h4>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<?php if ($API->checkPermissions('admin-access-admins-mfa', 'RW', true)) { ?>
|
||||
<div id="mfa-enabled-row" class="row" style="display: <?php echo(($admin_data['user_two_factor_enabled']) ? '' : 'none') ?>">
|
||||
<div class="col-auto">
|
||||
<a href="#" class="btn btn-danger delete-btn" data-item-uuid="<?php echo $admin_data['user_uuid'] ?>" data-api-url="/api/v1/users/mfa/" data-item-name='user_uuid' data-delete-action='{"mfa-enabled-row":"hide", "mfa-disabled-row":"show"}'>
|
||||
<i class="fa-solid fa-lock"></i> <?php echo __('reset_mfa') ?>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="mfa-disabled-row" class="row" style="display: <?php echo(($admin_data['user_two_factor_enabled'] == 1) ? 'none' : '') ?>">
|
||||
<div class="col-auto">
|
||||
<button class="btn btn-danger delete-btn" href="#" disabled>
|
||||
<i class="fa-solid fa-lock"></i> <?php echo __('reset_mfa') ?>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<?php if ($API->checkPermissions('admin-access-admins-resetpassword', 'RW', true)) { ?>
|
||||
<form method="post" action="/api/v1/users/resetpassword/">
|
||||
<input type="hidden" name="user_uuid" value="<?php echo $user_uuid ?>">
|
||||
<button class="btn btn-primary mt-2">
|
||||
<i class="fa-solid fa-lock"></i> <?php echo __('send_password_reset') ?>
|
||||
</button>
|
||||
</form>
|
||||
<?php } ?>
|
||||
reset the verified email (to be made)<br>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php if ($API_token->checkPermissions('user-apitoken-others', 'RO', true)) { ?>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="card">
|
||||
|
||||
<div class="card-header d-flex justify-content-between align-items-center pt-2 pb-1">
|
||||
<h4 class="mb-0">API Tokens</h4>
|
||||
<?php if ($API_token->checkPermissions('user-apitoken-others', 'RW', true)) { ?>
|
||||
<form method="POST" action="/api/v1/users/apitoken/">
|
||||
<input type="hidden" name="user_uuid" value="<?php echo $user_uuid ?>">
|
||||
<input type="hidden" name="_return" value="/accesscontrol/?admin_view=<?php echo $user_uuid ?>">
|
||||
<button type="submit" href="#" class="btn btn-primary">
|
||||
<i class="fa-solid fa-plus"></i> Generate new token
|
||||
</button>
|
||||
</form>
|
||||
<?php } ?>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<table class="table table-hover table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>token</th>
|
||||
<th>Expiration</th>
|
||||
<th>Created</th>
|
||||
<th>Last used</th>
|
||||
<th>Revoked</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($apitokens as $token_data) { ?>
|
||||
<tr>
|
||||
<td class="text-nowrap" style="max-width: 100%;">
|
||||
<div class="d-flex align-items-center gap-2" style="max-width: 100%;">
|
||||
<div class="text-truncate" style="max-width: 200px;">
|
||||
<?php echo substr($token_data['api_token'], 0, 15) . '...'; ?>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td><?php showTime($token_data['api_token_expiration_timestamp']) ?></td>
|
||||
<td><?php showTime($token_data['api_token_created_timestamp']) ?></td>
|
||||
<td><?php showTime($token_data['api_token_last_used_timestamp']) ?></td>
|
||||
<td>
|
||||
<label class="switch">
|
||||
<input type="checkbox" class="checkbox" data-api-data='<?php echo json_encode(['api_token_uuid' => $token_data['api_token_uuid'], 'api_token_revoked' => $token_data['api_token_revoked'] ? 1 : 0]) ?>' data-api-changevalue="api_token_revoked" data-api-url="/api/v1/users/apitoken/" <?php echo((($token_data['api_token_revoked'])) ? 'checked' : '') ?>>
|
||||
<div class="slider"></div>
|
||||
</label>
|
||||
</td>
|
||||
<?php if ($API_token->checkPermissions('user-apitoken-others', 'RW', true)) { ?>
|
||||
<td class="text-nowrap">
|
||||
<a href="#" class="btn btn-danger btn-sm btn-rounded delete-btn" data-item-uuid="<?php echo $token_data['api_token_uuid'] ?>" data-item-name="api_token_uuid" data-api-url="/api/v1/users/apitoken/"><i class="fas fa-trash-alt"></i></a>
|
||||
</td>
|
||||
<?php } ?>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="card">
|
||||
<div class="card-header pt-2 pb-1">
|
||||
<h4>User history</h4>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
To be made. Its going show the history of the administrator.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php } else {
|
||||
echo 'admin not found';
|
||||
}
|
||||
93
pub/bin/pages/system/pageAccessControl_permission_add.php
Normal file
93
pub/bin/pages/system/pageAccessControl_permission_add.php
Normal file
@@ -0,0 +1,93 @@
|
||||
<?php
|
||||
|
||||
use api\classes\API;
|
||||
use bin\php\Classes\formBuilder;
|
||||
use bin\php\Classes\pageNavbar;
|
||||
|
||||
if (!defined('APP_INIT')) {
|
||||
exit;
|
||||
}
|
||||
# IDE Section
|
||||
|
||||
# Includes Section
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/bin/php/Classes/formBuilder.php');
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/bin/php/Classes/pageNavbar.php');
|
||||
require_once $_SERVER['DOCUMENT_ROOT'] . '/api/classes/API.php';
|
||||
|
||||
# Check permissions
|
||||
$API = new API();
|
||||
if (!$API->isSuperuser()) {
|
||||
echo 'error 401 unauthorized';
|
||||
exit;
|
||||
}
|
||||
|
||||
# Page functions
|
||||
|
||||
# JS Scripts to load for this page
|
||||
$jsScriptLoadData['form'][] = true;
|
||||
$jsScriptLoadData['slugify'] = true;
|
||||
$jsScriptLoadData['breadCrumbs'] = true;
|
||||
|
||||
# PageClasses Setup
|
||||
$pageNavbar = new pageNavbar(true);
|
||||
$formBuilder = new formBuilder('add_permission', '<i class="fas fa-plus"></i>', '/accesscontrol/#permissions');
|
||||
|
||||
# Retrieve Information for the page
|
||||
$system_modules_data = $GLOBALS['conn']->query("SELECT * FROM system_modules WHERE module_enabled = 1");
|
||||
$system_modules = array();
|
||||
while ($module = $system_modules_data->fetch_assoc()) {
|
||||
array_push($system_modules, $module);
|
||||
}
|
||||
|
||||
|
||||
# Set breadcrumb data
|
||||
array_push($GLOBALS['breadCrumbArray'], array('display' => __('permission'), 'href' => '/accesscontrol/#permissions'));
|
||||
array_push($GLOBALS['breadCrumbArray'], array('display' => __('add_permission'), 'href' => ''));
|
||||
|
||||
# Start page output
|
||||
$pageNavbar->outPutNavbar();
|
||||
$formBuilder->startForm();
|
||||
?>
|
||||
<form id="FormValidation" method="POST" action="/api/v1/permissions/">
|
||||
<input type="hidden" name="_return" value="/accesscontrol/#permission">
|
||||
<div class="card-body">
|
||||
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="permission_name" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('permission_name') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<input type="text" class="form-control" id="permission_name" name="permission_name" placeholder="" data-slugify="permission_slugify" required/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="permission_slugify" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('permission_slugify') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<input type="text" class="form-control" id="permission_slugify" name="permission_slugify" placeholder="" required/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="module_uuid" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('module') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<div class="select2-input">
|
||||
<select id="module_uuid" name="module_uuid" class="form-control" required>
|
||||
<option value=""></option>
|
||||
<?php
|
||||
foreach ($system_modules as $module) { ?>
|
||||
<option value="<?php echo $module['module_uuid'] ?>"> <?php echo $module['module_name'] ?></option>
|
||||
<?php } ?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="permission_description" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('permission_description') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<textarea type="text" class="form-control" id="permission_description" name="permission_description" placeholder="" required rows="5"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php $formBuilder->formFooter(); ?>
|
||||
</form>
|
||||
<?php $formBuilder->endForm(); ?>
|
||||
106
pub/bin/pages/system/pageAccessControl_permission_edit.php
Normal file
106
pub/bin/pages/system/pageAccessControl_permission_edit.php
Normal file
@@ -0,0 +1,106 @@
|
||||
<?php
|
||||
|
||||
use api\classes\API;
|
||||
use api\classes\API_permissions;
|
||||
use bin\php\Classes\formBuilder;
|
||||
use bin\php\Classes\pageNavbar;
|
||||
|
||||
if (!defined('APP_INIT')) {
|
||||
exit;
|
||||
}
|
||||
# IDE Section
|
||||
|
||||
# Includes Section
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/bin/php/Classes/formBuilder.php');
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/bin/php/Classes/pageNavbar.php');
|
||||
require_once $_SERVER['DOCUMENT_ROOT'] . '/api/classes/API.php';
|
||||
require_once $_SERVER['DOCUMENT_ROOT'] . '/api/classes/API_permissions.php';
|
||||
|
||||
# Check permissions
|
||||
$API = new API();
|
||||
if (!$API->checkPermissions('admin-access-control-permissions', 'RW', true)) {
|
||||
echo 'error 401 unauthorized';
|
||||
exit;
|
||||
}
|
||||
|
||||
# Page functions
|
||||
|
||||
# JS Scripts to load for this page
|
||||
$jsScriptLoadData['form'][] = true;
|
||||
$jsScriptLoadData['breadCrumbs'] = true;
|
||||
|
||||
# PageClasses Setup
|
||||
$pageNavbar = new pageNavbar(true);
|
||||
$formBuilder = new formBuilder('edit_permission', '<i class="fas fa-plus"></i>', '/accesscontrol/#permission');
|
||||
|
||||
# Retrieve Information for the page
|
||||
$permission_uuid = $_GET['permission_edit'];
|
||||
$_GET['permission_uuid'] = $permission_uuid;
|
||||
$API_permissions = new API_permissions();
|
||||
$_GET['builder'] = [1 => ['where' => [0 => 'permission_uuid', 1 => $permission_uuid]]];
|
||||
$requiredFields = ['permission_uuid' => ['type' => 'uuid']];
|
||||
$API_permissions->validateData($requiredFields);
|
||||
$permission_data = $API_permissions->getPermission()[0];
|
||||
|
||||
# Retrieve Information for the page
|
||||
$system_modules_data = $GLOBALS['conn']->query("SELECT * FROM system_modules WHERE module_enabled = 1");
|
||||
$system_modules = array();
|
||||
while ($module = $system_modules_data->fetch_assoc()) {
|
||||
array_push($system_modules, $module);
|
||||
}
|
||||
|
||||
# Set breadcrumb data
|
||||
array_push($GLOBALS['breadCrumbArray'], array('display' => __('permission'), 'href' => '/accesscontrol/#permissions'));
|
||||
array_push($GLOBALS['breadCrumbArray'], array('display' => __('edit_permission'), 'href' => ''));
|
||||
|
||||
# Start page output
|
||||
$pageNavbar->outPutNavbar();
|
||||
|
||||
if ($permission_data) {
|
||||
$formBuilder->startForm(); ?>
|
||||
<form id="FormValidation" method="post" action="/api/v1/permissions/">
|
||||
<input type="hidden" name="_return" value="/accesscontrol/?permission_view=<?php echo $permission_uuid ?>">
|
||||
<input type="hidden" name="_method" value="PUT">
|
||||
<input type="hidden" name="permission_uuid" value="<?php echo $permission_uuid ?>">
|
||||
<div class="card-body">
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="permission_name" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('permission_name') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<input type="text" class="form-control" id="permission_name" name="permission_name" value="<?php echo $permission_data['permission_name'] ?>" placeholder="" data-slugify="permission_slugify" required/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="permission_slugify" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('permission_slugify') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<input type="text" class="form-control" id="permission_slugify" name="permission_slugify" value="<?php echo $permission_data['permission_slugify'] ?>" placeholder="" disabled/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="module_uuid" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('module') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<div class="select2-input">
|
||||
<select id="module_uuid" name="module_uuid" class="form-control" required>
|
||||
<option value=""></option>
|
||||
<?php
|
||||
foreach ($system_modules as $module) { ?>
|
||||
<option value="<?php echo $module['module_uuid'] ?>" <?php echo ($module['module_uuid'] == $permission_data['module_uuid']) ? 'selected' : '' ?>> <?php echo $module['module_name'] ?></option>
|
||||
<?php } ?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="permission_description" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('permission_description') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<textarea type="text" class="form-control" id="permission_description" name="permission_description" placeholder="" required rows="5"><?php echo $permission_data['permission_description'] ?></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php $formBuilder->formFooter(); ?>
|
||||
</form>
|
||||
<?php $formBuilder->endForm(); ?><?php } else {
|
||||
echo 'permission not found';
|
||||
} ?>
|
||||
153
pub/bin/pages/system/pageAccessControl_permission_view.php
Normal file
153
pub/bin/pages/system/pageAccessControl_permission_view.php
Normal file
@@ -0,0 +1,153 @@
|
||||
<?php
|
||||
|
||||
use api\classes\API;
|
||||
use api\classes\API_permissions;
|
||||
use bin\php\Classes\pageNavbar;
|
||||
|
||||
if (!defined('APP_INIT')) {
|
||||
exit;
|
||||
}
|
||||
# IDE Section
|
||||
|
||||
# Includes Section
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/bin/php/Classes/pageNavbar.php');
|
||||
require_once $_SERVER['DOCUMENT_ROOT'] . '/api/classes/API.php';
|
||||
require_once $_SERVER['DOCUMENT_ROOT'] . '/api/classes/API_permissions.php';
|
||||
|
||||
# Check permissions
|
||||
$API = new API();
|
||||
if (!$API->checkPermissions('admin-access-control-permissions', 'RO', true)) {
|
||||
echo 'error 401 unauthorized';
|
||||
exit;
|
||||
}
|
||||
|
||||
# Page functions
|
||||
|
||||
# JS Scripts to load for this page
|
||||
$jsScriptLoadData['delete_confirmation'] = true;
|
||||
$jsScriptLoadData['datatables'] = true;
|
||||
$jsScriptLoadData['updatePermissions'] = true;
|
||||
$jsScriptLoadData['breadCrumbs'] = true;
|
||||
|
||||
# PageClasses Setup
|
||||
$pageNavbar = new pageNavbar(true);
|
||||
if ($API->isSuperuser()) {
|
||||
$pageNavbar->AddHTMLButton('<button class="btn btn-danger" type="button" disabled><i class="fas fa-trash-alt"></i> ' . __('delete') . '</button>');
|
||||
}
|
||||
if ($API->checkPermissions('admin-access-control-permissions', 'RW', true)) {
|
||||
$permission_view = htmlspecialchars($_GET['permission_view'], ENT_QUOTES, 'UTF-8');
|
||||
$pageNavbar->AddHTMLButton('<a class="btn btn-primary mx-3" type="button" href="?permission_edit=' . $permission_view . '"><i class="fas fa-edit text-warning"></i> ' . __('edit') . '</a>');
|
||||
}
|
||||
if ($API->isSuperuser()) {
|
||||
$pageNavbar->AddHTMLButton('<a href="?permission_add="><button class="btn btn-primary"><i class="fas fa-plus text-success"></i> ' . __('add_permission') . '</button></a>');
|
||||
}
|
||||
|
||||
|
||||
# Retrieve Information for the page
|
||||
$permission_uuid = $_GET['permission_view'];
|
||||
$_GET['permission_uuid'] = $permission_uuid;
|
||||
$API_permissions = new API_permissions();
|
||||
$requiredFields = ['permission_uuid' => ['type' => 'uuid']];
|
||||
$API_permissions->validateData($requiredFields);
|
||||
$permission_data = $API_permissions->getPermissionRights();
|
||||
|
||||
# Set breadcrumb data
|
||||
array_push($GLOBALS['breadCrumbArray'], array('display' => __('permission'), 'href' => '/accesscontrol/#permissions'));
|
||||
array_push($GLOBALS['breadCrumbArray'], array('display' => __('view'), 'href' => ''));
|
||||
|
||||
# Start page output
|
||||
$pageNavbar->outPutNavbar();
|
||||
|
||||
if ($permission_data) { ?>
|
||||
<h2>
|
||||
<i class="fa-solid fa-lock"></i> <?php echo $permission_data[0]['permission_name'] ?>
|
||||
</h2>
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<table>
|
||||
<tr>
|
||||
<td>permission_uuid:</td>
|
||||
<td><?php echo $permission_data[0]['permission_uuid'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>permission_name:</td>
|
||||
<td><?php echo $permission_data[0]['permission_name'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>permission_slugify:</td>
|
||||
<td><?php echo $permission_data[0]['permission_slugify'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>permission_description:</td>
|
||||
<td><?php echo $permission_data[0]['permission_description'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>module_uuid:</td>
|
||||
<td><?php echo $permission_data[0]['module_uuid'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>permission_create_timestamp:</td>
|
||||
<td><?php showTime($permission_data[0]['permission_create_timestamp']); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>permission_modified_datetime:</td>
|
||||
<td><?php showTime($permission_data[0]['permission_modified_timestamp']); ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<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>
|
||||
</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>
|
||||
</tr>
|
||||
</tfoot>
|
||||
<tbody>
|
||||
<?php
|
||||
foreach ($permission_data as $permission_data_group) {
|
||||
if ($permission_data_group['user_group_slugify'] != 'superuser') { ?>
|
||||
<tr>
|
||||
<td><?php echo $permission_data_group['user_group_slugify'] ?> </td>
|
||||
<td>
|
||||
<label class="switch">
|
||||
<input type="checkbox" class="checkbox" data-permission-uuid="<?= $permission_data_group['permission_uuid'] ?>" data-user-group-uuid="<?= $permission_data_group['user_group_uuid'] ?>" data-value="NA" data-api-url="/api/v1/access-rights/" <?php echo(($permission_data_group['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="<?= $permission_data_group['permission_uuid'] ?>" data-user-group-uuid="<?= $permission_data_group['user_group_uuid'] ?>" data-value="RO" data-api-url="/api/v1/access-rights/" <?php echo(($permission_data_group['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="<?= $permission_data_group['permission_uuid'] ?>" data-user-group-uuid="<?= $permission_data_group['user_group_uuid'] ?>" data-value="RW" data-api-url="/api/v1/access-rights/" <?php echo(($permission_data_group['permission_value'] == 'RW') ? 'checked' : '') ?>
|
||||
<?php echo ($API->checkPermissions('admin-access-control-permissions', 'RW', true)) ? '' : 'disabled' ?>>
|
||||
<div class="slider"></div>
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
<?php } ?><?php } ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<?php } else {
|
||||
echo '404 not found';
|
||||
}
|
||||
90
pub/bin/pages/system/pageAccessControl_user_group_add.php
Normal file
90
pub/bin/pages/system/pageAccessControl_user_group_add.php
Normal file
@@ -0,0 +1,90 @@
|
||||
<?php
|
||||
|
||||
use api\classes\API;
|
||||
use bin\php\Classes\formBuilder;
|
||||
use bin\php\Classes\pageNavbar;
|
||||
|
||||
if (!defined('APP_INIT')) {
|
||||
exit;
|
||||
}
|
||||
# IDE Section
|
||||
|
||||
# Includes Section
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/bin/php/Classes/formBuilder.php');
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/bin/php/Classes/pageNavbar.php');
|
||||
require_once $_SERVER['DOCUMENT_ROOT'] . '/api/classes/API.php';
|
||||
|
||||
# Check permissions
|
||||
$API = new API();
|
||||
if (!$API->checkPermissions('admin-access-control-user-groups', 'RW', true)) {
|
||||
echo 'error 401 unauthorized';
|
||||
exit;
|
||||
}
|
||||
|
||||
# Page functions
|
||||
|
||||
# JS Scripts to load for this page
|
||||
$jsScriptLoadData['form'][] = true;
|
||||
$jsScriptLoadData['slugify'] = true;
|
||||
$jsScriptLoadData['breadCrumbs'] = true;
|
||||
|
||||
# PageClasses Setup
|
||||
$pageNavbar = new pageNavbar(true);
|
||||
$formBuilder = new formBuilder('add_user_groups', '<i class="fas fa-plus"></i>', '/accesscontrol/#user-groups');
|
||||
|
||||
# Retrieve Information for the page
|
||||
$user_groups_data = $GLOBALS['conn']->query("SELECT * FROM vc_user_groups ORDER BY user_group_weight ASC");
|
||||
$user_groups = array();
|
||||
while ($user_group = $user_groups_data->fetch_assoc()) {
|
||||
array_push($user_groups, $user_group);
|
||||
$last_weight = $user_group['user_group_weight'];
|
||||
}
|
||||
|
||||
# Set breadcrumb data
|
||||
array_push($GLOBALS['breadCrumbArray'], array('display' => __('user_groups'), 'href' => '/accesscontrol/#user-groups'));
|
||||
array_push($GLOBALS['breadCrumbArray'], array('display' => __('add_user_groups'), 'href' => ''));
|
||||
|
||||
# Start page output
|
||||
$pageNavbar->outPutNavbar();
|
||||
$formBuilder->startForm();
|
||||
?>
|
||||
<form id="FormValidation" enctype="multipart/form-data" method="post" action="/api/v1/user-groups/">
|
||||
<div class="card-body">
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="user_group_name" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('user_group_name') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<input type="text" class="form-control" id="user_group_name" name="user_group_name" placeholder="" data-slugify="user_group_slugify" required/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="user_group_slugify" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('user_group_slugify') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<input type="text" class="form-control" id="user_group_slugify" name="user_group_slugify" placeholder="" required/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="user_group_type" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('user_group_type') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<div class="select2-input">
|
||||
<select id="user_group_type" name="user_group_type" class="form-control" required>
|
||||
<option value="user" selected><?php echo __('users') ?></option>
|
||||
<option value="admin"><?php echo __('administrators') ?></option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="user_group_slugify" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('weight') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<div class="mb-3">
|
||||
<input type="number" class="form-control" name="user_group_weight" min="1" max="900" step="1" value="<?php echo $last_weight + 10 ?>">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php $formBuilder->formFooter(); ?>
|
||||
</form>
|
||||
<?php $formBuilder->endForm(); ?>
|
||||
97
pub/bin/pages/system/pageAccessControl_user_group_edit.php
Normal file
97
pub/bin/pages/system/pageAccessControl_user_group_edit.php
Normal file
@@ -0,0 +1,97 @@
|
||||
<?php
|
||||
|
||||
use api\classes\API;
|
||||
use api\classes\API_usergroups;
|
||||
use bin\php\Classes\formBuilder;
|
||||
use bin\php\Classes\pageNavbar;
|
||||
|
||||
if (!defined('APP_INIT')) {
|
||||
exit;
|
||||
}
|
||||
# IDE Section
|
||||
|
||||
# Includes Section
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/bin/php/Classes/formBuilder.php');
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/bin/php/Classes/pageNavbar.php');
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/api/classes/API.php');
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/api/classes/API_usergroups.php');
|
||||
|
||||
# Check permissions
|
||||
$API = new API();
|
||||
if (!$API->checkPermissions('admin-access-control-user-groups', 'RW', true)) {
|
||||
echo 'error 401 unauthorized';
|
||||
exit;
|
||||
}
|
||||
|
||||
# Page functions
|
||||
|
||||
# JS Scripts to load for this page
|
||||
$jsScriptLoadData['form'] = true;
|
||||
$jsScriptLoadData['slugify'] = true;
|
||||
$jsScriptLoadData['breadCrumbs'] = true;
|
||||
|
||||
# PageClasses Setup
|
||||
$pageNavbar = new pageNavbar(true);
|
||||
$formBuilder = new formBuilder('edit_user_groups', '<i class="fas fa-plus"></i>', '/accesscontrol/#user-groups');
|
||||
|
||||
# Retrieve Information for the page
|
||||
$user_group_uuid = $_GET['user_group_edit'];
|
||||
$_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];
|
||||
|
||||
# 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' => '/accesscontrol/#user-groups'));
|
||||
array_push($GLOBALS['breadCrumbArray'], array('display' => __('edit'), 'href' => ''));
|
||||
|
||||
# Start page output
|
||||
$pageNavbar->outPutNavbar();
|
||||
$formBuilder->startForm();
|
||||
?>
|
||||
<form id="FormValidation" enctype="multipart/form-data" method="post" action="/api/v1/user-groups/">
|
||||
<input type="hidden" name="_method" value="PUT">
|
||||
<input type="hidden" name="user_group_uuid" value="<?php echo $user_group['user_group_uuid'] ?>"/>
|
||||
<input type="hidden" name="user_group_slugify" value="<?php echo $user_group['user_group_slugify'] ?>"/>
|
||||
<div class="card-body">
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="user_group_name" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('user_group_name') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<input type="text" class="form-control" id="user_group_name" name="user_group_name" value="<?php echo $user_group['user_group_name'] ?>" placeholder="" required/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="user_group_slugify" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('user_group_slugify') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<input type="text" class="form-control" id="user_group_slugify" name="user_group_slugify" value="<?php echo $user_group['user_group_slugify'] ?>" placeholder="" required disabled/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="user_group_type" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('user_group_type') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<div class="select2-input">
|
||||
<select id="user_group_type" name="user_group_type" class="form-control" disabled>
|
||||
<option value="user" selected><?php echo __('users') ?></option>
|
||||
<option value="admin"><?php echo __('administrators') ?></option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="user_group_slugify" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('weight') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<div class="mb-3">
|
||||
<input type="number" class="form-control" name="user_group_weight" min="1" max="900" step="1" value="<?php echo $user_group['user_group_weight'] ?>">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php $formBuilder->formFooter(); ?>
|
||||
</form>
|
||||
<?php $formBuilder->endForm(); ?>
|
||||
328
pub/bin/pages/system/pageAccessControl_view.php
Normal file
328
pub/bin/pages/system/pageAccessControl_view.php
Normal file
@@ -0,0 +1,328 @@
|
||||
<?php
|
||||
|
||||
use api\classes\API;
|
||||
|
||||
if (!defined('APP_INIT')) {
|
||||
exit;
|
||||
}
|
||||
# IDE Section
|
||||
|
||||
# Includes Section
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/api/classes/API_permissions.php');
|
||||
require_once $_SERVER['DOCUMENT_ROOT'] . '/api/classes/API.php';
|
||||
|
||||
# Check permissions
|
||||
$API = new API();
|
||||
|
||||
# Page functions
|
||||
|
||||
# JS Scripts to load for this page
|
||||
$jsScriptLoadData['activeTabOnRefresh'] = true;;
|
||||
$jsScriptLoadData['multiFilterSelect'] = true;
|
||||
$jsScriptLoadData['delete_confirmation'] = true;
|
||||
$jsScriptLoadData['datatables'] = true;
|
||||
|
||||
# PageClasses Setup
|
||||
|
||||
# Retrieve Information for the page
|
||||
$user_groups_data = $GLOBALS['conn']->query("SELECT * FROM vc_user_groups ORDER BY user_group_weight ASC");
|
||||
$user_groups = array();
|
||||
while ($user_group = $user_groups_data->fetch_assoc()) {
|
||||
array_push($user_groups, $user_group);
|
||||
$last_weight = $user_group['user_group_weight'];
|
||||
}
|
||||
|
||||
# get all the admins
|
||||
$stmt = $GLOBALS['conn']->query("SELECT * FROM vc_users INNER JOIN vc_user_groups ON vc_users.user_group_uuid = vc_user_groups.user_group_uuid WHERE user_group_type = 'admin'");
|
||||
$administrators = array();
|
||||
while ($row = $stmt->fetch_assoc()) {
|
||||
array_push($administrators, $row);
|
||||
}
|
||||
|
||||
|
||||
$stmt = $GLOBALS['conn']->query("SELECT * FROM vc_permissions INNER JOIN system_modules ON vc_permissions.module_uuid = system_modules.module_uuid WHERE system_modules.module_enabled = 1");
|
||||
$permissions = array();
|
||||
while ($row = $stmt->fetch_assoc()) {
|
||||
array_push($permissions, $row);
|
||||
}
|
||||
|
||||
# Set breadcrumb data
|
||||
|
||||
# Start page output
|
||||
?>
|
||||
<div class="card-body activeTabOnRefresh" style="opacity: 0; transition: opacity 10ms;">
|
||||
<div class="row">
|
||||
<div class="col-md-1">
|
||||
<div class="nav flex-column nav-pills nav-secondary nav-pills-no-bd nav-pills-icons" id="v-pills-tab-with-icon" role="tablist" aria-orientation="vertical">
|
||||
<?php if ($API->checkPermissions('admin-access-admins', 'RO', true)) { ?>
|
||||
<a class="nav-link active" id="administrators-tab" data-bs-toggle="pill" href="#administrators" role="tab" aria-controls="administrators" aria-selected="true">
|
||||
<i class="fa-solid fa-user-tie"></i><?php echo __('administrators'); ?>
|
||||
</a>
|
||||
<?php } ?>
|
||||
<?php if ($API->checkPermissions('admin-access-control-permissions', 'RO', true)) { ?>
|
||||
<a class="nav-link" id="permissions-tab" data-bs-toggle="pill" href="#permissions" role="tab" aria-controls="permissions">
|
||||
<i class="fa-solid fa-lock"></i><?php echo __('permission'); ?>
|
||||
</a>
|
||||
<?php } ?>
|
||||
<?php if ($API->checkPermissions('admin-access-control-user-groups', 'RO', true)) { ?>
|
||||
<a class="nav-link" id="user-groups-tab" data-bs-toggle="pill" href="#user-groups" role="tab" aria-controls="user-groups">
|
||||
<i class="fa-solid fa-user-group"></i><?php echo __('user_groups'); ?>
|
||||
</a>
|
||||
<?php } ?>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="col-md-11">
|
||||
<div class="tab-content" id="v-pills-with-icon-tabContent">
|
||||
<?php if ($API->checkPermissions('admin-access-admins', 'RO', true)) { ?>
|
||||
<div class="tab-pane fade show active" id="administrators" role="tabpanel" aria-labelledby="administrators-tab">
|
||||
<div class="row mb-3">
|
||||
<div class="col-5">
|
||||
<h2>
|
||||
<i class="fa-solid fa-user-tie"></i> <?php echo __('administrators') ?>
|
||||
</h2>
|
||||
</div>
|
||||
<div class="col d-flex justify-content-end">
|
||||
<?php if ($API->checkPermissions('admin-access-admins', 'RW', true)) { ?>
|
||||
<a href="?admin_add=">
|
||||
<button class="btn btn-primary">
|
||||
<i class="fas fa-plus text-success"></i> <?php echo __('add_admin') ?>
|
||||
</button>
|
||||
</a>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="table-responsive">
|
||||
<table class="multi-filter-select display table table-striped table-hover" data-skip-columns="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?php echo __('avatar') ?></th>
|
||||
<th><?php echo __('full_name') ?></th>
|
||||
<th><?php echo __('user_email') ?></th>
|
||||
<th><?php echo __('user_state') ?></th>
|
||||
<th><?php echo __('last_login') ?></th>
|
||||
<th><?php echo __('user_group_name') ?></th>
|
||||
<th><?php echo __('actions') ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th><?php echo __('avatar') ?></th>
|
||||
<th><?php echo __('full_name') ?></th>
|
||||
<th><?php echo __('user_email') ?></th>
|
||||
<th><?php echo __('user_state') ?></th>
|
||||
<th><?php echo __('last_login') ?></th>
|
||||
<th><?php echo __('user_group_name') ?></th>
|
||||
<th><?php echo __('actions') ?></th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
<tbody>
|
||||
<?php foreach ($administrators as $administrator) {
|
||||
if ($administrator['user_email'] != 'superuser') { ?>
|
||||
<tr data-item-id="<?php echo $administrator['user_uuid']; ?>">
|
||||
<td class="text-nowrap">
|
||||
<div class="avatar-sm ">
|
||||
<img class="avatar-img rounded-circle" src="data:image/png;base64,<?php echo str_replace("'", '', $administrator['user_profile_picture']) ?>" height="50px" alt="">
|
||||
</div>
|
||||
</td>
|
||||
<td class="text-nowrap"><?php echo $administrator['user_full_name'] ?></td>
|
||||
<td class="text-nowrap"><?php echo $administrator['user_email'] ?></td>
|
||||
<td class="text-nowrap"><?php echo $administrator['user_status'] ?></td>
|
||||
<td class="text-nowrap"><?php showTime($administrator['user_last_login_timestamp']); ?></td>
|
||||
<td class="text-nowrap"><?php echo $administrator['user_group_name'] ?></td>
|
||||
<td class="text-nowrap">
|
||||
<?php if ($API->checkPermissions('admin-access-admins', 'RW', true)) { ?>
|
||||
<a href="?admin_edit=<?php echo $administrator['user_uuid'] ?>" class="btn btn-primary btn-sm btn-rounded"><i class="fas fa-edit"></i></a>
|
||||
<?php } ?>
|
||||
<?php if ($API->checkPermissions('admin-access-admins', 'RO', true)) { ?>
|
||||
<a href="?admin_view=<?php echo $administrator['user_uuid'] ?>" class="btn btn-info btn-sm btn-rounded"><i class="far fa-eye"></i></a>
|
||||
<?php } ?>
|
||||
<?php if ($API->checkPermissions('admin-access-admins', 'RW', true)) { ?>
|
||||
<a href="#" class="btn btn-danger btn-sm btn-rounded delete-btn" data-item-uuid="<?php echo $administrator['user_uuid'] ?>" data-api-url="/api/v1/users/" data-item-name="user_uuid"><i class="fas fa-trash-alt"></i></a>
|
||||
<?php } ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php }
|
||||
} ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<?php if ($API->checkPermissions('admin-access-control-permissions', 'RO', true)) { ?>
|
||||
<div class="tab-pane fade show active" id="permissions" role="tabpanel" aria-labelledby="permissions-tab">
|
||||
<div class="row mb-3">
|
||||
<div class="col-6">
|
||||
<h2>
|
||||
<i class="fa-solid fa-lock"></i> <?php echo __('permission') ?>
|
||||
</h2>
|
||||
</div>
|
||||
<div class="col d-flex justify-content-end">
|
||||
<?php if ($API->isSuperuser()) { ?>
|
||||
<a href="?permission_add=">
|
||||
<button class="btn btn-primary">
|
||||
<i class="fas fa-plus text-success"></i> <?php echo __('add_permission') ?>
|
||||
</button>
|
||||
</a>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="table-responsive">
|
||||
<table class="multi-filter-select display table table-striped table-hover" data-skip-columns="2,3">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?php echo __('name') ?></th>
|
||||
<th><?php echo __('module') ?></th>
|
||||
<th><?php echo __('description') ?></th>
|
||||
<th><?php echo __('actions') ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th><?php echo __('name') ?></th>
|
||||
<th><?php echo __('module') ?></th>
|
||||
<th><?php echo __('description') ?></th>
|
||||
<th><?php echo __('actions') ?></th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
<tbody>
|
||||
<?php foreach ($permissions as $key => $permission) { ?>
|
||||
<tr data-item-id="<?php echo $permission['permission_uuid']; ?>">
|
||||
<td class="text-nowrap"><?php echo $permission['permission_name'] ?></td>
|
||||
<td class="text-nowrap"><?php echo __($permission['module_slugify']) ?></td>
|
||||
<td class=""><?php echo $permission['permission_description'] ?></td>
|
||||
<td class="text-nowrap">
|
||||
|
||||
<?php if ($API->checkPermissions('admin-access-control-permissions', 'RW', true)) { ?>
|
||||
<a href="?permission_edit=<?php echo $permission['permission_uuid'] ?>" class="btn btn-primary btn-sm btn-rounded"><i class="fas fa-edit"></i></a>
|
||||
<?php } ?>
|
||||
|
||||
<a href="?permission_view=<?php echo $permission['permission_uuid'] ?>" class="btn btn-info btn-sm btn-rounded"><i class="far fa-eye"></i></a>
|
||||
<?php if ($API->isSuperuser()) { ?>
|
||||
<a href="#" class="btn btn-danger btn-sm btn-rounded delete-btn" data-item-uuid="<?php echo $permission['permission_uuid'] ?>" data-item-name="permission_uuid" data-api-url="/api/v1/permissions/"><i class="fas fa-trash-alt"></i></a>
|
||||
<?php } ?>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<?php if ($API->checkPermissions('admin-access-control-user-groups', 'RO', true)) { ?>
|
||||
<div class="tab-pane fade" id="user-groups" role="tabpanel" aria-labelledby="user-groups-tab">
|
||||
<div class="row mb-3">
|
||||
<div class="col-6">
|
||||
<h2>
|
||||
<i class="fa-solid fa-user-group"></i> <?php echo __('user_groups') ?>
|
||||
</h2>
|
||||
</div>
|
||||
<?php if ($API->checkPermissions('admin-access-control-user-groups', 'RW', true)) { ?>
|
||||
<div class="col d-flex justify-content-end">
|
||||
<a href="?user_group_add=">
|
||||
<button class="btn btn-primary">
|
||||
<i class="fas fa-plus text-success"></i> <?php echo __('add_user_groups') ?>
|
||||
</button>
|
||||
</a>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<?php
|
||||
if (count($user_groups) == 0) {
|
||||
echo __('no_user_groups_found');
|
||||
} else { ?>
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?php echo __('user_group_name') ?></th>
|
||||
<th><?php echo __('user_group_slugify') ?></th>
|
||||
<th><?php echo __('user_group_type') ?></th>
|
||||
<th class="text-nowrap text-end"><?php echo __('actions') ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<?php foreach ($user_groups as $user_group) { ?>
|
||||
<tr>
|
||||
<td><?php echo $user_group['user_group_name']; ?></td>
|
||||
<td><?php echo $user_group['user_group_slugify']; ?></td>
|
||||
<td><?php echo __($user_group['user_group_type']); ?></td>
|
||||
<td class="text-nowrap text-end">
|
||||
<?php if ($API->checkPermissions('admin-access-control-user-groups', 'RW', true)) { ?>
|
||||
<a href="?user_group_edit=<?php echo $user_group['user_group_uuid'] ?>" class="btn btn-primary btn-sm btn-rounded"><i class="fas fa-edit"></i></a>
|
||||
<?php } ?>
|
||||
<?php if ($API->checkPermissions('admin-access-control-user-groups', 'RO', true)) { ?>
|
||||
<a href="#" class="btn btn-info btn-sm btn-rounded" data-bs-toggle="modal" data-bs-target="#infoModal<?php echo $user_group['user_group_slugify'] ?>"><i class="far fa-eye"></i></a>
|
||||
<?php } ?>
|
||||
<?php if ($API->checkPermissions('admin-access-control-user-groups', 'RW', true)) { ?>
|
||||
<a href="#" class="btn btn-danger btn-sm btn-rounded delete-btn" data-item-uuid="<?php echo $user_group['user_group_uuid'] ?>" data-api-url="/api/v1/user-groups/" data-item-name="user_group_uuid"><i class="fas fa-trash-alt"></i></a>
|
||||
<?php } ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
</table>
|
||||
<?php foreach ($user_groups as $user_group) {
|
||||
if ($API->checkPermissions('admin-access-control-user-groups', 'RO', true)) { ?>
|
||||
<div class="modal fade" id="infoModal<?php echo $user_group['user_group_slugify'] ?>" 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">
|
||||
<br>
|
||||
<table class="table table-sm table-striped-bg-black">
|
||||
<tr>
|
||||
<td><?php echo __('uuid') ?>:</td>
|
||||
<td><?php echo $user_group['user_group_uuid'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo __('user_group_name') ?>:</td>
|
||||
<td><?php echo $user_group['user_group_name'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo __('user_group_slugify') ?>:</td>
|
||||
<td><?php echo $user_group['user_group_slugify'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo __('weight') ?>:</td>
|
||||
<td><?php echo $user_group['user_group_weight'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo __('create_date') ?>:</td>
|
||||
<td><?php showTime($user_group['user_group_create_timestamp']) ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo __('last_modified_date') ?>:</td>
|
||||
<td><?php showTime($user_group['user_group_modified_timestamp']); ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php }
|
||||
}
|
||||
} ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
55
pub/bin/pages/system/pageMonitoring.php
Normal file
55
pub/bin/pages/system/pageMonitoring.php
Normal file
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
if (!defined('APP_INIT')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
$jsScriptLoadData['activeTabOnRefresh'] = true;
|
||||
|
||||
?>
|
||||
<div class="card-body activeTabOnRefresh" style="opacity: 0; transition: opacity 10ms;">
|
||||
<div class="row">
|
||||
<div class="col-md-1">
|
||||
<div class="nav flex-column nav-pills nav-secondary nav-pills-no-bd nav-pills-icons" id="v-pills-tab-with-icon" role="tablist" aria-orientation="vertical">
|
||||
|
||||
<a class="nav-link active" id="overview-tab" data-bs-toggle="pill" href="#overview" role="tab" aria-controls="overview" aria-selected="true">
|
||||
<i class="fa-solid fa-ear-listen"></i></i><?php echo __('overview'); ?>
|
||||
</a>
|
||||
<a class="nav-link" id="monitoring-tab" data-bs-toggle="pill" href="#monitoring" role="tab" aria-controls="monitoring">
|
||||
<i class="fa-solid fa-magnifying-glass"></i><?php echo __('monitoring'); ?>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-11">
|
||||
<div class="tab-content" id="v-pills-with-icon-tabContent">
|
||||
<div class="tab-pane fade show active" id="overview" role="tabpanel" aria-labelledby="overview-tab">
|
||||
<div class="row mb-3">
|
||||
<div class="col-4">
|
||||
<h2>
|
||||
<i class="fa-solid fa-ear-listen"></i></i> <?php echo __('overview') ?>
|
||||
</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
to be made
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="monitoring" role="tabpanel" aria-labelledby="monitoring-tab">
|
||||
<div class="row mb-3">
|
||||
<div class="col-4">
|
||||
<h2>
|
||||
<i class="fa-solid fa-magnifying-glass"></i> <?php echo __('monitoring') ?>
|
||||
</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
to be made
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
343
pub/bin/pages/system/pageSystemConfig.php
Normal file
343
pub/bin/pages/system/pageSystemConfig.php
Normal file
@@ -0,0 +1,343 @@
|
||||
<?php
|
||||
|
||||
use api\classes\API;
|
||||
|
||||
if (!defined('APP_INIT')) {
|
||||
exit;
|
||||
}
|
||||
# IDE Section
|
||||
|
||||
|
||||
# Includes Section
|
||||
include_once($_SERVER['DOCUMENT_ROOT'] . '/api/classes/API.php');
|
||||
|
||||
# Check permissions
|
||||
$API = new API();
|
||||
|
||||
# Page functions
|
||||
|
||||
|
||||
# JS Scripts to load for this page
|
||||
$jsScriptLoadData['activeTabOnRefresh'] = true;
|
||||
$jsScriptLoadData['copyInputValue'] = true;
|
||||
$jsScriptLoadData['updateToggle'] = true;
|
||||
|
||||
# PageClasses Setup
|
||||
|
||||
# Retrieve Information for the page
|
||||
$portal_settings = $GLOBALS['conn']->query("SELECT * FROM vc_portal_settings")->fetch_assoc();
|
||||
|
||||
$system_modules_data = $GLOBALS['conn']->query("SELECT * FROM system_modules");
|
||||
$system_modules = array();
|
||||
while ($module = $system_modules_data->fetch_assoc()) {
|
||||
array_push($system_modules, $module);
|
||||
}
|
||||
|
||||
|
||||
# Set breadcrumb data
|
||||
|
||||
# Start page output
|
||||
|
||||
?>
|
||||
<div class="card-body activeTabOnRefresh" style="opacity: 0; transition: opacity 10ms;">
|
||||
<div class="row">
|
||||
<div class="col-md-1 col-lg-1">
|
||||
<div class="nav flex-column nav-pills nav-secondary nav-pills-no-bd nav-pills-icons" id="v-pills-tab-with-icon" role="tablist" aria-orientation="vertical">
|
||||
<?php if ($API->checkPermissions('admin-portalsettings', 'RO', true)) { ?>
|
||||
<a class="nav-link" id="global-settings-tab" data-bs-toggle="pill" href="#global-settings" role="tab" aria-controls="global-settings" aria-selected="true">
|
||||
<i class="fas fa-globe-americas"></i><?php echo __('global_settings'); ?>
|
||||
</a>
|
||||
<?php
|
||||
} ?>
|
||||
<?php if ($API->checkPermissions('admin-mailsettings', 'RO', true)) {
|
||||
|
||||
?>
|
||||
<a class="nav-link" id="mail-settings-tab" data-bs-toggle="pill" href="#mail-settings" role="tab" aria-controls="mail-settings">
|
||||
<i class="fa-solid fa-envelope"></i><?php echo __('mail_settings'); ?>
|
||||
</a>
|
||||
<?php
|
||||
} ?>
|
||||
<?php if ($API->checkPermissions('admin-modules', 'RO', true)) {
|
||||
$first_nav_active = true; ?>
|
||||
<a class="nav-link" id="mail-settings-tab" data-bs-toggle="pill" href="#modules" role="tab" aria-controls=modules">
|
||||
<i class="fa-solid fa-cubes"></i><?php echo __('modules'); ?>
|
||||
</a>
|
||||
<?php $first_nav_active = true;
|
||||
} ?>
|
||||
<?php if ($API->checkPermissions('admin-sources', 'RO', true)) {
|
||||
$first_nav_active = true; ?>
|
||||
<a class="nav-link" id="sources-tab" data-bs-toggle="pill" href="#sources" role="tab" aria-controls=sources">
|
||||
<i class="fa-solid fa-cloud"></i><?php echo __('sources'); ?>
|
||||
</a>
|
||||
<?php $first_nav_active = true;
|
||||
} ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-11 col-lg-11">
|
||||
<div class="tab-content" id="v-pills-with-icon-tabContent">
|
||||
<?php if ($API->checkPermissions('admin-portalsettings', 'RO', true)) { ?>
|
||||
<div class="tab-pane fade show active" id="global-settings" role="tabpanel" aria-labelledby="global-settings-tab">
|
||||
<div class="row mb-3">
|
||||
<div class="col-12">
|
||||
<h2>
|
||||
<i class="fas fa-globe-americas"></i> <?php echo __('global_settings') ?>
|
||||
</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<form id="FormValidation" method="post" action="/api/v1/portalsettings/">
|
||||
<input type="hidden" name="_method" value="PUT">
|
||||
<input type="hidden" name="_return" value="/systemconfig/#global-settings">
|
||||
<input type="hidden" name="portal_uuid" value="<?php echo $portal_settings['portal_uuid']; ?>">
|
||||
<div class="card-body">
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="portal_name" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('portal_name') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<input type="text" class="form-control" id="portal_name" name="portal_name" value="<?php echo $portal_settings['portal_name'] ?>" placeholder="" required/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="portal_slugify" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('portal_slugify') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<input type="text" class="form-control" id="portal_slugify" name="portal_slugify" value="<?php echo $portal_settings['portal_slugify'] ?>" placeholder="" required disabled/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="portal_provider_name" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('portal_provider_name') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<input type="text" class="form-control" id="portal_provider_name" name="portal_provider_name" value="<?php echo $portal_settings['portal_provider_name'] ?>" placeholder="" required/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="portal_provider_slugify" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('portal_provider_slugify') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<input type="text" class="form-control" id="portal_provider_slugify" name="portal_provider_slugify" value="<?php echo $portal_settings['portal_provider_slugify'] ?>" placeholder="" disabled/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="admin_auth_methods" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('admin_auth_methods') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<input type="text" class="form-control" id="admin_auth_methods" name="admin_auth_methods" value="<?php echo $portal_settings['admin_auth_methods'] ?>" placeholder="" required/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="cacert_url" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2">
|
||||
<?php echo __('cacert_url') ?>
|
||||
</label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" id="cacert_url" name="cacert_url" value="<?php echo $portal_settings['cacert_url'] ?>" placeholder="" disabled/>
|
||||
<button class="btn btn-outline-secondary" type="button" onclick="copyToClipboard('cacert_url')">
|
||||
<i class="fas fa-copy"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="autop_url" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2">
|
||||
<?php echo __('autop_url') ?>
|
||||
</label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" id="autop_url" name="autop_url" value="<?php echo $portal_settings['autop_url'] ?>" placeholder="" disabled/>
|
||||
<button class="btn btn-outline-secondary" type="button" onclick="copyToClipboard('autop_url')">
|
||||
<i class="fas fa-copy"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer py-4">
|
||||
<div class="row">
|
||||
<div class="col d-flex justify-content-end">
|
||||
<?php if ($API->checkPermissions('admin-portalsettings', 'RW', true)) { ?>
|
||||
<button type="submit" class="btn btn-primary">
|
||||
<i class="fas fa-edit"></i> <?php echo __('edit') ?>
|
||||
</button>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<?php if ($API->checkPermissions('admin-mailsettings', 'RO', true)) { ?>
|
||||
<div class="tab-pane fade show active" id="mail-settings" role="tabpanel" aria-labelledby="mail-settings-tab">
|
||||
<div class="row mb-3">
|
||||
<div class="col-12">
|
||||
<h2>
|
||||
<i class="fa-solid fa-envelope"></i> <?php echo __('mail_settings') ?>
|
||||
</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<form id="FormValidation" method="post" action="/api/v1/mailsettings/">
|
||||
<input type="hidden" name="portal_uuid" value="<?php echo $portal_settings['portal_uuid']; ?>">
|
||||
<input type="hidden" name="_method" value="PUT">
|
||||
<input type="hidden" name="_return" value="/systemconfig/#mail-settings">
|
||||
<div class="card-body">
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="mail_from_name" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('mail_from_name') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<input type="text" class="form-control" id="mail_from_name" name="mail_from_name" value="<?php echo $portal_settings['mail_from_name'] ?>" placeholder="" required/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="mail_from_address" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('mail_from_address') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<input type="email" class="form-control" name="mail_from_address" value="<?php echo $portal_settings['mail_from_address'] ?>" placeholder="" required/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="mail_smtp_host" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('mail_smtp_host') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<input type="text" class="form-control" name="mail_smtp_host" value="<?php echo $portal_settings['mail_smtp_host'] ?>" placeholder="" required/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="mail_smtp_secure" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('mail_smtp_secure') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<select id="mail_smtp_secure" name="mail_smtp_secure" class="form-control" required>
|
||||
<option value="tls" <?php echo ($portal_settings['mail_smtp_secure'] == 'tls') ? 'selected' : '' ?>>TLS (standard port 587)</option>
|
||||
<option value="ssl" <?php echo ($portal_settings['mail_smtp_secure'] == 'ssl') ? 'selected' : '' ?>>SSL (standard port 465)</option>
|
||||
<option value="no" <?php echo ($portal_settings['mail_smtp_secure'] == 'no') ? 'selected' : '' ?>>No Encryption (standard port 25)</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="mail_smtp_port" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('mail_smtp_port') ?></label>
|
||||
<div class="col-lg-2 col-md-2 col-sm-2">
|
||||
<input type="number" class="form-control" id="mail_smtp_port" name="mail_smtp_port" value="<?php echo $portal_settings['mail_smtp_port'] ?>" placeholder="" required/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="mail_smtp_auth" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('mail_smtp_auth') ?></label>
|
||||
<div class="col-lg-2 col-md-2 col-sm-2">
|
||||
<select id="mail_smtp_auth" name="mail_smtp_auth" class="form-control" required>
|
||||
<option value="1" <?php echo ($portal_settings['mail_smtp_auth'] == 1) ? 'selected' : '' ?>>true</option>
|
||||
<option value="0" <?php echo ($portal_settings['mail_smtp_auth'] == 0) ? 'selected' : '' ?>>false</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="mail_smtp_user" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('mail_smtp_user') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<input type="text" class="form-control" id="mail_smtp_user" name="mail_smtp_user" value="<?php echo $portal_settings['mail_smtp_user'] ?>" placeholder="" required/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group form-show-validation row">
|
||||
<label for="mail_smtp_pass" class="col-lg-3 col-md-3 col-sm-4 mt-sm-2"><?php echo __('mail_smtp_pass') ?></label>
|
||||
<div class="col-lg-9 col-md-12 col-sm-10">
|
||||
<input type="password" class="form-control" id="mail_smtp_pass" name="mail_smtp_pass" value="*******************" placeholder="" autocomplete="new-password" required/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="card-footer py-4">
|
||||
<div class="row">
|
||||
<div class="col d-flex justify-content-end">
|
||||
<?php if ($API->checkPermissions('admin-mailsettings', 'RW', true)) { ?>
|
||||
<button type="submit" class="btn btn-primary">
|
||||
<i class="fas fa-edit"></i> <?php echo __('edit') ?>
|
||||
</button>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<?php if ($API->checkPermissions('admin-modules', 'RO', true)) { ?>
|
||||
<div class="tab-pane fade show" id="modules" role="tabpanel" aria-labelledby="modules-tab">
|
||||
<div class="row mb-3">
|
||||
<div class="col-12">
|
||||
<h2>
|
||||
<i class="fa-solid fa-cubes"></i> <?php echo __('modules') ?>
|
||||
</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card p-3">
|
||||
<form id="FormValidation" method="post" action="/api/v1/modules/">
|
||||
<input type="hidden" name="portal_uuid" value="<?php echo $portal_settings['portal_uuid']; ?>">
|
||||
<input type="hidden" name="_method" value="PUT">
|
||||
<input type="hidden" name="_return" value="/systemconfig/#modules">
|
||||
<table class="multi-filter-select display table table-striped table-hover" data-skip-columns="0,5">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?php echo __('module_name') ?></th>
|
||||
<th><?php echo __('enabled') ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th><?php echo __('module_name') ?></th>
|
||||
<th><?php echo __('enabled') ?></th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
<tbody>
|
||||
<?php
|
||||
foreach ($system_modules as $module) { ?>
|
||||
<tr>
|
||||
<td><?php echo $module['module_name'] ?> </td>
|
||||
<td>
|
||||
<label class="switch">
|
||||
|
||||
<input type="checkbox" class="checkbox" data-api-url="/api/v1/system/modules/" data-api-data='<?php echo json_encode(['module_uuid' => $module['module_uuid'], 'module_enabled' => $module['module_enabled'] ? 0 : 1]) ?>' data-api-changevalue="module_enabled"
|
||||
<?php echo(($module['module_enabled']) ? 'checked' : '') ?>
|
||||
<?php echo ($API->checkPermissions('admin-modules', 'RW', true)) ? '' : 'disabled' ?>
|
||||
<?php echo(($module['module_slugify'] == 'system') ? 'disabled' : '') ?>>
|
||||
<div class="slider"></div>
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<?php if ($API->checkPermissions('admin-sources', 'RO', true)) { ?>
|
||||
<div class="tab-pane fade show" id="sources" role="tabpanel" aria-labelledby="sources-tab">
|
||||
<div class="row mb-3">
|
||||
<div class="col-12">
|
||||
<h2>
|
||||
<i class="fa-solid fa-cloud"></i> <?php echo __('sources') ?>
|
||||
</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card p-3">
|
||||
<div class="row row-cols-1 row-cols-md-3 g-4">
|
||||
<div class="col">
|
||||
<div class="card card-post card-round">
|
||||
<img class="card-img-top" src="/src/images/sources/inserve/inserve_logo.webp" alt="Inserve Logo">
|
||||
<div class="card-body">
|
||||
<h3 class="card-title">
|
||||
Inserve </h3>
|
||||
<p class="card-text">
|
||||
Inserve is Dutch software that helps MSPs support their customers in a personal and structured way. </p>
|
||||
<a href="/system/sources/inserve" class="btn btn-primary">View</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
97
pub/bin/pages/system/sources/pageSourceInserve.php
Normal file
97
pub/bin/pages/system/sources/pageSourceInserve.php
Normal file
@@ -0,0 +1,97 @@
|
||||
<?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="card-body activeTabOnRefresh" style="opacity: 0; transition: opacity 10ms;">
|
||||
<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>
|
||||
Reference in New Issue
Block a user