dtyago commited on
Commit
dbc6c62
1 Parent(s): 25be447

Admin pages iterations

Browse files
Files changed (1) hide show
  1. app/main.py +28 -4
app/main.py CHANGED
@@ -1,8 +1,9 @@
1
- from fastapi import FastAPI, Request
2
  from fastapi.middleware.cors import CORSMiddleware
3
  from fastapi.staticfiles import StaticFiles
4
- from fastapi.responses import FileResponse
5
-
 
6
 
7
  app = FastAPI()
8
 
@@ -24,4 +25,27 @@ templates = Jinja2Templates(directory="app/admin/templates")
24
 
25
  @app.get("/")
26
  async def get_admin_login(request: Request):
27
- return templates.TemplateResponse("admin_login.html", {"request": request})
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi import FastAPI, Request, Form, File, UploadFile, Depends
2
  from fastapi.middleware.cors import CORSMiddleware
3
  from fastapi.staticfiles import StaticFiles
4
+ from fastapi.responses import FileResponse, HTMLResponse, RedirectResponse
5
+ from fastapi.templating import Jinja2Templates
6
+ from .admin import admin_functions as admin
7
 
8
  app = FastAPI()
9
 
 
25
 
26
  @app.get("/")
27
  async def get_admin_login(request: Request):
28
+ return templates.TemplateResponse("admin_login.html", {"request": request})
29
+
30
+ # Admin Login Handler
31
+ @app.post("/admin/login", response_class=HTMLResponse)
32
+ async def handle_admin_login(request: Request, password: str = Form(...)):
33
+ # Assume get_admin_password_hash fetches the admin's password hash securely
34
+ stored_password_hash = "securely_stored_password_hash"
35
+ if admin.verify_admin_password(password, stored_password_hash):
36
+ # Redirect to user registration page upon successful login
37
+ return RedirectResponse(url="/admin/register_user", status_code=303)
38
+ else:
39
+ # Reload login page with error message
40
+ return templates.TemplateResponse("admin_login.html", {"request": request, "error": "Invalid password"})
41
+
42
+ # User Registration Handler
43
+ @app.post("/admin/register_user", response_class=HTMLResponse)
44
+ async def handle_user_registration(request: Request, email: str = Form(...), name: str = Form(...), role: str = Form(...), file: UploadFile = File(...)):
45
+ user_id = await admin.register_user(email, name, role, file)
46
+ if user_id:
47
+ # Redirect or display a success message
48
+ return templates.TemplateResponse("registration_success.html", {"request": request})
49
+ else:
50
+ # Reload registration page with error message
51
+ return templates.TemplateResponse("user_registration.html", {"request": request, "error": "Registration failed"})