[aur-dev] [PATCH v3] Move package disowning to a separate page

Lukas Fleischer lfleischer at archlinux.org
Fri May 22 19:16:31 UTC 2015


The disown link in the package actions box leads to a new page
(pkgdisown.php) that can be used to confirm package disowning.

Signed-off-by: Lukas Fleischer <lfleischer at archlinux.org>
---
Do not show a bogus message about transferring ownership when disowning
as a Trusted User or Developer.

 web/html/index.php     |  4 ++--
 web/html/pkgbase.php   |  9 +++++++--
 web/html/pkgdisown.php | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 64 insertions(+), 4 deletions(-)
 create mode 100644 web/html/pkgdisown.php

diff --git a/web/html/index.php b/web/html/index.php
index fad1d2f..0275d0a 100644
--- a/web/html/index.php
+++ b/web/html/index.php
@@ -45,8 +45,8 @@ if (!empty($tokens[1]) && '/' . $tokens[1] == get_pkg_route()) {
 				$_POST['do_Adopt'] = __('Adopt');
 				break;
 			case "disown":
-				$_POST['do_Disown'] = __('Disown');
-				break;
+				include('pkgdisown.php');
+				return;
 			case "vote":
 				$_POST['do_Vote'] = __('Vote');
 				break;
diff --git a/web/html/pkgbase.php b/web/html/pkgbase.php
index ef9b2c4..7c24b79 100644
--- a/web/html/pkgbase.php
+++ b/web/html/pkgbase.php
@@ -54,8 +54,13 @@ if (check_token()) {
 	} elseif (current_action("do_Adopt")) {
 		list($ret, $output) = pkgbase_adopt($ids, true, NULL);
 	} elseif (current_action("do_Disown")) {
-		$via = isset($_POST['via']) ? $_POST['via'] : NULL;
-		list($ret, $output) = pkgbase_adopt($ids, false, $via);
+		if (isset($_POST['confirm_Disown'])) {
+			$via = isset($_POST['via']) ? $_POST['via'] : NULL;
+			list($ret, $output) = pkgbase_adopt($ids, false, $via);
+		} else {
+			$output = __("The selected packages have not been disowned, check the confirmation checkbox.");
+			$ret = false;
+		}
 	} elseif (current_action("do_Vote")) {
 		list($ret, $output) = pkgbase_vote($ids, true);
 	} elseif (current_action("do_UnVote")) {
diff --git a/web/html/pkgdisown.php b/web/html/pkgdisown.php
new file mode 100644
index 0000000..cf7bb41
--- /dev/null
+++ b/web/html/pkgdisown.php
@@ -0,0 +1,55 @@
+<?php
+
+set_include_path(get_include_path() . PATH_SEPARATOR . '../lib');
+
+include_once("aur.inc.php");
+include_once("pkgfuncs.inc.php");
+
+set_lang();
+check_sid();
+
+html_header(__("Disown Package"));
+
+$maintainer_uids = array(pkgbase_maintainer_uid($base_id));
+$comaintainer_uids = pkgbase_get_comaintainers($base_id);
+
+if (has_credential(CRED_PKGBASE_DISOWN, $maintainer_uids)): ?>
+<div class="box">
+	<h2><?= __('Disown Package: %s', htmlspecialchars($pkgbase_name)) ?></h2>
+	<p>
+		<?= __('Use this form to disown the package base %s%s%s which includes the following packages: ',
+			'<strong>', htmlspecialchars($pkgbase_name), '</strong>'); ?>
+	</p>
+	<ul>
+		<?php foreach(pkgbase_get_pkgnames($base_id) as $pkgname): ?>
+		<li><?= htmlspecialchars($pkgname) ?></li>
+		<?php endforeach; ?>
+	</ul>
+	<p>
+		<?php if (count($comaintainer_uids) > 0 && !has_credential(CRED_PKGBASE_DISOWN)): ?>
+		<?= __('By selecting the checkbox, you confirm that you want to disown the package and transfer ownership to %s%s%s.',
+			'<strong>', $comaintainer_uids[0], '</strong>'); ?>
+		<?php else: ?>
+		<?= __('By selecting the checkbox, you confirm that you want to disown the package.') ?>
+		<?php endif; ?>
+	</p>
+	<form action="<?= get_uri('/pkgbase/'); ?>" 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']) ?>" />
+			<?php if (isset($_GET['via'])): ?>
+			<input type="hidden" name="via" value="<?= intval($_GET['via']) ?>" />
+			<?php endif; ?>
+			<p><input type="checkbox" name="confirm_Disown" value="1" />
+			<?= __("Confirm to disown the package") ?></p>
+			<p><input type="submit" class="button" name="do_Disown" value="<?= __("Disown") ?>" /></p>
+		</fieldset>
+	</form>
+</div>
+
+<?php else:
+	print __("Only Trusted Users and Developers can disown packages.");
+endif;
+
+html_footer(AURWEB_VERSION);
-- 
2.4.1


More information about the aur-dev mailing list