mirror of
https://github.com/billz/raspap-webgui.git
synced 2023-10-10 13:37:24 +02:00
Work in progress: SaveWireGuardUpload()
This commit is contained in:
parent
1adaca1ea1
commit
8c3531e6d2
@ -12,6 +12,8 @@ function DisplayWireGuardConfig()
|
|||||||
if (!RASPI_MONITOR_ENABLED) {
|
if (!RASPI_MONITOR_ENABLED) {
|
||||||
if (isset($_POST['savewgsettings'])) {
|
if (isset($_POST['savewgsettings'])) {
|
||||||
SaveWireGuardConfig($status);
|
SaveWireGuardConfig($status);
|
||||||
|
} elseif (is_uploaded_file( $_FILES["wgFile"]["tmp_name"])) {
|
||||||
|
SaveWireGuardUpload($status, $_FILES['wgFile']);
|
||||||
} elseif (isset($_POST['startwg'])) {
|
} elseif (isset($_POST['startwg'])) {
|
||||||
$status->addMessage('Attempting to start WireGuard', 'info');
|
$status->addMessage('Attempting to start WireGuard', 'info');
|
||||||
exec('sudo /bin/systemctl start wg-quick@wg0', $return);
|
exec('sudo /bin/systemctl start wg-quick@wg0', $return);
|
||||||
@ -79,6 +81,59 @@ function DisplayWireGuardConfig()
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validates uploaded .conf file, adds iptables post-up and
|
||||||
|
* post-down rules.
|
||||||
|
*
|
||||||
|
* @param object $status
|
||||||
|
* @param object $file
|
||||||
|
* @return object $status
|
||||||
|
*/
|
||||||
|
function SaveWireGuardUpload($status, $file)
|
||||||
|
{
|
||||||
|
define('KB', 1024);
|
||||||
|
$tmp_destdir = '/tmp/';
|
||||||
|
$auth_flag = 0;
|
||||||
|
|
||||||
|
try {
|
||||||
|
// If undefined or multiple files, treat as invalid
|
||||||
|
if (!isset($file['error']) || is_array($file['error'])) {
|
||||||
|
throw new RuntimeException('Invalid parameters');
|
||||||
|
}
|
||||||
|
|
||||||
|
$upload = \RaspAP\Uploader\Upload::factory('wg',$tmp_destdir);
|
||||||
|
$upload->set_max_file_size(64*KB);
|
||||||
|
$upload->set_allowed_mime_types(array('text/plain'));
|
||||||
|
$upload->file($file);
|
||||||
|
|
||||||
|
$validation = new validation;
|
||||||
|
$upload->callbacks($validation, array('check_name_length'));
|
||||||
|
$results = $upload->upload();
|
||||||
|
|
||||||
|
if (!empty($results['errors'])) {
|
||||||
|
throw new RuntimeException($results['errors'][0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Good file upload, do any post-processing
|
||||||
|
|
||||||
|
// Set iptables rules
|
||||||
|
|
||||||
|
// Move uploaded .conf from /tmp to destination
|
||||||
|
|
||||||
|
|
||||||
|
if ($return ==0) {
|
||||||
|
$status->addMessage('WireGuard configuration uploaded successfully', 'info');
|
||||||
|
} else {
|
||||||
|
$status->addMessage('Unable to save WireGuard configuration', 'danger');
|
||||||
|
}
|
||||||
|
return $status;
|
||||||
|
|
||||||
|
} catch (RuntimeException $e) {
|
||||||
|
$status->addMessage($e->getMessage(), 'danger');
|
||||||
|
return $status;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Validate user input, save wireguard configuration
|
* Validate user input, save wireguard configuration
|
||||||
*
|
*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user