mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
Add a packager field to packages
Store the last packager in addition to storing the submitter and the maintainer of a package. This allows for checking who last updated a package, even if the package has been disowned. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
This commit is contained in:
parent
0e368510f4
commit
a93363ac08
6 changed files with 56 additions and 9 deletions
|
@ -31,16 +31,19 @@ CREATE TABLE PackageBases (
|
|||
ModifiedTS BIGINT UNSIGNED NOT NULL,
|
||||
SubmitterUID INTEGER UNSIGNED NULL DEFAULT NULL,
|
||||
MaintainerUID INTEGER UNSIGNED NULL DEFAULT NULL,
|
||||
PackagerUID INTEGER UNSIGNED NULL DEFAULT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
UNIQUE (Name),
|
||||
INDEX (CategoryID),
|
||||
INDEX (NumVotes),
|
||||
INDEX (SubmitterUID),
|
||||
INDEX (MaintainerUID),
|
||||
INDEX (PackagerUID),
|
||||
FOREIGN KEY (CategoryID) REFERENCES PackageCategories(ID) ON DELETE NO ACTION,
|
||||
-- deleting a user will cause packages to be orphaned, not deleted
|
||||
FOREIGN KEY (SubmitterUID) REFERENCES Users(ID) ON DELETE SET NULL,
|
||||
FOREIGN KEY (MaintainerUID) REFERENCES Users(ID) ON DELETE SET NULL
|
||||
FOREIGN KEY (MaintainerUID) REFERENCES Users(ID) ON DELETE SET NULL,
|
||||
FOREIGN KEY (PackagerUID) REFERENCES Users(ID) ON DELETE SET NULL
|
||||
) ENGINE = InnoDB;
|
||||
----
|
||||
|
||||
|
|
|
@ -104,16 +104,19 @@ CREATE TABLE PackageBases (
|
|||
ModifiedTS BIGINT UNSIGNED NOT NULL,
|
||||
SubmitterUID INTEGER UNSIGNED NULL DEFAULT NULL, -- who submitted it?
|
||||
MaintainerUID INTEGER UNSIGNED NULL DEFAULT NULL, -- User
|
||||
PackagerUID INTEGER UNSIGNED NULL DEFAULT NULL, -- Last packager
|
||||
PRIMARY KEY (ID),
|
||||
UNIQUE (Name),
|
||||
INDEX (CategoryID),
|
||||
INDEX (NumVotes),
|
||||
INDEX (SubmitterUID),
|
||||
INDEX (MaintainerUID),
|
||||
INDEX (PackagerUID),
|
||||
FOREIGN KEY (CategoryID) REFERENCES PackageCategories(ID) ON DELETE NO ACTION,
|
||||
-- deleting a user will cause packages to be orphaned, not deleted
|
||||
FOREIGN KEY (SubmitterUID) REFERENCES Users(ID) ON DELETE SET NULL,
|
||||
FOREIGN KEY (MaintainerUID) REFERENCES Users(ID) ON DELETE SET NULL
|
||||
FOREIGN KEY (MaintainerUID) REFERENCES Users(ID) ON DELETE SET NULL,
|
||||
FOREIGN KEY (PackagerUID) REFERENCES Users(ID) ON DELETE SET NULL
|
||||
) ENGINE = InnoDB;
|
||||
|
||||
|
||||
|
|
|
@ -182,7 +182,8 @@ function pkgbase_get_details($base_id) {
|
|||
$q.= "PackageBases.CategoryID, PackageBases.NumVotes, ";
|
||||
$q.= "PackageBases.OutOfDateTS, PackageBases.SubmittedTS, ";
|
||||
$q.= "PackageBases.ModifiedTS, PackageBases.SubmitterUID, ";
|
||||
$q.= "PackageBases.MaintainerUID, PackageCategories.Category ";
|
||||
$q.= "PackageBases.MaintainerUID, PackageBases.PackagerUID, ";
|
||||
$q.= "PackageCategories.Category ";
|
||||
$q.= "FROM PackageBases, PackageCategories ";
|
||||
$q.= "WHERE PackageBases.CategoryID = PackageCategories.ID ";
|
||||
$q.= "AND PackageBases.ID = " . intval($base_id);
|
||||
|
@ -917,9 +918,10 @@ function pkgbase_change_category($base_id, $atype) {
|
|||
function pkgbase_create($name, $category_id, $uid) {
|
||||
$dbh = DB::connect();
|
||||
$q = sprintf("INSERT INTO PackageBases (Name, CategoryID, " .
|
||||
"SubmittedTS, ModifiedTS, SubmitterUID, MaintainerUID) " .
|
||||
"VALUES (%s, %d, UNIX_TIMESTAMP(), UNIX_TIMESTAMP(), %d, %d)",
|
||||
$dbh->quote($name), $category_id, $uid, $uid);
|
||||
"SubmittedTS, ModifiedTS, SubmitterUID, MaintainerUID, " .
|
||||
"PackagerUID) VALUES (%s, %d, UNIX_TIMESTAMP(), " .
|
||||
"UNIX_TIMESTAMP(), %d, %d, %d)",
|
||||
$dbh->quote($name), $category_id, $uid, $uid, $uid);
|
||||
$dbh->exec($q);
|
||||
return $dbh->lastInsertId();
|
||||
}
|
||||
|
@ -937,8 +939,9 @@ function pkgbase_update($base_id, $name, $uid) {
|
|||
$dbh = DB::connect();
|
||||
$q = sprintf("UPDATE PackageBases SET " .
|
||||
"Name = %s, ModifiedTS = UNIX_TIMESTAMP(), " .
|
||||
"MaintainerUID = %d, OutOfDateTS = NULL WHERE ID = %d",
|
||||
$dbh->quote($name), $uid, $base_id);
|
||||
"MaintainerUID = %d, PackagerUID = %d, OutOfDateTS = NULL " .
|
||||
"WHERE ID = %d",
|
||||
$dbh->quote($name), $uid, $uid, $base_id);
|
||||
$dbh->exec($q);
|
||||
}
|
||||
|
||||
|
|
|
@ -400,7 +400,7 @@ function pkg_get_details($id=0) {
|
|||
$q.= "PackageBases.NumVotes, PackageBases.OutOfDateTS, ";
|
||||
$q.= "PackageBases.SubmittedTS, PackageBases.ModifiedTS, ";
|
||||
$q.= "PackageBases.SubmitterUID, PackageBases.MaintainerUID, ";
|
||||
$q.= "PackageCategories.Category ";
|
||||
$q.= "PackageBases.PackagerUID, PackageCategories.Category ";
|
||||
$q.= "FROM Packages, PackageBases, PackageCategories ";
|
||||
$q.= "WHERE PackageBases.ID = Packages.PackageBaseID ";
|
||||
$q.= "AND PackageBases.CategoryID = PackageCategories.ID ";
|
||||
|
|
|
@ -9,6 +9,7 @@ $catarr = pkgbase_categories();
|
|||
|
||||
$submitter = username_from_id($row["SubmitterUID"]);
|
||||
$maintainer = username_from_id($row["MaintainerUID"]);
|
||||
$packager = username_from_id($row["PackagerUID"]);
|
||||
|
||||
$votes = $row['NumVotes'];
|
||||
|
||||
|
@ -286,6 +287,24 @@ if ($row["MaintainerUID"]):
|
|||
<?php endif; ?>
|
||||
<?php else: ?>
|
||||
<td><?= __('None') ?></td>
|
||||
<?php endif; ?>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?= __('Last Packager') .': ' ?></th>
|
||||
<?php
|
||||
if ($row["PackagerUID"]):
|
||||
if ($SID):
|
||||
if (!$USE_VIRTUAL_URLS):
|
||||
?>
|
||||
<td><a href="<?= get_uri('/account/'); ?>?Action=AccountInfo&ID=<?= htmlspecialchars($row['PackagerUID'], ENT_QUOTES) ?>" title="<?= __('View account information for')?> <?= htmlspecialchars($packager) ?>"><?= htmlspecialchars($packager) ?></a></td>
|
||||
<?php else: ?>
|
||||
<td><a href="<?= get_uri('/account/') . htmlspecialchars($packager, ENT_QUOTES) ?>" title="<?= __('View account information for %s', htmlspecialchars($packager)) ?>"><?= htmlspecialchars($packager) ?></a></td>
|
||||
<?php endif; ?>
|
||||
<?php else: ?>
|
||||
<td><?= htmlspecialchars($packager) ?></td>
|
||||
<?php endif; ?>
|
||||
<?php else: ?>
|
||||
<td><?= __('None') ?></td>
|
||||
<?php endif; ?>
|
||||
</tr>
|
||||
<tr>
|
||||
|
|
|
@ -8,6 +8,7 @@ $catarr = pkgbase_categories();
|
|||
|
||||
$submitter = username_from_id($row["SubmitterUID"]);
|
||||
$maintainer = username_from_id($row["MaintainerUID"]);
|
||||
$packager = username_from_id($row["PackagerUID"]);
|
||||
|
||||
$votes = $row['NumVotes'];
|
||||
|
||||
|
@ -169,6 +170,24 @@ if ($row["MaintainerUID"]):
|
|||
<?php endif; ?>
|
||||
<?php else: ?>
|
||||
<td><?= __('None') ?></td>
|
||||
<?php endif; ?>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?= __('Last Packager') .': ' ?></th>
|
||||
<?php
|
||||
if ($row["PackagerUID"]):
|
||||
if ($SID):
|
||||
if (!$USE_VIRTUAL_URLS):
|
||||
?>
|
||||
<td><a href="<?= get_uri('/account/'); ?>?Action=AccountInfo&ID=<?= htmlspecialchars($row['PackagerUID'], ENT_QUOTES) ?>" title="<?= __('View account information for')?> <?= htmlspecialchars($packager) ?>"><?= htmlspecialchars($packager) ?></a></td>
|
||||
<?php else: ?>
|
||||
<td><a href="<?= get_uri('/account/') . htmlspecialchars($packager, ENT_QUOTES) ?>" title="<?= __('View account information for %s', htmlspecialchars($packager)) ?>"><?= htmlspecialchars($packager) ?></a></td>
|
||||
<?php endif; ?>
|
||||
<?php else: ?>
|
||||
<td><?= htmlspecialchars($packager) ?></td>
|
||||
<?php endif; ?>
|
||||
<?php else: ?>
|
||||
<td><?= __('None') ?></td>
|
||||
<?php endif; ?>
|
||||
</tr>
|
||||
<tr>
|
||||
|
|
Loading…
Add table
Reference in a new issue