mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
Allow users to unflag packages they flagged themselves
Sometimes, a user accidentally flags a package out-of-date. Allow users to unflag packages that they flagged themselves, thereby providing a way to undo these actions. Implements FS#46145. Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
This commit is contained in:
parent
e1a258bd83
commit
57db4814a4
5 changed files with 8 additions and 5 deletions
|
@ -150,6 +150,7 @@ function pkgbase_get_details($base_id) {
|
|||
$q.= "PackageBases.OutOfDateTS, PackageBases.SubmittedTS, ";
|
||||
$q.= "PackageBases.ModifiedTS, PackageBases.SubmitterUID, ";
|
||||
$q.= "PackageBases.MaintainerUID, PackageBases.PackagerUID, ";
|
||||
$q.= "PackageBases.FlaggerUID, ";
|
||||
$q.= "(SELECT COUNT(*) FROM PackageRequests ";
|
||||
$q.= " WHERE PackageRequests.PackageBaseID = PackageBases.ID ";
|
||||
$q.= " AND PackageRequests.Status = 0) AS RequestCount ";
|
||||
|
@ -370,7 +371,7 @@ function pkgbase_unflag($base_ids) {
|
|||
|
||||
$maintainers = array_merge(pkgbase_maintainer_uids($base_ids), pkgbase_get_comaintainer_uids($base_ids));
|
||||
if (!has_credential(CRED_PKGBASE_UNFLAG, $maintainers)) {
|
||||
$q.= "AND MaintainerUID = " . $uid;
|
||||
$q.= "AND (MaintainerUID = " . $uid . " OR FlaggerUID = " . $uid. ")";
|
||||
}
|
||||
|
||||
$result = $dbh->exec($q);
|
||||
|
|
|
@ -435,7 +435,7 @@ function pkg_get_details($id=0) {
|
|||
$q.= "PackageBases.Popularity, PackageBases.OutOfDateTS, ";
|
||||
$q.= "PackageBases.SubmittedTS, PackageBases.ModifiedTS, ";
|
||||
$q.= "PackageBases.SubmitterUID, PackageBases.MaintainerUID, ";
|
||||
$q.= "PackageBases.PackagerUID, ";
|
||||
$q.= "PackageBases.PackagerUID, PackageBases.FlaggerUID, ";
|
||||
$q.= "(SELECT COUNT(*) FROM PackageRequests ";
|
||||
$q.= " WHERE PackageRequests.PackageBaseID = Packages.PackageBaseID ";
|
||||
$q.= " AND PackageRequests.Status = 0) AS RequestCount ";
|
||||
|
|
|
@ -21,8 +21,9 @@ $packager = username_from_id($row["PackagerUID"]);
|
|||
if ($row["MaintainerUID"] !== NULL) {
|
||||
$maintainers = array_merge(array($row["MaintainerUID"]), pkgbase_get_comaintainer_uids(array($base_id)));
|
||||
} else {
|
||||
$maintainers = NULL;
|
||||
$maintainers = array();
|
||||
}
|
||||
$unflaggers = array_merge($maintainers, array($row["FlaggerUID"]));
|
||||
|
||||
$votes = $row['NumVotes'];
|
||||
$popularity = $row['Popularity'];
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<li><span class="flagged"><?php if ($row["OutOfDateTS"] !== NULL) { echo __('Flagged out-of-date')." (${out_of_date_time})"; } ?></span></li>
|
||||
<?php if ($row["OutOfDateTS"] === NULL): ?>
|
||||
<li><?= html_action_form($base_uri . 'flag/', "do_Flag", __('Flag package out-of-date')) ?></li>
|
||||
<?php elseif (($row["OutOfDateTS"] !== NULL) && has_credential(CRED_PKGBASE_UNFLAG, $maintainers)): ?>
|
||||
<?php elseif (($row["OutOfDateTS"] !== NULL) && has_credential(CRED_PKGBASE_UNFLAG, $unflaggers)): ?>
|
||||
<li><?= html_action_form($base_uri . 'unflag/', "do_UnFlag", __('Unflag package')) ?></li>
|
||||
<?php endif; ?>
|
||||
|
||||
|
|
|
@ -20,8 +20,9 @@ $packager = username_from_id($row["PackagerUID"]);
|
|||
if ($row["MaintainerUID"] !== NULL) {
|
||||
$maintainers = array_merge(array($row["MaintainerUID"]), pkgbase_get_comaintainer_uids(array($base_id)));
|
||||
} else {
|
||||
$maintainers = NULL;
|
||||
$maintainers = array();
|
||||
}
|
||||
$unflaggers = array_merge($maintainers, array($row["FlaggerUID"]));
|
||||
|
||||
$votes = $row['NumVotes'];
|
||||
$popularity = $row['Popularity'];
|
||||
|
|
Loading…
Add table
Reference in a new issue