Added passenger support. Partialy 1

This commit is contained in:
Alexey Berezhok
2024-12-03 21:44:39 +03:00
parent 92f77aceca
commit d0da95dfc5
97 changed files with 5316 additions and 31 deletions

View File

@@ -0,0 +1,37 @@
<?php
use function Hestiacp\quoteshellarg\quoteshellarg;
ob_start();
session_start();
include $_SERVER["DOCUMENT_ROOT"] . "/inc/main.php";
// Check token
verify_csrf($_GET);
// Check user
if ($_SESSION["userContext"] != "admin") {
header("Location: /list/user");
exit();
}
if (!empty($_GET["id"])) {
$v_name = urldecode($_GET["id"]);
$v_action = urldecode($_GET["state"]);
if ($v_action == "enable") {
exec(HESTIA_CMD . "v-ext-modules enable " . quoteshellarg($v_name), $output, $return_var);
} else {
exec(HESTIA_CMD . "v-ext-modules disable " . quoteshellarg($v_name), $output, $return_var);
}
}
check_return_code($return_var, $output);
unset($output);
$back = getenv("HTTP_REFERER");
if (!empty($back)) {
header("Location: " . $back);
exit();
}
header("Location: /list/extmodules/");
exit();

View File

@@ -183,6 +183,14 @@ exec(HESTIA_CMD . "v-list-web-stats json", $output, $return_var);
$stats = json_decode(implode("", $output), true);
unset($output);
//Check if passenger enabled
exec(HESTIA_CMD . "v-ext-modules state passenger_manager json", $output, $return_var);
$check_passenger_enabled = json_decode(implode("", $output), true);
if (($return_var == 0) && (!empty($check_passenger_enabled)) && ($check_passenger_enabled[0]["STATE"] == "enabled")){
//TODO
}
unset($output);
// Check POST request
if (!empty($_POST["save"])) {
$v_domain = $_POST["v_domain"];

View File

View File

@@ -0,0 +1,24 @@
<?php
$TAB = "EXTMODULES";
// Main include
include $_SERVER["DOCUMENT_ROOT"] . "/inc/main.php";
// Check user
if ($_SESSION["userContext"] != "admin") {
header("Location: /list/user");
exit();
}
// Data
exec(HESTIA_CMD . "v-ext-modules list json", $output, $return_var);
$data = json_decode(implode("", $output), true);
ksort($data);
unset($output);
// Render page
render_page($user, $TAB, "extmodules");
// Back uri
$_SESSION["back"] = $_SERVER["REQUEST_URI"];

View File

@@ -3304,6 +3304,10 @@ msgstr "Квота размера памяти файловой системы"
msgid "Firewall"
msgstr "Файрвол"
#: ../../web/templates/pages/list_services.php:31
msgid "ExtModules"
msgstr "Доп. модули"
#: ../../web/templates/pages/edit_server_bind9.php:38
#: ../../web/templates/pages/edit_server_dovecot.php:68
#: ../../web/templates/pages/edit_server_httpd.php:37

View File

@@ -0,0 +1,100 @@
<!-- Begin toolbar -->
<div class="toolbar">
<div class="toolbar-inner">
<div class="toolbar-buttons">
<a class="button button-secondary button-back js-button-back" href="/list/server/">
<i class="fas fa-arrow-left icon-blue"></i><?= _("Back") ?>
</a>
</div>
</div>
</div>
<!-- End toolbar -->
<div class="container">
<h1 class="u-text-center u-hide-desktop u-mt20 u-pr30 u-mb20 u-pl30"><?= _("List modules") ?></h1>
<div class="units-table js-units-container">
<div class="units-table-header">
<div class="units-table-cell"><?= _("Module ID") ?></div>
<div class="units-table-cell"><?= _("Module name") ?></div>
<div class="units-table-cell"></div>
<div class="units-table-cell u-text-center"><?= _("Module description") ?></div>
<div class="units-table-cell u-text-center"><?= _("Module state") ?></div>
<div class="units-table-cell u-text-center"><?= _("Requirements") ?></div>
</div>
<!-- Begin extmodules list item loop -->
<?php
foreach ($data as $key => $value) {
++$i;
if ($data[$key]['STATE'] == 'disabled') {
$status = 'disabled';
$module_action = 'enable';
$module_action_title = _('Enable module');
$module_icon = 'fa-play';
$module_icon_class = 'icon-green';
$module_confirmation = _('Are you sure you want to enable module %s?') ;
} else {
$status = 'enabled';
$module_action = 'disable';
$module_action_title = _('Disable module');
$module_icon = 'fa-stop';
$module_icon_class = 'icon-red';
$module_confirmation = _('Are you sure you want to disable module %s?') ;
}
?>
<div class="units-table-row <?php if ($status == 'disabled') echo 'disabled'; ?> js-unit">
<div class="units-table-cell u-text-bold">
<span class="u-hide-desktop"><?= _("Module ID") ?>:</span>
<?= $data[$key]["ID"] ?>
</div>
<div class="units-table-cell units-table-heading-cell u-text-bold">
<span class="u-hide-desktop"><?= _("Module name") ?>:</span>
<?php
$iconClass = $status == "disabled" ? "fa-circle-minus" : "fa-circle-check";
$colorClass = $status == "disabled" ? "icon-red" : "icon-green";
?>
<i class="fas <?= $iconClass ?> u-mr5 <?= $status ? $colorClass : "" ?>"></i> <?= $data[$key]["NAME"] ?>
</div>
<div class="units-table-cell">
<ul class="units-table-row-actions">
<li class="units-table-row-action shortcut-s" data-key-action="js">
<a
class="units-table-row-action-link data-controls js-confirm-action"
href="/edit/extmodules/?id=<?= urlencode($data[$key]['NAME']) ?>&state=<?= $module_action ?>&token=<?= $_SESSION["token"] ?>"
title="<?= $module_action_title ?>"
data-confirm-title="<?= $module_action_title ?>"
data-confirm-message="<?= sprintf($module_confirmation, $data[$key]['NAME']) ?>"
>
<i class="fas <?= $module_icon ?> <?= $module_icon_class ?>"></i>
<span class="u-hide-desktop"><?= $module_action_title ?></span>
</a>
</li>
</ul>
</div>
<div class="units-table-cell">
<span class="u-hide-desktop"><?= _("Module description") ?>:</span>
<?= $data[$key]["DESCR"] ?>
</div>
<div class="units-table-cell u-text-center-desktop">
<span class="u-hide-desktop u-text-bold"><?= _("Module state") ?>:</span>
<?= $data[$key]["STATE"] ?>
</div>
<div class="units-table-cell u-text-bold u-text-center-desktop">
<span class="u-hide-desktop"><?= _("Requirements") ?>:</span>
<?= $data[$key]["REQ"] ?>
</div>
</div>
<?php } ?>
</div>
</div>
<footer class="app-footer">
<div class="container app-footer-inner">
<p>
<?= _("Extended modules list") ?>
</p>
</div>
</footer>

View File

@@ -27,6 +27,9 @@
>
<i class="fas fa-arrow-rotate-left icon-red"></i><?= _("Restart") ?>
</a>
<a href="/list/extmodules/" class="button button-secondary">
<i class="fas fa-hashtag icon-lightblue"></i><?= _("ExtModules") ?>
</a>
</div>
<div class="toolbar-right">
<form x-data x-bind="BulkEdit" action="/bulk/service/" method="post">