diff --git a/server/backend/endpoints.py b/server/backend/endpoints.py index 5a3d2ce..ff7e759 100644 --- a/server/backend/endpoints.py +++ b/server/backend/endpoints.py @@ -125,9 +125,9 @@ async def reset_user(row:pydentic.UserReset): password.send_password(new_row) user = await db.reset_user(new_row) return user -@api.get("/admin/{email}") -async def admin_stuff( - email: str, - user = Depends(permissions.check_permission("can_delete")) -): - return {"msg": f"Добро пожаловать, {user.email}"} \ No newline at end of file +@api.get("/me", response_model=pydentic.UserOut) +async def read_current_user(current_user=Depends(JWT.current_user)): + user = await db.get_user_by_email(current_user) + if not user: + raise HTTPException(status_code=404, detail="User not found") + return user \ No newline at end of file diff --git a/server/front/main/index.html b/server/front/main/index.html index cea9322..63103b4 100644 --- a/server/front/main/index.html +++ b/server/front/main/index.html @@ -12,12 +12,16 @@
-

data

-
-

Data

+

data

+ +

Data

+

Data

+

Data

+
+ \ No newline at end of file diff --git a/server/front/main/profile.js b/server/front/main/profile.js new file mode 100644 index 0000000..b8c5d34 --- /dev/null +++ b/server/front/main/profile.js @@ -0,0 +1,45 @@ +async function loadUser() { + try { + const token = getToken(); + const response = await fetch("http://localhost:8000/me", { + method: "GET", + headers: { + "Authorization": `Bearer ${token}` + } + }); + + if (!response.ok) { + throw new Error("Unauthorized"); + } + + const data = await response.json(); + console.log("User info:", data); + show_data(data) + } catch (err) { + showError(["Connection error"]); + } + +} +loadUser(); +function show_data(data) { + const emailElem = document.getElementById('Account_Email'); + if (emailElem) { + emailElem.textContent = data.email; + } + + const descElem = document.getElementById('Account_Description'); + if (descElem) { + descElem.textContent = data.description || "—"; + } + + const activatedElem = document.getElementById('Account_Activated'); + if (activatedElem) { + activatedElem.textContent = `Active: ${data.activated ? "Yes" : "No"}`; + } + + const createdElem = document.getElementById('Account_Created'); + if (createdElem) { + // красиво обрезать дату + createdElem.textContent = new Date(data.created_at).toLocaleString(); + } +} \ No newline at end of file