diff options
Diffstat (limited to 'web')
-rw-r--r-- | web/html/index.php | 10 | ||||
-rw-r--r-- | web/html/packages.php | 4 | ||||
-rw-r--r-- | web/lib/pkgfuncs.inc.php | 74 |
3 files changed, 49 insertions, 39 deletions
diff --git a/web/html/index.php b/web/html/index.php index 3b46ab9e..a197d0bc 100644 --- a/web/html/index.php +++ b/web/html/index.php @@ -22,12 +22,6 @@ if (!empty($tokens[1]) && '/' . $tokens[1] == get_pkg_route()) { } if (!empty($tokens[3])) { - if ($tokens[3] == 'voters') { - $_GET['ID'] = pkgid_from_name($tokens[2]); - include('voters.php'); - return; - } - /* TODO: Remove support for legacy URIs and move these * actions to separate modules. */ switch ($tokens[3]) { @@ -55,6 +49,10 @@ if (!empty($tokens[1]) && '/' . $tokens[1] == get_pkg_route()) { case "merge": include('pkgmerge.php'); return; + case "voters": + $_GET['ID'] = pkgid_from_name($tokens[2]); + include('voters.php'); + return; default: header("HTTP/1.0 404 Not Found"); include "./404.php"; diff --git a/web/html/packages.php b/web/html/packages.php index 094c221d..61825501 100644 --- a/web/html/packages.php +++ b/web/html/packages.php @@ -51,9 +51,9 @@ if (isset($_POST['IDs'])) { $output = ""; if (check_token()) { if (current_action("do_Flag")) { - $output = pkg_flag($atype, $ids, true); + $output = pkg_flag($atype, $ids); } elseif (current_action("do_UnFlag")) { - $output = pkg_flag($atype, $ids, False); + $output = pkg_unflag($atype, $ids); } elseif (current_action("do_Adopt")) { $output = pkg_adopt($atype, $ids, true); } elseif (current_action("do_Disown")) { diff --git a/web/lib/pkgfuncs.inc.php b/web/lib/pkgfuncs.inc.php index cfdd9a79..c00c33db 100644 --- a/web/lib/pkgfuncs.inc.php +++ b/web/lib/pkgfuncs.inc.php @@ -772,33 +772,24 @@ function sanitize_ids($ids) { } /** - * Flag and un-flag packages out-of-date + * Flag package(s) as out-of-date * * @global string $AUR_LOCATION The AUR's URL used for notification e-mails * @param string $atype Account type, output of account_from_sid * @param array $ids Array of package IDs to flag/unflag - * @param bool $action true flags out-of-date, false un-flags. Flags by default * * @return string Translated success or error messages */ -function pkg_flag ($atype, $ids, $action=true, $dbh=NULL) { +function pkg_flag($atype, $ids, $dbh=NULL) { global $AUR_LOCATION; if (!$atype) { - if ($action) { - return __("You must be logged in before you can flag packages."); - } else { - return __("You must be logged in before you can unflag packages."); - } + return __("You must be logged in before you can flag packages."); } $ids = sanitize_ids($ids); if (empty($ids)) { - if ($action) { - return __("You did not select any packages to flag."); - } else { - return __("You did not select any packages to unflag."); - } + return __("You did not select any packages to flag."); } if(!$dbh) { @@ -806,25 +797,13 @@ function pkg_flag ($atype, $ids, $action=true, $dbh=NULL) { } $q = "UPDATE Packages SET"; - if ($action) { - $q.= " OutOfDateTS = UNIX_TIMESTAMP()"; - } - else { - $q.= " OutOfDateTS = NULL"; - } + $q.= " OutOfDateTS = UNIX_TIMESTAMP()"; $q.= " WHERE ID IN (" . implode(",", $ids) . ")"; - - if (!$action && ($atype != "Trusted User" && $atype != "Developer")) { - $q.= "AND MaintainerUID = " . uid_from_sid($_COOKIE["AURSID"], $dbh); - } - - if ($action) { - $q.= " AND OutOfDateTS IS NULL"; - } + $q.= " AND OutOfDateTS IS NULL"; $affected_pkgs = $dbh->exec($q); - if ($action && $affected_pkgs > 0) { + if ($affected_pkgs > 0) { # Notify of flagging by email $f_name = username_from_sid($_COOKIE['AURSID'], $dbh); $f_email = email_from_sid($_COOKIE['AURSID'], $dbh); @@ -846,9 +825,42 @@ function pkg_flag ($atype, $ids, $action=true, $dbh=NULL) { } } - if ($action) { - return __("The selected packages have been flagged out-of-date."); - } else { + return __("The selected packages have been flagged out-of-date."); +} + +/** + * Unflag package(s) as out-of-date + * + * @param string $atype Account type, output of account_from_sid + * @param array $ids Array of package IDs to flag/unflag + * + * @return string Translated success or error messages + */ +function pkg_unflag($atype, $ids, $dbh=NULL) { + if (!$atype) { + return __("You must be logged in before you can unflag packages."); + } + + $ids = sanitize_ids($ids); + if (empty($ids)) { + return __("You did not select any packages to unflag."); + } + + if(!$dbh) { + $dbh = db_connect(); + } + + $q = "UPDATE Packages SET "; + $q.= "OutOfDateTS = NULL "; + $q.= "WHERE ID IN (" . implode(",", $ids) . ") "; + + if ($atype != "Trusted User" && $atype != "Developer") { + $q.= "AND MaintainerUID = " . uid_from_sid($_COOKIE["AURSID"], $dbh); + } + + $result = $dbh->exec($q); + + if ($result) { return __("The selected packages have been unflagged."); } } |