This lets us have a better paper-trail over what happens in the AUR.
Signed-off-by: Johannes Löthberg <johannes(a)kyriasis.com>
---
web/html/pkgbase.php | 23 +++++++++++++----------
web/lib/pkgreqfuncs.inc.php | 14 +++++++-------
2 files changed, 20 insertions(+), 17 deletions(-)
diff --git a/web/html/pkgbase.php b/web/html/pkgbase.php
index 46ad77e..8efa51e 100644
--- a/web/html/pkgbase.php
+++ b/web/html/pkgbase.php
@@ -70,12 +70,10 @@ if (check_token()) {
list($ret, $output) = pkgbase_vote($ids, false);
} elseif (current_action("do_Delete")) {
if (isset($_POST['confirm'])) {
- if (!isset($_POST['merge_Into']) || empty($_POST['merge_Into'])) {
- list($ret, $output) = pkgbase_delete($ids, NULL, $via);
- unset($_GET['ID']);
- unset($base_id);
- }
- else {
+ $type = "deletion";
+ $merge_base_id = NULL;
+ if (isset($_POST['merge_Into']) && !empty($_POST['merge_Into'])) {
+ $type = "merge";
$merge_base_id = pkgbase_from_name($_POST['merge_Into']);
if (!$merge_base_id) {
$output = __("Cannot find package to merge votes and comments into.");
@@ -83,12 +81,17 @@ if (check_token()) {
} elseif (in_array($merge_base_id, $ids)) {
$output = __("Cannot merge a package base with itself.");
$ret = false;
- } else {
+ }
+ }
+ if ($type == "deletion" || ($type == "merge" && $merge_base_id)) {
+ list($ret, $output, $request_id) = pkgreq_file($ids, $type, $_POST['merge_Into'],
+ "Trusted User-requested auto-accepted ".$type.".");
+ if ($ret) {
list($ret, $output) = pkgbase_delete($ids, $merge_base_id, $via);
- unset($_GET['ID']);
- unset($base_id);
}
}
+ unset($_GET['ID']);
+ unset($base_id);
}
else {
$output = __("The selected packages have not been deleted, check the confirmation checkbox.");
@@ -112,7 +115,7 @@ if (check_token()) {
} elseif (current_action("do_SetKeywords")) {
list($ret, $output) = pkgbase_set_keywords($base_id, preg_split("/[\s,;]+/", $_POST['keywords'], -1, PREG_SPLIT_NO_EMPTY));
} elseif (current_action("do_FileRequest")) {
- list($ret, $output) = pkgreq_file($ids, $_POST['type'], $_POST['merge_into'], $_POST['comments']);
+ list($ret, $output, $_reqid) = pkgreq_file($ids, $_POST['type'], $_POST['merge_into'], $_POST['comments']);
} elseif (current_action("do_CloseRequest")) {
list($ret, $output) = pkgreq_close($_POST['reqid'], $_POST['reason'], $_POST['comments']);
} elseif (current_action("do_EditComaintainers")) {
diff --git a/web/lib/pkgreqfuncs.inc.php b/web/lib/pkgreqfuncs.inc.php
index 774ebe7..a15f101 100644
--- a/web/lib/pkgreqfuncs.inc.php
+++ b/web/lib/pkgreqfuncs.inc.php
@@ -124,19 +124,19 @@ function pkgreq_get_creator_email($id) {
*/
function pkgreq_file($ids, $type, $merge_into, $comments) {
if (!has_credential(CRED_PKGREQ_FILE)) {
- return array(false, __("You must be logged in to file package requests."));
+ return array(false, __("You must be logged in to file package requests."), NULL);
}
if (!empty($merge_into) && !preg_match("/^[a-z0-9][a-z0-9\.+_-]*$/D", $merge_into)) {
- return array(false, __("Invalid name: only lowercase letters are allowed."));
+ return array(false, __("Invalid name: only lowercase letters are allowed."), NULL);
}
if (!empty($merge_into) && !pkgbase_from_name($merge_into)) {
- return array(false, __("Cannot find package to merge votes and comments into."));
+ return array(false, __("Cannot find package to merge votes and comments into."), NULL);
}
if (empty($comments)) {
- return array(false, __("The comment field must not be empty."));
+ return array(false, __("The comment field must not be empty."), NULL);
}
$dbh = DB::connect();
@@ -147,7 +147,7 @@ function pkgreq_file($ids, $type, $merge_into, $comments) {
$pkgbase_name = pkgbase_name_from_id($base_id);
if ($merge_into == $pkgbase_name) {
- return array(false, __("Cannot merge a package base with itself."));
+ return array(false, __("Cannot merge a package base with itself."), NULL);
}
$q = "SELECT ID FROM RequestTypes WHERE Name = " . $dbh->quote($type);
@@ -155,7 +155,7 @@ function pkgreq_file($ids, $type, $merge_into, $comments) {
if ($row = $result->fetch(PDO::FETCH_ASSOC)) {
$type_id = $row['ID'];
} else {
- return array(false, __("Invalid request type."));
+ return array(false, __("Invalid request type."), NULL);
}
$q = "INSERT INTO PackageRequests ";
@@ -208,7 +208,7 @@ function pkgreq_file($ids, $type, $merge_into, $comments) {
pkgbase_delete(array($base_id), NULL, NULL, true);
}
- return array(true, __("Added request successfully."));
+ return array(true, __("Added request successfully."), $request_id);
}
/**
--
2.20.1