diff options
Diffstat (limited to 'web/lib')
-rw-r--r-- | web/lib/pkgfuncs.inc | 66 |
1 files changed, 8 insertions, 58 deletions
diff --git a/web/lib/pkgfuncs.inc b/web/lib/pkgfuncs.inc index a0cd269..20e3880 100644 --- a/web/lib/pkgfuncs.inc +++ b/web/lib/pkgfuncs.inc @@ -700,71 +700,21 @@ function pkg_flag ($atype, $ids, $action = True) { */ function pkg_delete ($atype, $ids) { if (!$atype) { - return __("You must be logged in before you can disown packages."); + return __("You must be logged in before you can delete packages."); } - if (empty($ids)) { - return __("You did not select any packages to delete."); - } - - # Delete the packages in $ids array (but only if they are Unsupported) - # - $dbh = db_connect(); - - # Delete the packages in $ids array - # - $first = 1; - foreach ($ids as $pid) { - if ($first) { - $first = 0; - $delete = $pid; - } else { - $delete .= ", ".$pid; - } - } - - $field = "MaintainerUID"; - - # Only grab Unsupported packages that "we" own or are not owned at all - $ids_to_delete = array(); - $q = "SELECT Packages.ID FROM Packages "; - $q.= "WHERE Packages.ID IN (" . $delete . ") "; - # If they're a TU or dev, can delete - if ($atype == "Trusted User" || $atype == "Developer") { - $result = db_query($q, $dbh); + if ($atype != "Trusted User" && $atype != "Developer") { + return __("You do have permission to delete packages."); } - if ($result != Null && mysql_num_rows($result) > 0) { - while ($row = mysql_fetch_assoc($result)) { - $ids_to_delete[] = $row['ID']; - } - } - - if (empty($ids_to_delete)) { - return __("None of the selected packages could be deleted."); + if (empty($ids)) { + return __("You did not select any packages to delete."); } - # These are the packages that are safe to delete - foreach ($ids_to_delete as $id) { - $q = "DELETE FROM PackageVotes WHERE PackageID = " . $id; - $result = db_query($q, $dbh); - - $q = "DELETE FROM PackageDepends WHERE PackageID = " . $id; - $result = db_query($q, $dbh); - - $q = "DELETE FROM PackageSources WHERE PackageID = " . $id; - $result = db_query($q, $dbh); - - $q = "DELETE FROM PackageComments WHERE PackageID = " . $id; - $result = db_query($q, $dbh); - - $q = "DELETE FROM Packages WHERE ID = " . $id; - $result = db_query($q, $dbh); - - $q = "DELETE FROM CommentNotify WHERE PkgID = " . $id; - $result = db_query($q, $dbh); - } + $dbh = db_connect(); + $q = "DELETE FROM Packages WHERE ID IN (" . implode(",", $ids) . ")"; + $result = db_query($q, $dbh); return __("The selected packages have been deleted."); } |