mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
feat(auth): add requires_{auth,guest} decorators
These new decorators are meant to be used without any arguments and provide aliases to auth_required: - `auth_required(True) -> requires_auth` - `auth_required(False) -> requires_guest` These decorators should be used without arguments, e.g.: @router.get("/") @requires_guest async def my_route(request: Request): return HTMLResponse() Signed-off-by: Kevin Morris <kevr@0cost.org>
This commit is contained in:
parent
3e048e9675
commit
51b60f4210
8 changed files with 82 additions and 58 deletions
|
@ -7,7 +7,7 @@ from fastapi.responses import HTMLResponse, RedirectResponse
|
|||
import aurweb.config
|
||||
|
||||
from aurweb import cookies, db
|
||||
from aurweb.auth import auth_required
|
||||
from aurweb.auth import requires_auth, requires_guest
|
||||
from aurweb.l10n import get_translator_for_request
|
||||
from aurweb.models import User
|
||||
from aurweb.templates import make_variable_context, render_template
|
||||
|
@ -29,7 +29,7 @@ async def login_get(request: Request, next: str = "/"):
|
|||
|
||||
|
||||
@router.post("/login", response_class=HTMLResponse)
|
||||
@auth_required(False)
|
||||
@requires_guest
|
||||
async def login_post(request: Request,
|
||||
next: str = Form(...),
|
||||
user: str = Form(default=str()),
|
||||
|
@ -81,7 +81,7 @@ async def login_post(request: Request,
|
|||
|
||||
|
||||
@router.post("/logout")
|
||||
@auth_required()
|
||||
@requires_auth
|
||||
async def logout(request: Request, next: str = Form(default="/")):
|
||||
if request.user.is_authenticated():
|
||||
request.user.logout(request)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue