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 <[email protected]>
---
 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

Reply via email to