summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukas Fleischer <lfleischer@archlinux.org>2015-08-30 16:24:13 +0200
committerLukas Fleischer <lfleischer@archlinux.org>2015-08-30 16:44:12 +0200
commite1a258bd832c3ba76b5f898cbd068c5bdf4eb4dc (patch)
treef24bf8f305d6493b23ad654ea0534ad4b851be9b
parent57250a164172672f26c763e8453855f74d72c191 (diff)
Remember user ID when flagging package bases
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@archlinux.org>
-rw-r--r--schema/aur-schema.sql2
-rw-r--r--upgrading/4.1.0.txt8
-rw-r--r--web/lib/pkgbasefuncs.inc.php4
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));
}