diff options
-rw-r--r-- | web/html/index.php | 4 | ||||
-rw-r--r-- | web/html/pkgbase.php | 9 | ||||
-rw-r--r-- | web/html/pkgdisown.php | 55 |
3 files changed, 64 insertions, 4 deletions
diff --git a/web/html/index.php b/web/html/index.php index fad1d2f3..0275d0af 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 ef9b2c4d..7c24b792 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 00000000..cf7bb41e --- /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); |