diff --git a/api/controllers/console/workspace/account.py b/api/controllers/console/workspace/account.py index a7ba9ff318..248aaa315c 100644 --- a/api/controllers/console/workspace/account.py +++ b/api/controllers/console/workspace/account.py @@ -3,20 +3,25 @@ import datetime import pytz from flask import request from flask_login import current_user # type: ignore -from flask_restful import (Resource, fields, marshal_with, # type: ignore - reqparse) +from flask_restful import Resource, fields, marshal_with, reqparse # type: ignore from configs import dify_config from constants.languages import supported_language from controllers.console import api from controllers.console.workspace.error import ( - AccountAlreadyInitedError, CurrentPasswordIncorrectError, - InvalidAccountDeletionCodeError, InvalidInvitationCodeError, - RepeatPasswordNotMatchError) -from controllers.console.wraps import (account_initialization_required, - cloud_edition_billing_enabled, - enterprise_license_required, - only_edition_cloud, setup_required) + AccountAlreadyInitedError, + CurrentPasswordIncorrectError, + InvalidAccountDeletionCodeError, + InvalidInvitationCodeError, + RepeatPasswordNotMatchError, +) +from controllers.console.wraps import ( + account_initialization_required, + cloud_edition_billing_enabled, + enterprise_license_required, + only_edition_cloud, + setup_required, +) from extensions.ext_database import db from fields.member_fields import account_fields from libs.helper import TimestampField, timezone @@ -24,8 +29,7 @@ from libs.login import login_required from models import AccountIntegrate, InvitationCode from services.account_service import AccountService from services.billing_service import BillingService -from services.errors.account import \ - CurrentPasswordIncorrectError as ServiceCurrentPasswordIncorrectError +from services.errors.account import CurrentPasswordIncorrectError as ServiceCurrentPasswordIncorrectError class AccountInitApi(Resource): diff --git a/api/services/billing_service.py b/api/services/billing_service.py index 6f2480258c..d57791b1bb 100644 --- a/api/services/billing_service.py +++ b/api/services/billing_service.py @@ -2,8 +2,7 @@ import os from typing import Literal, Optional import httpx -from tenacity import (retry, retry_if_exception_type, stop_before_delay, - wait_fixed) +from tenacity import retry, retry_if_exception_type, stop_before_delay, wait_fixed from extensions.ext_database import db from libs.helper import RateLimiter @@ -95,8 +94,8 @@ class BillingService: return cls._send_request("POST", "/account/delete-feedback", json=json) class EducationIdentity: - verification_rate_limit = RateLimiter(prefix="edu_verification_rate_limit", limit=10, period=60) - activation_rate_limit = RateLimiter(prefix="edu_activation_rate_limit", limit=10, period=60) + verification_rate_limit = RateLimiter(prefix="edu_verification_rate_limit", max_attempts=10, time_window=60) + activation_rate_limit = RateLimiter(prefix="edu_activation_rate_limit", max_attempts=10, time_window=60) @classmethod def verify(cls, account_id: str, account_email: str): @@ -118,8 +117,7 @@ class BillingService: @classmethod def activate(cls, account: Account, token: str, institution: str): if cls.activation_rate_limit.is_rate_limited(account.email): - from controllers.console.error import \ - EducationActivateLimitError + from controllers.console.error import EducationActivateLimitError raise EducationActivateLimitError()