Merge branch 'feat/education-api' into deploy/dev
This commit is contained in:
commit
0f9d2a55f5
@ -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):
|
||||
|
@ -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
|
||||
@ -97,8 +96,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):
|
||||
@ -120,8 +119,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()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user