Fix cookie auth for API endpoints and clean up navbar
This commit is contained in:
+4
-1
@@ -2,7 +2,7 @@ from datetime import datetime, timedelta, timezone
|
||||
from typing import Optional
|
||||
from jose import JWTError, jwt
|
||||
from passlib.context import CryptContext
|
||||
from fastapi import Depends, HTTPException, status
|
||||
from fastapi import Depends, HTTPException, Request, status
|
||||
from fastapi.security import OAuth2PasswordBearer
|
||||
from sqlalchemy.orm import Session
|
||||
from config import get_settings
|
||||
@@ -50,9 +50,12 @@ def verify_token(token: str, token_type: str) -> Optional[dict]:
|
||||
|
||||
|
||||
def get_current_user(
|
||||
request: Request,
|
||||
token: Optional[str] = Depends(oauth2_scheme),
|
||||
db: Session = Depends(get_db),
|
||||
) -> Optional[models.User]:
|
||||
if not token:
|
||||
token = request.cookies.get("access_token")
|
||||
if not token:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_401_UNAUTHORIZED,
|
||||
|
||||
@@ -21,13 +21,15 @@
|
||||
<ul class="navbar-nav ms-auto align-items-center">
|
||||
{% if user.role == 'admin' %}
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown">Admin</a>
|
||||
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown">{{ user.username }}</a>
|
||||
<ul class="dropdown-menu dropdown-menu-end">
|
||||
<li><a class="dropdown-item" href="/admin/users">Пользователи</a></li>
|
||||
<li><a class="dropdown-item" href="/admin/settings">Настройки</a></li>
|
||||
<li><a class="dropdown-item" href="/admin/audit">Аудит-лог</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
{% else %}
|
||||
<li class="nav-item"><span class="nav-link">{{ user.username }}</span></li>
|
||||
{% endif %}
|
||||
<li class="nav-item me-3">
|
||||
<a href="/notifications" class="nav-link position-relative">
|
||||
@@ -39,7 +41,6 @@
|
||||
{% endif %}
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item"><span class="nav-link">{{ user.username }}</span></li>
|
||||
<li class="nav-item"><a class="nav-link" href="/" id="logout-link">Выйти</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user