mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
Automatically adopt when updating an orphan package (fixes FS#22992).
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
This commit is contained in:
parent
bc207d25cd
commit
31b0b68b47
2 changed files with 8 additions and 6 deletions
|
@ -255,15 +255,14 @@ if ($_COOKIE["AURSID"]):
|
||||||
|
|
||||||
$dbh = db_connect();
|
$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']) . "'";
|
$q = "SELECT * FROM Packages WHERE Name = '" . mysql_real_escape_string($new_pkgbuild['pkgname']) . "'";
|
||||||
$result = db_query($q, $dbh);
|
$result = db_query($q, $dbh);
|
||||||
$pdata = mysql_fetch_assoc($result);
|
$pdata = mysql_fetch_assoc($result);
|
||||||
|
|
||||||
if ($pdata) {
|
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
|
# Flush out old data that will be replaced with new data
|
||||||
$q = "DELETE FROM PackageDepends WHERE PackageID = " . $pdata["ID"];
|
$q = "DELETE FROM PackageDepends WHERE PackageID = " . $pdata["ID"];
|
||||||
|
@ -291,13 +290,14 @@ if ($_COOKIE["AURSID"]):
|
||||||
}
|
}
|
||||||
|
|
||||||
# Update package data
|
# 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['pkgname']),
|
||||||
mysql_real_escape_string($new_pkgbuild['pkgver']),
|
mysql_real_escape_string($new_pkgbuild['pkgver']),
|
||||||
mysql_real_escape_string($new_pkgbuild['pkgrel']),
|
mysql_real_escape_string($new_pkgbuild['pkgrel']),
|
||||||
mysql_real_escape_string($new_pkgbuild['license']),
|
mysql_real_escape_string($new_pkgbuild['license']),
|
||||||
mysql_real_escape_string($new_pkgbuild['pkgdesc']),
|
mysql_real_escape_string($new_pkgbuild['pkgdesc']),
|
||||||
mysql_real_escape_string($new_pkgbuild['url']),
|
mysql_real_escape_string($new_pkgbuild['url']),
|
||||||
|
uid_from_sid($_COOKIE["AURSID"]),
|
||||||
$pdata["ID"]);
|
$pdata["ID"]);
|
||||||
|
|
||||||
db_query($q, $dbh);
|
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']);
|
header('Location: packages.php?ID=' . $pdata['ID']);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -339,7 +339,7 @@ function can_submit_pkg($name="", $sid="") {
|
||||||
if ($row[1] == "1") { return 1; }
|
if ($row[1] == "1") { return 1; }
|
||||||
$my_uid = uid_from_sid($sid);
|
$my_uid = uid_from_sid($sid);
|
||||||
|
|
||||||
if ($row[0] == $my_uid) {
|
if (!$row[0] || $row[0] == $my_uid) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue