From 629f5a3a3d241b3825c202cf2dfa5c44f36c8e8b Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Tue, 18 Mar 2025 09:42:15 -0300 Subject: [PATCH] Add several registered checks. --- .../securesms/jobs/InAppPaymentOneTimeContextJob.kt | 6 ++++++ .../securesms/jobs/InAppPaymentRecurringContextJob.kt | 5 +++++ .../securesms/jobs/InAppPaymentRedemptionJob.kt | 5 +++++ 3 files changed, 16 insertions(+) diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentOneTimeContextJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentOneTimeContextJob.kt index 6626144407..1643b86d6f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentOneTimeContextJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentOneTimeContextJob.kt @@ -23,6 +23,7 @@ import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.JobManager.Chain import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint +import org.thoughtcrime.securesms.keyvalue.SignalStore import org.whispersystems.signalservice.internal.ServiceResponse import org.whispersystems.signalservice.internal.push.exceptions.InAppPaymentReceiptCredentialError import java.io.IOException @@ -112,6 +113,11 @@ class InAppPaymentOneTimeContextJob private constructor( } override fun onRun() { + if (!SignalStore.account.isRegistered) { + warning("User is not registered. Failing.") + throw Exception("Unregistered users cannot perform this job.") + } + val (inAppPayment, requestContext) = getAndValidateInAppPayment() info("Submitting request context to server...") diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentRecurringContextJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentRecurringContextJob.kt index c746fe6109..a575d1bed2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentRecurringContextJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentRecurringContextJob.kt @@ -140,6 +140,11 @@ class InAppPaymentRecurringContextJob private constructor( } private fun doRun() { + if (!SignalStore.account.isRegistered) { + warning("User is not registered. Failing.") + throw Exception("Unregistered users cannot perform this job.") + } + val (inAppPayment, requestContext) = getAndValidateInAppPayment() val activeSubscription = getActiveSubscription(inAppPayment) val subscription = activeSubscription.activeSubscription diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentRedemptionJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentRedemptionJob.kt index 8465763ae6..196b226cdf 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentRedemptionJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentRedemptionJob.kt @@ -142,6 +142,11 @@ class InAppPaymentRedemptionJob private constructor( } override fun onRun() { + if (!SignalStore.account.isRegistered) { + Log.w(TAG, "User is not registered. Failing.") + throw Exception("Unregistered users cannot perform this job.") + } + if (jobData.inAppPaymentId != null) { onRunForInAppPayment(InAppPaymentTable.InAppPaymentId(jobData.inAppPaymentId)) } else {