117 lines
No EOL
4.3 KiB
PHP
117 lines
No EOL
4.3 KiB
PHP
<?php
|
|
/**
|
|
* autobuild-web
|
|
* Copyright (C) 2024 rail5
|
|
* This is free software (GNU Affero GPL v3), and you are permitted to redistribute it under certain conditions
|
|
* Please see the LICENSE file for more information
|
|
*/
|
|
|
|
require_once "global.php";
|
|
|
|
if (isset($_POST["submitted"])) {
|
|
// Form submitted
|
|
if (!isset($_POST["packages"])
|
|
|| !isset($_POST["github-owner"])
|
|
|| !isset($_POST["github-email"])
|
|
|| !isset($_POST["forgejo-url"])
|
|
|| !isset($_POST["forgejo-owner"])) {
|
|
$error_params = array("error" => "form-incomplete");
|
|
redirect_and_die("settings.autobuild.php", $error_params);
|
|
}
|
|
|
|
$old_config = parse_config();
|
|
|
|
$new_config = array();
|
|
$new_config["packages"] = array();
|
|
$new_config["github"] = array();
|
|
$new_config["forgejo"] = array();
|
|
|
|
$package_list = array_filter(explode(PHP_EOL, $_POST["packages"]));
|
|
for ($i = 0; $i < count($package_list); $i++) {
|
|
$package_list[$i] = trim($package_list[$i]);
|
|
$package_list[$i] = filter_var($package_list[$i], FILTER_SANITIZE_URL);
|
|
$package_list[$i] = filter_var($package_list[$i], FILTER_SANITIZE_ADD_SLASHES);
|
|
}
|
|
|
|
$new_config["packages"] = $package_list;
|
|
unset($package_list);
|
|
|
|
$new_config["github"]["repo_owner"] = filter_var($_POST["github-owner"], FILTER_SANITIZE_ADD_SLASHES);
|
|
$new_config["github"]["email"] = filter_var($_POST["github-email"], FILTER_SANITIZE_EMAIL);
|
|
|
|
$new_config["forgejo"]["instance_url"] = filter_var(filter_var($_POST["forgejo-url"], FILTER_SANITIZE_URL), FILTER_SANITIZE_ADD_SLASHES);
|
|
$new_config["forgejo"]["repo_owner"] = filter_var($_POST["forgejo-owner"], FILTER_SANITIZE_ADD_SLASHES);
|
|
|
|
if ($_POST["github-token"] != "") {
|
|
$new_config["github"]["access_token"] = filter_var($_POST["github-token"], FILTER_SANITIZE_ADD_SLASHES);
|
|
} else {
|
|
$new_config["github"]["access_token"] = $old_config["github"]["access_token"];
|
|
}
|
|
|
|
if ($_POST["forgejo-token"] != "") {
|
|
$new_config["forgejo"]["access_token"] = filter_var($_POST["forgejo-token"], FILTER_SANITIZE_ADD_SLASHES);
|
|
} else {
|
|
$new_config["forgejo"]["access_token"] = $old_config["forgejo"]["access_token"];
|
|
}
|
|
|
|
update_config($new_config);
|
|
|
|
}
|
|
|
|
$config = parse_config();
|
|
|
|
display_header();
|
|
display_error_message();
|
|
?>
|
|
|
|
<main>
|
|
<div class="container">
|
|
<div class="content-wrapper">
|
|
<aside class="sidebar">
|
|
<?php
|
|
display_sidebar_actions();
|
|
display_sidebar_statistics();
|
|
?>
|
|
</aside>
|
|
<section class="main-content">
|
|
<form action="settings.autobuild.php" method="post">
|
|
<div class="card" id="packages">
|
|
<h2>Packages</h2>
|
|
Enter <b>Git URLs</b> to your source packages below (<b>one per line</b>)<br>
|
|
<textarea rows="10" style="width: 100%;" name="packages"><?php
|
|
foreach ($config["packages"]["package_urls"] as $url) {
|
|
echo "$url".PHP_EOL;
|
|
}
|
|
?></textarea>
|
|
</div>
|
|
|
|
<div class="card" id="github">
|
|
<h2>GitHub</h2>
|
|
<li><label for="github-owner">GitHub Username: </label><input type="text" name="github-owner" id="github-owner" value="<?php echo $config["github"]["repo_owner"]; ?>"></li>
|
|
<br>
|
|
<li><label for="github-email">GitHub Email: </label><input type="text" name="github-email" id="github-email" value="<?php echo $config["github"]["email"]; ?>"></li>
|
|
<br>
|
|
<li><label for="github-token">GitHub Access Token: </label><input type="password" name="github-token" id="github-token" placeholder="Leave blank for no change"></li>
|
|
</div>
|
|
|
|
<div class="card" id="forgejo">
|
|
<h2>Forgejo</h2>
|
|
<li><label for="forgejo-url">Forgejo Instance URL: </label><input type="text" name="forgejo-url" id="forgejo-url" value="<?php echo $config["forgejo"]["instance_url"]; ?>"></li>
|
|
<br>
|
|
<li><label for="forgejo-owner">Forgejo Username: </label><input type="text" name="forgejo-owner" id="forgejo-owner" value="<?php echo $config["forgejo"]["repo_owner"]; ?>"></li>
|
|
<br>
|
|
<li><label for="forgejo-token">Forgejo Access Token: </label><input type="password" name="forgejo-token" id="forgejo-token" placeholder="Leave blank for no change"></li>
|
|
</div>
|
|
|
|
<div class="card" id="submit">
|
|
<h2>Save Changes</h2>
|
|
<input type="hidden" name="submitted" value="true">
|
|
<button type="submit">Save Changes</button>
|
|
</div>
|
|
</form>
|
|
</section>
|
|
</div>
|
|
</div>
|
|
</main>
|
|
</body>
|
|
</html>
|