Automatically adopt when updating an orphan package (fixes FS#22992).

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
This commit is contained in:
Lukas Fleischer 2011-02-21 17:56:12 +01:00
parent bc207d25cd
commit 31b0b68b47
2 changed files with 8 additions and 6 deletions

View file

@ -255,15 +255,14 @@ if ($_COOKIE["AURSID"]):
$dbh = db_connect();
# This is an overwrite of an existing package, the database ID
# needs to be preserved so that any votes are retained. However,
# PackageDepends and PackageSources can be purged.
$q = "SELECT * FROM Packages WHERE Name = '" . mysql_real_escape_string($new_pkgbuild['pkgname']) . "'";
$result = db_query($q, $dbh);
$pdata = mysql_fetch_assoc($result);
if ($pdata) {
# This is an overwrite of an existing package, the database ID
# needs to be preserved so that any votes are retained. However,
# PackageDepends and PackageSources can be purged.
# Flush out old data that will be replaced with new data
$q = "DELETE FROM PackageDepends WHERE PackageID = " . $pdata["ID"];
@ -291,13 +290,14 @@ if ($_COOKIE["AURSID"]):
}
# Update package data
$q = sprintf("UPDATE Packages SET ModifiedTS = UNIX_TIMESTAMP(), Name = '%s', Version = '%s-%s', License = '%s', Description = '%s', URL = '%s', OutOfDateTS = NULL WHERE ID = %d",
$q = sprintf("UPDATE Packages SET ModifiedTS = UNIX_TIMESTAMP(), Name = '%s', Version = '%s-%s', License = '%s', Description = '%s', URL = '%s', OutOfDateTS = NULL, MaintainerUID = '%d' WHERE ID = %d",
mysql_real_escape_string($new_pkgbuild['pkgname']),
mysql_real_escape_string($new_pkgbuild['pkgver']),
mysql_real_escape_string($new_pkgbuild['pkgrel']),
mysql_real_escape_string($new_pkgbuild['license']),
mysql_real_escape_string($new_pkgbuild['pkgdesc']),
mysql_real_escape_string($new_pkgbuild['url']),
uid_from_sid($_COOKIE["AURSID"]),
$pdata["ID"]);
db_query($q, $dbh);
@ -329,6 +329,8 @@ if ($_COOKIE["AURSID"]):
}
}
if (!$pdata["MaintainerUID"]) pkg_notify(account_from_sid($_COOKIE["AURSID"]), array($pdata["ID"]));
header('Location: packages.php?ID=' . $pdata['ID']);
} else {

View file

@ -339,7 +339,7 @@ function can_submit_pkg($name="", $sid="") {
if ($row[1] == "1") { return 1; }
$my_uid = uid_from_sid($sid);
if ($row[0] == $my_uid) {
if (!$row[0] || $row[0] == $my_uid) {
return 1;
}