vpanel-stack/panel/classes/Panel/Vhost/VhostsEdit.php
Matthew Saunders Brown 8960fb9ae7 add vhosts edit page
2024-10-30 15:10:16 -07:00

100 lines
3.0 KiB
PHP

<?php
/**
* vpanel-stack
* https://git.stack-source.com/msb/vpanel-stack
* Copyright (c) 2022 Matthew Saunders Brown <matthewsaundersbrown@gmail.com>
* GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
*/
namespace Panel\Vhost;
class VhostsEdit extends \Panel\Vhost {
function beforeRoute($f3) {
parent::beforeRoute($f3);
$vhost = $f3->get('PARAMS.vhost');
if ($f3->get('NAV.mapping') == 'vpanel') {
if ($vhost_array = $f3->call('\Panel::vGet', array("vhost-get.sh -d $vhost -c", FALSE))) {
$vhost_array = $vhost_array[0];
} else {
$messages[] = "Error getting info for $vhost.";
$f3->set('SESSION.messages', $messages);
$f3->reroute("/");
}
} elseif ($f3->get('NAV.mapping') == 'vhost') {
/* exta auth checks if logged in via vhost mapping */
if ($f3->exists('SESSION.vhostusername')) {
/* vhostusername indicates vhost user login */
$username = $f3->get('SESSION.vhostusername');
if ($vhost_array = $f3->call('\Panel::vGet', array("vhost-get.sh -u $username -d $vhost -c", FALSE))) {
$vhost_array = $vhost_array[0];
} else {
$messages[] = "Unauthorized request.";
$f3->set('SESSION.messages', $messages);
$f3->reroute("/");
}
} else {
/* SESSION.vhostusername not set. Something went wrong, redirect back home */
$messages[] = "Error verifying system user for domain $domain, can not edit.";
$f3->set('SESSION.messages', $messages);
$f3->reroute("/");
}
} else {
$messages[] = "Invalid request.";
$f3->set('SESSION.messages', $messages);
$f3->reroute("/");
}
/* set php fpm version vars */
$f3->call('\Panel::setPHPVersions', $f3);
$vhost_array['fpm_version'] = $f3->get('PHP.fpm_version');
$vhost_array['fpm_versions_array'] = $f3->get('PHP.fpm_versions_array');
$vhost_array['fpm_version_count'] = $f3->get('PHP.fpm_version_count');
$f3->set('vhost_array', $vhost_array);
}
static function get($f3) {
if ($f3->exists('PARAMS.vhost')) {
$vhost = $f3->get('PARAMS.vhost');
$f3->set('page_header', "Edit Website: $vhost");
echo \Template::instance()->render('vhost/vhosts-edit.html');
} else {
/* vhost should always be set, if not reroute to home */
$f3->reroute("/");
}
}
function post($f3) {
$vhost = $f3->get('PARAMS.vhost');
$fpm_version = $_POST['fpm_version'];
$config = $f3->get('vhost_array.config');
exec("/usr/local/bin/vhost-enable.sh -d $vhost -m $config -f $fpm_version", $output, $result_code);
if ($result_code == 0) {
$messages[] = "Success: PHP set to version $fpm_version for $vhost.";
$f3->set('SESSION.messages', $messages);
if ($f3->get('NAV.mapping') == 'vhost') {
$f3->reroute("/");
} else {
$f3->reroute("/Websites/$vhost");
}
} else {
$f3->reroute("/Websites/$vhost");
}
}
}