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,
|
ModifiedTS BIGINT UNSIGNED NOT NULL,
|
||||||
SubmitterUID INTEGER UNSIGNED NULL DEFAULT NULL,
|
SubmitterUID INTEGER UNSIGNED NULL DEFAULT NULL,
|
||||||
MaintainerUID INTEGER UNSIGNED NULL DEFAULT NULL,
|
MaintainerUID INTEGER UNSIGNED NULL DEFAULT NULL,
|
||||||
|
PackagerUID INTEGER UNSIGNED NULL DEFAULT NULL,
|
||||||
PRIMARY KEY (ID),
|
PRIMARY KEY (ID),
|
||||||
UNIQUE (Name),
|
UNIQUE (Name),
|
||||||
INDEX (CategoryID),
|
INDEX (CategoryID),
|
||||||
INDEX (NumVotes),
|
INDEX (NumVotes),
|
||||||
INDEX (SubmitterUID),
|
INDEX (SubmitterUID),
|
||||||
INDEX (MaintainerUID),
|
INDEX (MaintainerUID),
|
||||||
|
INDEX (PackagerUID),
|
||||||
FOREIGN KEY (CategoryID) REFERENCES PackageCategories(ID) ON DELETE NO ACTION,
|
FOREIGN KEY (CategoryID) REFERENCES PackageCategories(ID) ON DELETE NO ACTION,
|
||||||
-- deleting a user will cause packages to be orphaned, not deleted
|
-- deleting a user will cause packages to be orphaned, not deleted
|
||||||
FOREIGN KEY (SubmitterUID) REFERENCES Users(ID) ON DELETE SET NULL,
|
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;
|
) ENGINE = InnoDB;
|
||||||
----
|
----
|
||||||
|
|
||||||
|
|
|
@ -104,16 +104,19 @@ CREATE TABLE PackageBases (
|
||||||
ModifiedTS BIGINT UNSIGNED NOT NULL,
|
ModifiedTS BIGINT UNSIGNED NOT NULL,
|
||||||
SubmitterUID INTEGER UNSIGNED NULL DEFAULT NULL, -- who submitted it?
|
SubmitterUID INTEGER UNSIGNED NULL DEFAULT NULL, -- who submitted it?
|
||||||
MaintainerUID INTEGER UNSIGNED NULL DEFAULT NULL, -- User
|
MaintainerUID INTEGER UNSIGNED NULL DEFAULT NULL, -- User
|
||||||
|
PackagerUID INTEGER UNSIGNED NULL DEFAULT NULL, -- Last packager
|
||||||
PRIMARY KEY (ID),
|
PRIMARY KEY (ID),
|
||||||
UNIQUE (Name),
|
UNIQUE (Name),
|
||||||
INDEX (CategoryID),
|
INDEX (CategoryID),
|
||||||
INDEX (NumVotes),
|
INDEX (NumVotes),
|
||||||
INDEX (SubmitterUID),
|
INDEX (SubmitterUID),
|
||||||
INDEX (MaintainerUID),
|
INDEX (MaintainerUID),
|
||||||
|
INDEX (PackagerUID),
|
||||||
FOREIGN KEY (CategoryID) REFERENCES PackageCategories(ID) ON DELETE NO ACTION,
|
FOREIGN KEY (CategoryID) REFERENCES PackageCategories(ID) ON DELETE NO ACTION,
|
||||||
-- deleting a user will cause packages to be orphaned, not deleted
|
-- deleting a user will cause packages to be orphaned, not deleted
|
||||||
FOREIGN KEY (SubmitterUID) REFERENCES Users(ID) ON DELETE SET NULL,
|
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;
|
) ENGINE = InnoDB;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -182,7 +182,8 @@ function pkgbase_get_details($base_id) {
|
||||||
$q.= "PackageBases.CategoryID, PackageBases.NumVotes, ";
|
$q.= "PackageBases.CategoryID, PackageBases.NumVotes, ";
|
||||||
$q.= "PackageBases.OutOfDateTS, PackageBases.SubmittedTS, ";
|
$q.= "PackageBases.OutOfDateTS, PackageBases.SubmittedTS, ";
|
||||||
$q.= "PackageBases.ModifiedTS, PackageBases.SubmitterUID, ";
|
$q.= "PackageBases.ModifiedTS, PackageBases.SubmitterUID, ";
|
||||||
$q.= "PackageBases.MaintainerUID, PackageCategories.Category ";
|
$q.= "PackageBases.MaintainerUID, PackageBases.PackagerUID, ";
|
||||||
|
$q.= "PackageCategories.Category ";
|
||||||
$q.= "FROM PackageBases, PackageCategories ";
|
$q.= "FROM PackageBases, PackageCategories ";
|
||||||
$q.= "WHERE PackageBases.CategoryID = PackageCategories.ID ";
|
$q.= "WHERE PackageBases.CategoryID = PackageCategories.ID ";
|
||||||
$q.= "AND PackageBases.ID = " . intval($base_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) {
|
function pkgbase_create($name, $category_id, $uid) {
|
||||||
$dbh = DB::connect();
|
$dbh = DB::connect();
|
||||||
$q = sprintf("INSERT INTO PackageBases (Name, CategoryID, " .
|
$q = sprintf("INSERT INTO PackageBases (Name, CategoryID, " .
|
||||||
"SubmittedTS, ModifiedTS, SubmitterUID, MaintainerUID) " .
|
"SubmittedTS, ModifiedTS, SubmitterUID, MaintainerUID, " .
|
||||||
"VALUES (%s, %d, UNIX_TIMESTAMP(), UNIX_TIMESTAMP(), %d, %d)",
|
"PackagerUID) VALUES (%s, %d, UNIX_TIMESTAMP(), " .
|
||||||
$dbh->quote($name), $category_id, $uid, $uid);
|
"UNIX_TIMESTAMP(), %d, %d, %d)",
|
||||||
|
$dbh->quote($name), $category_id, $uid, $uid, $uid);
|
||||||
$dbh->exec($q);
|
$dbh->exec($q);
|
||||||
return $dbh->lastInsertId();
|
return $dbh->lastInsertId();
|
||||||
}
|
}
|
||||||
|
@ -937,8 +939,9 @@ function pkgbase_update($base_id, $name, $uid) {
|
||||||
$dbh = DB::connect();
|
$dbh = DB::connect();
|
||||||
$q = sprintf("UPDATE PackageBases SET " .
|
$q = sprintf("UPDATE PackageBases SET " .
|
||||||
"Name = %s, ModifiedTS = UNIX_TIMESTAMP(), " .
|
"Name = %s, ModifiedTS = UNIX_TIMESTAMP(), " .
|
||||||
"MaintainerUID = %d, OutOfDateTS = NULL WHERE ID = %d",
|
"MaintainerUID = %d, PackagerUID = %d, OutOfDateTS = NULL " .
|
||||||
$dbh->quote($name), $uid, $base_id);
|
"WHERE ID = %d",
|
||||||
|
$dbh->quote($name), $uid, $uid, $base_id);
|
||||||
$dbh->exec($q);
|
$dbh->exec($q);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -400,7 +400,7 @@ function pkg_get_details($id=0) {
|
||||||
$q.= "PackageBases.NumVotes, PackageBases.OutOfDateTS, ";
|
$q.= "PackageBases.NumVotes, PackageBases.OutOfDateTS, ";
|
||||||
$q.= "PackageBases.SubmittedTS, PackageBases.ModifiedTS, ";
|
$q.= "PackageBases.SubmittedTS, PackageBases.ModifiedTS, ";
|
||||||
$q.= "PackageBases.SubmitterUID, PackageBases.MaintainerUID, ";
|
$q.= "PackageBases.SubmitterUID, PackageBases.MaintainerUID, ";
|
||||||
$q.= "PackageCategories.Category ";
|
$q.= "PackageBases.PackagerUID, PackageCategories.Category ";
|
||||||
$q.= "FROM Packages, PackageBases, PackageCategories ";
|
$q.= "FROM Packages, PackageBases, PackageCategories ";
|
||||||
$q.= "WHERE PackageBases.ID = Packages.PackageBaseID ";
|
$q.= "WHERE PackageBases.ID = Packages.PackageBaseID ";
|
||||||
$q.= "AND PackageBases.CategoryID = PackageCategories.ID ";
|
$q.= "AND PackageBases.CategoryID = PackageCategories.ID ";
|
||||||
|
|
|
@ -9,6 +9,7 @@ $catarr = pkgbase_categories();
|
||||||
|
|
||||||
$submitter = username_from_id($row["SubmitterUID"]);
|
$submitter = username_from_id($row["SubmitterUID"]);
|
||||||
$maintainer = username_from_id($row["MaintainerUID"]);
|
$maintainer = username_from_id($row["MaintainerUID"]);
|
||||||
|
$packager = username_from_id($row["PackagerUID"]);
|
||||||
|
|
||||||
$votes = $row['NumVotes'];
|
$votes = $row['NumVotes'];
|
||||||
|
|
||||||
|
@ -286,6 +287,24 @@ if ($row["MaintainerUID"]):
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<td><?= __('None') ?></td>
|
<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; ?>
|
<?php endif; ?>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
@ -8,6 +8,7 @@ $catarr = pkgbase_categories();
|
||||||
|
|
||||||
$submitter = username_from_id($row["SubmitterUID"]);
|
$submitter = username_from_id($row["SubmitterUID"]);
|
||||||
$maintainer = username_from_id($row["MaintainerUID"]);
|
$maintainer = username_from_id($row["MaintainerUID"]);
|
||||||
|
$packager = username_from_id($row["PackagerUID"]);
|
||||||
|
|
||||||
$votes = $row['NumVotes'];
|
$votes = $row['NumVotes'];
|
||||||
|
|
||||||
|
@ -169,6 +170,24 @@ if ($row["MaintainerUID"]):
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<td><?= __('None') ?></td>
|
<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; ?>
|
<?php endif; ?>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
Loading…
Add table
Reference in a new issue