[aur-dev] [PATCH 1/2] Remember user ID when flagging package bases

Lukas Fleischer lfleischer at archlinux.org
Sun Aug 30 14:53:52 UTC 2015


Add a new FlaggerUID field to the database and use it to store the user
ID of the account who recently flagged a package out-of-date.

Signed-off-by: Lukas Fleischer <lfleischer at archlinux.org>
---
 schema/aur-schema.sql        | 2 ++
 upgrading/4.1.0.txt          | 8 ++++++++
 web/lib/pkgbasefuncs.inc.php | 4 ++--
 3 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/schema/aur-schema.sql b/schema/aur-schema.sql
index 444cb5e..9556b20 100644
--- a/schema/aur-schema.sql
+++ b/schema/aur-schema.sql
@@ -84,6 +84,7 @@ CREATE TABLE PackageBases (
 	OutOfDateTS BIGINT UNSIGNED NULL DEFAULT NULL,
 	SubmittedTS BIGINT UNSIGNED NOT NULL,
 	ModifiedTS BIGINT UNSIGNED NOT NULL,
+	FlaggerUID BIGINT UNSIGNED NULL DEFAULT NULL,        -- who flagged the package out-of-date?
 	SubmitterUID INTEGER UNSIGNED NULL DEFAULT NULL,     -- who submitted it?
 	MaintainerUID INTEGER UNSIGNED NULL DEFAULT NULL,    -- User
 	PackagerUID INTEGER UNSIGNED NULL DEFAULT NULL,      -- Last packager
@@ -93,6 +94,7 @@ CREATE TABLE PackageBases (
 	INDEX (SubmitterUID),
 	INDEX (MaintainerUID),
 	INDEX (PackagerUID),
+	FOREIGN KEY (FlaggerUID) REFERENCES Users(ID) ON DELETE SET NULL,
 	-- 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,
diff --git a/upgrading/4.1.0.txt b/upgrading/4.1.0.txt
index 7862030..c0bf573 100644
--- a/upgrading/4.1.0.txt
+++ b/upgrading/4.1.0.txt
@@ -7,3 +7,11 @@ ALTER TABLE PackageComments
 	ADD COLUMN EditedUsersID INTEGER UNSIGNED NULL DEFAULT NULL,
 	ADD FOREIGN KEY (EditedUsersID) REFERENCES Users(ID) ON DELETE SET NULL;
 ----
+
+2. Add a field to store the ID of the last user who flagged a package
+out-of-date:
+
+----
+ALTER TABLE PackageBases
+	ADD COLUMN FlaggerUID BIGINT UNSIGNED NULL DEFAULT NULL;
+----
diff --git a/web/lib/pkgbasefuncs.inc.php b/web/lib/pkgbasefuncs.inc.php
index 677ae6b..df1ae18 100644
--- a/web/lib/pkgbasefuncs.inc.php
+++ b/web/lib/pkgbasefuncs.inc.php
@@ -328,15 +328,15 @@ function pkgbase_flag($base_ids) {
 		return array(false, __("You did not select any packages to flag."));
 	}
 
+	$uid = uid_from_sid($_COOKIE['AURSID']);
 	$dbh = DB::connect();
 
 	$q = "UPDATE PackageBases SET";
-	$q.= " OutOfDateTS = UNIX_TIMESTAMP()";
+	$q.= " OutOfDateTS = UNIX_TIMESTAMP(), FlaggerUID = " . $uid;
 	$q.= " WHERE ID IN (" . implode(",", $base_ids) . ")";
 	$q.= " AND OutOfDateTS IS NULL";
 	$dbh->exec($q);
 
-	$uid = uid_from_sid($_COOKIE['AURSID']);
 	foreach ($base_ids as $base_id) {
 		notify(array('flag', $uid, $base_id));
 	}
-- 
2.5.0


More information about the aur-dev mailing list