mirror of
https://github.com/BEDOLAGA-DEV/remnawave-bedolaga-telegram-bot.git
synced 2026-05-02 02:36:26 +00:00
fix: sync subscription status from panel in user.modified webhook
When subscription was extended in panel, webhook updated end_date but left status as expired. Now syncs ACTIVE/DISABLED status from panel payload when end_date is in the future.
This commit is contained in:
@@ -519,6 +519,26 @@ class RemnaWaveWebhookService:
|
||||
except (ValueError, TypeError):
|
||||
pass
|
||||
|
||||
# Sync status from panel
|
||||
panel_status = data.get('status')
|
||||
if panel_status:
|
||||
now = datetime.now(UTC).replace(tzinfo=None)
|
||||
end_date = subscription.end_date
|
||||
if panel_status == 'ACTIVE' and end_date and end_date > now:
|
||||
if subscription.status != SubscriptionStatus.ACTIVE.value:
|
||||
subscription.status = SubscriptionStatus.ACTIVE.value
|
||||
changed = True
|
||||
logger.info(
|
||||
'Webhook: subscription %s reactivated (%s → active) for user %s',
|
||||
subscription.id,
|
||||
subscription.status,
|
||||
user.id,
|
||||
)
|
||||
elif panel_status == 'DISABLED':
|
||||
if subscription.status != SubscriptionStatus.DISABLED.value:
|
||||
subscription.status = SubscriptionStatus.DISABLED.value
|
||||
changed = True
|
||||
|
||||
# Sync subscription URL (validate to prevent stored XSS)
|
||||
subscription_url = data.get('subscriptionUrl')
|
||||
if (
|
||||
|
||||
Reference in New Issue
Block a user