|
1 | 1 | import datetime |
2 | 2 | import tempfile |
3 | | -import uuid |
4 | 3 |
|
5 | 4 | from bam_masterdata.cli.cli import run_checker |
6 | 5 | from bam_masterdata.logger import log_storage, logger |
7 | | -from django.conf import settings |
8 | | -from django.contrib.auth import logout |
9 | | -from django.core.cache import cache |
10 | 6 | from django.shortcuts import redirect, render |
11 | 7 | from django.views.decorators.http import require_POST |
12 | | -from pybis import Openbis |
13 | | - |
14 | | -from masterdata_checker.app.utils import encrypt_password, get_openbis_from_cache |
15 | 8 |
|
16 | 9 |
|
17 | 10 | def homepage(request): |
18 | | - # Check if the user is logged in |
19 | | - o = get_openbis_from_cache(request) |
20 | | - if not o: |
21 | | - logger.info("User not logged in, redirecting to login page.") |
22 | | - return redirect("login") |
23 | | - |
24 | 11 | context = {} |
25 | 12 |
|
26 | 13 | if request.method == "POST" and "upload" in request.POST: |
@@ -93,41 +80,6 @@ def homepage(request): |
93 | 80 | return render(request, "homepage.html", context) |
94 | 81 |
|
95 | 82 |
|
96 | | -def login(request): |
97 | | - error = None |
98 | | - |
99 | | - if request.method == "POST": |
100 | | - username = request.POST.get("username") |
101 | | - password = request.POST.get("password") |
102 | | - |
103 | | - try: |
104 | | - o = Openbis(settings.OPENBIS_URL) |
105 | | - o.login(username, password, save_token=True) |
106 | | - |
107 | | - encrypted_password = encrypt_password(password) |
108 | | - session_id = str(uuid.uuid4()) |
109 | | - |
110 | | - request.session["openbis_username"] = username |
111 | | - request.session["openbis_password"] = encrypted_password |
112 | | - request.session["openbis_session_id"] = session_id |
113 | | - |
114 | | - cache.set(session_id, o, timeout=60 * 60) # Cache for 1 hour (adjustable) |
115 | | - |
116 | | - return redirect("homepage") |
117 | | - |
118 | | - except Exception as e: |
119 | | - logger.error(f"Login failed for user '{username}': {e}", exc_info=True) |
120 | | - error = "Invalid username or password." |
121 | | - |
122 | | - return render(request, "login.html", {"error": error}) |
123 | | - |
124 | | - |
125 | | -def logout_view(request): |
126 | | - request.session.flush() # Clear all session data |
127 | | - logout(request) |
128 | | - return redirect("login") |
129 | | - |
130 | | - |
131 | 83 | @require_POST |
132 | 84 | def clear_logs(request): |
133 | 85 | request.session.pop("checker_logs", None) |
|
0 commit comments