mirror of
https://github.com/open-webui/openapi-servers
synced 2025-06-26 18:17:04 +00:00
improve deletion flow with shorter confirmations
This commit is contained in:
parent
5478ae007b
commit
90ab5c0686
@ -7,12 +7,12 @@ from pydantic import BaseModel, Field
|
|||||||
import os
|
import os
|
||||||
import pathlib
|
import pathlib
|
||||||
import asyncio
|
import asyncio
|
||||||
from typing import List, Optional, Literal, Dict, Union # Added Dict, Union
|
from typing import List, Optional, Literal, Dict, Union
|
||||||
import difflib
|
import difflib
|
||||||
import shutil
|
import shutil
|
||||||
from datetime import datetime, timezone, timedelta # Added timedelta
|
from datetime import datetime, timezone, timedelta
|
||||||
import uuid # Added uuid
|
import json
|
||||||
import json # Added json
|
import secrets
|
||||||
from config import ALLOWED_DIRECTORIES
|
from config import ALLOWED_DIRECTORIES
|
||||||
|
|
||||||
app = FastAPI(
|
app = FastAPI(
|
||||||
@ -469,7 +469,7 @@ async def delete_path(data: DeletePathRequest = Body(...)):
|
|||||||
raise HTTPException(status_code=404, detail=f"Path not found: {data.path}")
|
raise HTTPException(status_code=404, detail=f"Path not found: {data.path}")
|
||||||
|
|
||||||
# Generate token and expiry
|
# Generate token and expiry
|
||||||
token = uuid.uuid4().hex
|
token = secrets.token_hex(3)[:5] # Generate 6 hex chars (3 bytes), take first 5
|
||||||
expiry_time = now + timedelta(seconds=CONFIRMATION_TTL_SECONDS)
|
expiry_time = now + timedelta(seconds=CONFIRMATION_TTL_SECONDS)
|
||||||
|
|
||||||
# Store confirmation details
|
# Store confirmation details
|
||||||
@ -481,8 +481,10 @@ async def delete_path(data: DeletePathRequest = Body(...)):
|
|||||||
save_confirmations(pending_confirmations) # Save updated state
|
save_confirmations(pending_confirmations) # Save updated state
|
||||||
|
|
||||||
# Return confirmation required response
|
# Return confirmation required response
|
||||||
|
# Construct the user-friendly message
|
||||||
|
confirmation_message = f"`Confirm deletion of file: {data.path} with token {token}`"
|
||||||
return ConfirmationRequiredResponse(
|
return ConfirmationRequiredResponse(
|
||||||
message="Confirmation required to delete path. Use the provided token in a subsequent request with the same parameters.",
|
message=confirmation_message,
|
||||||
confirmation_token=token,
|
confirmation_token=token,
|
||||||
expires_at=expiry_time,
|
expires_at=expiry_time,
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user