Revert "Fix credit system: Add developer/system account bypass for credit checks"
This reverts commit 066b81dd2a.
This commit is contained in:
@@ -49,7 +49,7 @@ class CreditService:
|
||||
return base_cost
|
||||
|
||||
@staticmethod
|
||||
def check_credits(account, operation_type, amount=None, user=None):
|
||||
def check_credits(account, operation_type, amount=None):
|
||||
"""
|
||||
Check if account has sufficient credits for an operation.
|
||||
|
||||
@@ -57,35 +57,10 @@ class CreditService:
|
||||
account: Account instance
|
||||
operation_type: Type of operation
|
||||
amount: Optional amount (word count, image count, etc.)
|
||||
user: Optional user instance (for developer/admin bypass)
|
||||
|
||||
Raises:
|
||||
InsufficientCreditsError: If account doesn't have enough credits
|
||||
"""
|
||||
# Bypass credit check for:
|
||||
# 1. System accounts (aws-admin, default-account, default)
|
||||
# 2. Developer/admin users (if user provided)
|
||||
if account and account.is_system_account():
|
||||
return True
|
||||
|
||||
if user:
|
||||
try:
|
||||
if hasattr(user, 'is_admin_or_developer') and user.is_admin_or_developer():
|
||||
return True
|
||||
if hasattr(user, 'is_system_account_user') and user.is_system_account_user():
|
||||
return True
|
||||
except (AttributeError, Exception):
|
||||
pass
|
||||
|
||||
# Check if account has any developer users (fallback for Celery tasks without user context)
|
||||
if account:
|
||||
try:
|
||||
from igny8_core.auth.models import User
|
||||
if User.objects.filter(account=account, role='developer').exists():
|
||||
return True
|
||||
except (AttributeError, Exception):
|
||||
pass
|
||||
|
||||
required = CreditService.get_credit_cost(operation_type, amount)
|
||||
if account.credits < required:
|
||||
raise InsufficientCreditsError(
|
||||
@@ -94,40 +69,17 @@ class CreditService:
|
||||
return True
|
||||
|
||||
@staticmethod
|
||||
def check_credits_legacy(account, required_credits, user=None):
|
||||
def check_credits_legacy(account, required_credits):
|
||||
"""
|
||||
Legacy method: Check if account has enough credits (for backward compatibility).
|
||||
|
||||
Args:
|
||||
account: Account instance
|
||||
required_credits: Number of credits required
|
||||
user: Optional user instance (for developer/admin bypass)
|
||||
|
||||
Raises:
|
||||
InsufficientCreditsError: If account doesn't have enough credits
|
||||
"""
|
||||
# Bypass credit check for system accounts and developers
|
||||
if account and account.is_system_account():
|
||||
return
|
||||
|
||||
if user:
|
||||
try:
|
||||
if hasattr(user, 'is_admin_or_developer') and user.is_admin_or_developer():
|
||||
return
|
||||
if hasattr(user, 'is_system_account_user') and user.is_system_account_user():
|
||||
return
|
||||
except (AttributeError, Exception):
|
||||
pass
|
||||
|
||||
# Check if account has any developer users (fallback for Celery tasks)
|
||||
if account:
|
||||
try:
|
||||
from igny8_core.auth.models import User
|
||||
if User.objects.filter(account=account, role='developer').exists():
|
||||
return
|
||||
except (AttributeError, Exception):
|
||||
pass
|
||||
|
||||
if account.credits < required_credits:
|
||||
raise InsufficientCreditsError(
|
||||
f"Insufficient credits. Required: {required_credits}, Available: {account.credits}"
|
||||
|
||||
Reference in New Issue
Block a user