39 lines
3.9 KiB
Plaintext
39 lines
3.9 KiB
Plaintext
134: # Format: {session_id: {'files': [list of filenames], 'created_at': datetime, 'username': str or None}}
|
|
135: sessions = {}
|
|
142: UPLOAD_FOLDER = 'uploads'
|
|
143: OUTPUT_FOLDER = 'output'
|
|
257: os.makedirs(UPLOAD_FOLDER, exist_ok=True)
|
|
258: os.makedirs(OUTPUT_FOLDER, exist_ok=True)
|
|
328: session_id = request.cookies.get('session_id')
|
|
330: if not session_id or session_id not in sessions:
|
|
332: session_id = str(uuid.uuid4())
|
|
333: sessions[session_id] = {
|
|
338: print(Fore.CYAN + f"[SESSION] Created new session: {session_id}" + Fore.RESET)
|
|
340: # Cleanup old sessions
|
|
341: cleanup_old_sessions()
|
|
343: return session_id
|
|
345: def cleanup_old_sessions():
|
|
350: expired_sessions = []
|
|
352: for session_id, session_data in sessions.items():
|
|
354: expired_sessions.append(session_id)
|
|
356: for session_id in expired_sessions:
|
|
357: print(Fore.YELLOW + f"[SESSION] Expired session removed: {session_id}" + Fore.RESET)
|
|
358: del sessions[session_id]
|
|
360: def add_file_to_session(session_id: str, filename: str):
|
|
364: if session_id in sessions:
|
|
365: if filename not in sessions[session_id]['files']:
|
|
366: sessions[session_id]['files'].append(filename)
|
|
367: print(Fore.GREEN + f"[SESSION] Added file '{filename}' to session {session_id}" + Fore.RESET)
|
|
369: def can_access_file(session_id: str, filename: str) -> bool:
|
|
373: if session_id in sessions:
|
|
374: return filename in sessions[session_id]['files']
|
|
661: session_id = request.cookies.get('session_id')
|
|
662: if session_id and session_id in sessions:
|
|
663: user_info = sessions[session_id].get('user_info')
|
|
837: session_id = get_or_create_session(request)
|
|
838: sessions[session_id]['username'] = user_info.get('username', username)
|
|
839: sessions[session_id]['user_info'] = user_info
|
|
841: sessions[session_id]['unit_id'] = str(user_info.get('unit_id', ''))
|
|
842: sessions[session_id]['unit_name'] = user_info.get('unit_name', '')
|
|
843: sessions[session_id]['fullname'] = user_info.get('full_name', username)
|