[aur-dev] [PATCH 2/2] Do not redirect when showing errors during flagging

Lukas Fleischer lfleischer at archlinux.org
Thu Oct 22 05:18:31 UTC 2015


Fixes FS#46545.

Signed-off-by: Lukas Fleischer <lfleischer at archlinux.org>
---
 web/html/pkgflag.php | 40 ++++++++++++++++++++++++++++++++++++++--
 1 file changed, 38 insertions(+), 2 deletions(-)

diff --git a/web/html/pkgflag.php b/web/html/pkgflag.php
index b1ca03b..e6e7c64 100644
--- a/web/html/pkgflag.php
+++ b/web/html/pkgflag.php
@@ -8,6 +8,37 @@ include_once("pkgfuncs.inc.php");
 set_lang();
 check_sid();
 
+/* Grab the list of package base IDs to be operated on. */
+$ids = array();
+if (isset($_POST['IDs'])) {
+	foreach ($_POST['IDs'] as $id => $i) {
+		$id = intval($id);
+		if ($id > 0) {
+			$ids[] = $id;
+		}
+	}
+}
+
+/* Perform package base actions. */
+$ret = false;
+$output = "";
+if (check_token()) {
+	if (current_action("do_Flag")) {
+		list($ret, $output) = pkgbase_flag($ids, $_POST['comments']);
+	}
+
+	if ($ret) {
+		header('Location: ' . get_pkgbase_uri($pkgbase_name) . $fragment);
+		exit();
+	}
+}
+
+/* Get default comment. */
+$comment = '';
+if (isset($_POST['comments'])) {
+	$comment = $_POST['comments'];
+}
+
 html_header(__("Flag Package Out-Of-Date"));
 
 if (has_credential(CRED_PKGBASE_FLAG)): ?>
@@ -27,14 +58,19 @@ if (has_credential(CRED_PKGBASE_FLAG)): ?>
 			'<strong>', '</strong>'); ?>
 		<?= __('Enter details on why the package is out-of-date below, preferably including links to the release announcement or the new release tarball.'); ?>
 	</p>
-	<form action="<?= get_pkgbase_uri($pkgbase_name); ?>" method="post">
+
+	<?php if ($output && !$ret): ?>
+	<ul class="errorlist"><li><?= htmlspecialchars($output) ?></li></ul>
+	<?php endif; ?>
+
+	<form action="<?= get_pkgbase_uri($pkgbase_name); ?>flag/" method="post">
 		<fieldset>
 			<input type="hidden" name="IDs[<?= $base_id ?>]" value="1" />
 			<input type="hidden" name="ID" value="<?= $base_id ?>" />
 			<input type="hidden" name="token" value="<?= htmlspecialchars($_COOKIE['AURSID']) ?>" />
 			<p>
 				<label for="id_comments"><?= __("Comments") ?>:</label>
-				<textarea name="comments" id="id_comments" rows="5" cols="50"></textarea>
+				<textarea name="comments" id="id_comments" rows="5" cols="50"><?= htmlspecialchars($comment) ?></textarea>
 			</p>
 			<p><input type="submit" class="button" name="do_Flag" value="<?= __("Flag") ?>" /></p>
 		</fieldset>
-- 
2.6.1


More information about the aur-dev mailing list