From patchwork Sat Jul 4 00:07:14 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kevin Morris X-Patchwork-Id: 1705 Return-Path: Delivered-To: patchwork@archlinux.org Received: from apollo.archlinux.org (localhost [127.0.0.1]) by apollo.archlinux.org (Postfix) with ESMTP id 7B53719B7F1E8 for ; Sat, 4 Jul 2020 00:07:41 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on apollo.archlinux.org X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=DKIM_ADSP_CUSTOM_MED=0.001, DKIM_INVALID=1,DKIM_SIGNED=0.1,FREEMAIL_FROM=0.5,MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_MED=-2.3,RCVD_IN_MSPIKE_H4=0.001,RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001,T_DMARC_POLICY_NONE=0.01,T_DMARC_SIMPLE_DKIM=0.01 autolearn=ham autolearn_force=no version=3.4.4 X-Spam-BL-Results: [127.0.0.19] [127.0.9.2] Received: from orion.archlinux.org (orion.archlinux.org [88.198.91.70]) by apollo.archlinux.org (Postfix) with ESMTPS for ; Sat, 4 Jul 2020 00:07:41 +0000 (UTC) Received: from orion.archlinux.org (localhost [127.0.0.1]) by orion.archlinux.org (Postfix) with ESMTP id 9490C1D35803CD; Sat, 4 Jul 2020 00:07:39 +0000 (UTC) Received: from luna.archlinux.org (luna.archlinux.org [5.9.250.164]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: luna) by orion.archlinux.org (Postfix) with ESMTPSA id 56FE11D35803C6; Sat, 4 Jul 2020 00:07:39 +0000 (UTC) Authentication-Results: orion.archlinux.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=pNq20H9b Received: from luna.archlinux.org (luna.archlinux.org [127.0.0.1]) by luna.archlinux.org (Postfix) with ESMTP id 4BDB329CA7; Sat, 4 Jul 2020 00:07:39 +0000 (UTC) Authentication-Results: luna.archlinux.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=pNq20H9b Received: from luna.archlinux.org (luna.archlinux.org [127.0.0.1]) by luna.archlinux.org (Postfix) with ESMTP id C7D5F20F85 for ; Sat, 4 Jul 2020 00:07:34 +0000 (UTC) Received: from orion.archlinux.org (orion.archlinux.org [88.198.91.70]) by luna.archlinux.org (Postfix) with ESMTPS for ; Sat, 4 Jul 2020 00:07:34 +0000 (UTC) Received: from orion.archlinux.org (localhost [127.0.0.1]) by orion.archlinux.org (Postfix) with ESMTP id 5AC731D35803C1 for ; Sat, 4 Jul 2020 00:07:30 +0000 (UTC) Received: from mail-pg1-x530.google.com (mail-pg1-x530.google.com [IPv6:2607:f8b0:4864:20::530]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by orion.archlinux.org (Postfix) with ESMTPS for ; Sat, 4 Jul 2020 00:07:30 +0000 (UTC) Received: by mail-pg1-x530.google.com with SMTP id l63so15714257pge.12 for ; Fri, 03 Jul 2020 17:07:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=vxNXdRyCWRspWj3vtBZBcOi/6GrrnZIH+x8ZSQPxxBU=; b=pNq20H9bLE2aoGAsQ/kTNDnbuLgW6KG1NWBnNp2tA/hJ4O8t4QuhobgRgp5Ogl+YyS /RtG4F1ylcNT8ENZTaIKsLEMIRyFQlC0T3Ekc451iwXFto+rPLUBxRSbWuPq4XParPgU AQRHL2eOJd7/8icJ4QT1soMQ73NWuMm+Qb1vjw9MVwWbDD7xJkWOdp0jXuzdN5Houz/W 2yObFW2GtI3av9ML7pTVwoL++55CnNTeEewaEVqT2ssBGNHYVEuenDSk+dob+OEhoand 5zIi/Y89Pv6kvgOZZHt6601HY/LaoBGE13tC+VYKuFA6gqmZRyqvwqc4xo/mTL8JrGCT JsXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=vxNXdRyCWRspWj3vtBZBcOi/6GrrnZIH+x8ZSQPxxBU=; b=JUEbxBFN72j8VV55oZIqQaXT5U4/MlBAFQL26rdstL4pH2Xqpi2I3OxE+9OItmkLfX kMIBDRjYa3nxUgVs3nUpCYRMcAFC6bjFDuuBr/Z1SWPdDcT4irGZezATFK5xu4dgHkl2 ZvSBArg1fYeaqSJ9pMno/SgDFDWz0KDT2e4Iv9WatBbUKZOiW8PiZ7OlF5rGlZ1G46vZ y72jmJhYckNwFPCX4cohK2tW0H/hPtwGZwtABEIyzm7ysh/J1VPa84lfgnvE274ZAyyD cXXU45KUSZgvJiTocKIaYw/XllnSZBlHTZWb9vqiNz4oGYDqRmCT1BaAytBWldS8eh25 gNFw== X-Gm-Message-State: AOAM531P2/W50yJej4/ELKkeNfmnl1GJRY0yzU+DRdwMyrrXuKSWKesR FJvQ1WKYP6QLweT2N8eh3jNh2OK/vb8= X-Google-Smtp-Source: ABdhPJwX9q0c33r3UBNTwKtZZL5x3z+8uuYMMN6RSFkQxVMpfRQkvj2RFsjZr2XNbwRmJzZp0j+/hg== X-Received: by 2002:a65:6707:: with SMTP id u7mr30969593pgf.233.1593821247355; Fri, 03 Jul 2020 17:07:27 -0700 (PDT) Received: from localhost.localdomain ([2600:1:9a26:fe89:1157:f95e:95fa:f21e]) by smtp.gmail.com with ESMTPSA id n9sm8181768pjo.53.2020.07.03.17.07.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Jul 2020 17:07:26 -0700 (PDT) From: Kevin Morris To: aur-dev@archlinux.org Subject: [PATCH] Exclude suspended Users from being notified Date: Fri, 3 Jul 2020 17:07:14 -0700 Message-Id: <20200704000714.12436-1-kevr.gtalk@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200703190211.11979-1-kevr.gtalk@gmail.com> References: <20200703190211.11979-1-kevr.gtalk@gmail.com> MIME-Version: 1.0 X-BeenThere: aur-dev@archlinux.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: "Arch User Repository \(AUR\) Development" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: aur-dev-bounces@archlinux.org Sender: "aur-dev" The existing notify.py script was grabbing entries regardless of user suspension. This has been modified to only send notifications to unsuspended users, except for a Trusted User Vote Notification. This change was written as a solution to https://bugs.archlinux.org/task/65554. Signed-off-by: Kevin Morris --- aurweb/scripts/notify.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/aurweb/scripts/notify.py b/aurweb/scripts/notify.py index 5b18a476..94ca1936 100755 --- a/aurweb/scripts/notify.py +++ b/aurweb/scripts/notify.py @@ -170,6 +170,7 @@ class CommentNotification(Notification): 'FROM Users INNER JOIN PackageNotifications ' + 'ON PackageNotifications.UserID = Users.ID WHERE ' + 'Users.CommentNotify = 1 AND ' + + 'Users.Suspended = 0 AND ' + 'PackageNotifications.UserID != ? AND ' + 'PackageNotifications.PackageBaseID = ?', [uid, pkgbase_id]) @@ -217,6 +218,7 @@ class UpdateNotification(Notification): 'INNER JOIN PackageNotifications ' + 'ON PackageNotifications.UserID = Users.ID WHERE ' + 'Users.UpdateNotify = 1 AND ' + + 'Users.Suspended = 0 AND ' + 'PackageNotifications.UserID != ? AND ' + 'PackageNotifications.PackageBaseID = ?', [uid, pkgbase_id]) @@ -264,7 +266,8 @@ class FlagNotification(Notification): 'INNER JOIN PackageBases ' + 'ON PackageBases.MaintainerUID = Users.ID OR ' + 'PackageBases.ID = PackageComaintainers.PackageBaseID ' + - 'WHERE PackageBases.ID = ?', [pkgbase_id]) + 'WHERE PackageBases.ID = ? AND ' + + 'Users.Suspended = 0', [pkgbase_id]) self._recipients = cur.fetchall() cur = conn.execute('SELECT FlaggerComment FROM PackageBases WHERE ' + 'ID = ?', [pkgbase_id]) @@ -302,7 +305,8 @@ class OwnershipEventNotification(Notification): 'ON PackageNotifications.UserID = Users.ID WHERE ' + 'Users.OwnershipNotify = 1 AND ' + 'PackageNotifications.UserID != ? AND ' + - 'PackageNotifications.PackageBaseID = ?', + 'PackageNotifications.PackageBaseID = ? AND ' + + 'Users.Suspended = 0', [uid, pkgbase_id]) self._recipients = cur.fetchall() cur = conn.execute('SELECT FlaggerComment FROM PackageBases WHERE ' + @@ -341,7 +345,7 @@ class ComaintainershipEventNotification(Notification): def __init__(self, conn, uid, pkgbase_id): self._pkgbase = pkgbase_from_id(conn, pkgbase_id) cur = conn.execute('SELECT Email, LangPreference FROM Users ' + - 'WHERE ID = ?', [uid]) + 'WHERE ID = ? AND Suspended = 0', [uid]) self._to, self._lang = cur.fetchone() super().__init__() @@ -384,7 +388,8 @@ class DeleteNotification(Notification): 'INNER JOIN PackageNotifications ' + 'ON PackageNotifications.UserID = Users.ID WHERE ' + 'PackageNotifications.UserID != ? AND ' + - 'PackageNotifications.PackageBaseID = ?', + 'PackageNotifications.PackageBaseID = ? AND ' + + 'Users.Suspended = 0', [uid, old_pkgbase_id]) self._recipients = cur.fetchall() super().__init__() @@ -431,7 +436,8 @@ class RequestOpenNotification(Notification): 'INNER JOIN Users ' + 'ON Users.ID = PackageRequests.UsersID ' + 'OR Users.ID = PackageBases.MaintainerUID ' + - 'WHERE PackageRequests.ID = ?', [reqid]) + 'WHERE PackageRequests.ID = ? AND ' + + 'Users.Suspended = 0', [reqid]) self._to = aurweb.config.get('options', 'aur_request_ml') self._cc = [row[0] for row in cur.fetchall()] cur = conn.execute('SELECT Comments FROM PackageRequests WHERE ID = ?', @@ -485,7 +491,8 @@ class RequestCloseNotification(Notification): 'INNER JOIN Users ' + 'ON Users.ID = PackageRequests.UsersID ' + 'OR Users.ID = PackageBases.MaintainerUID ' + - 'WHERE PackageRequests.ID = ?', [reqid]) + 'WHERE PackageRequests.ID = ? AND ' + + 'Users.Suspended = 0', [reqid]) self._to = aurweb.config.get('options', 'aur_request_ml') self._cc = [row[0] for row in cur.fetchall()] cur = conn.execute('SELECT PackageRequests.ClosureComment, ' + @@ -494,7 +501,8 @@ class RequestCloseNotification(Notification): 'FROM PackageRequests ' + 'INNER JOIN RequestTypes ' + 'ON RequestTypes.ID = PackageRequests.ReqTypeID ' + - 'WHERE PackageRequests.ID = ?', [reqid]) + 'WHERE PackageRequests.ID = ? AND ' + + 'Users.Suspended = 0', [reqid]) self._text, self._reqtype, self._pkgbase = cur.fetchone() self._reqid = int(reqid) self._reason = reason