mirror of
https://github.com/khoaliber/khoj.git
synced 2026-03-06 13:22:12 +00:00
If the user subscription was created over 7 days ago, then their trial is expired
This commit is contained in:
@@ -77,7 +77,10 @@ class UserAuthenticationBackend(AuthenticationBackend):
|
|||||||
if user:
|
if user:
|
||||||
if state.billing_enabled:
|
if state.billing_enabled:
|
||||||
subscription_state = await aget_user_subscription_state(user)
|
subscription_state = await aget_user_subscription_state(user)
|
||||||
subscribed = subscription_state == SubscriptionState.SUBSCRIBED.value
|
subscribed = (
|
||||||
|
subscription_state == SubscriptionState.SUBSCRIBED.value
|
||||||
|
or subscription_state == SubscriptionState.TRIAL.value
|
||||||
|
)
|
||||||
if subscribed:
|
if subscribed:
|
||||||
return AuthCredentials(["authenticated", "subscribed"]), AuthenticatedKhojUser(
|
return AuthCredentials(["authenticated", "subscribed"]), AuthenticatedKhojUser(
|
||||||
user_with_token.user
|
user_with_token.user
|
||||||
@@ -97,7 +100,10 @@ class UserAuthenticationBackend(AuthenticationBackend):
|
|||||||
if user_with_token:
|
if user_with_token:
|
||||||
if state.billing_enabled:
|
if state.billing_enabled:
|
||||||
subscription_state = await aget_user_subscription_state(user_with_token.user)
|
subscription_state = await aget_user_subscription_state(user_with_token.user)
|
||||||
subscribed = subscription_state == SubscriptionState.SUBSCRIBED.value
|
subscribed = (
|
||||||
|
subscription_state == SubscriptionState.SUBSCRIBED.value
|
||||||
|
or subscription_state == SubscriptionState.TRIAL.value
|
||||||
|
)
|
||||||
if subscribed:
|
if subscribed:
|
||||||
return AuthCredentials(["authenticated", "subscribed"]), AuthenticatedKhojUser(
|
return AuthCredentials(["authenticated", "subscribed"]), AuthenticatedKhojUser(
|
||||||
user_with_token.user
|
user_with_token.user
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import math
|
import math
|
||||||
import random
|
import random
|
||||||
import secrets
|
import secrets
|
||||||
from datetime import date, datetime, timezone
|
from datetime import date, datetime, timezone, timedelta
|
||||||
from typing import List, Optional, Type
|
from typing import List, Optional, Type
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
|
|
||||||
@@ -140,6 +140,10 @@ def subscription_to_state(subscription: Subscription) -> str:
|
|||||||
if not subscription:
|
if not subscription:
|
||||||
return SubscriptionState.INVALID.value
|
return SubscriptionState.INVALID.value
|
||||||
elif subscription.type == Subscription.Type.TRIAL:
|
elif subscription.type == Subscription.Type.TRIAL:
|
||||||
|
# Trial subscription is valid for 7 days
|
||||||
|
if datetime.now(tz=timezone.utc) - subscription.created_at > timedelta(days=7):
|
||||||
|
return SubscriptionState.EXPIRED.value
|
||||||
|
|
||||||
return SubscriptionState.TRIAL.value
|
return SubscriptionState.TRIAL.value
|
||||||
elif subscription.is_recurring and subscription.renewal_date >= datetime.now(tz=timezone.utc):
|
elif subscription.is_recurring and subscription.renewal_date >= datetime.now(tz=timezone.utc):
|
||||||
return SubscriptionState.SUBSCRIBED.value
|
return SubscriptionState.SUBSCRIBED.value
|
||||||
|
|||||||
Reference in New Issue
Block a user