Add PWA mobile attendance shortcut
This commit is contained in:
+19
-2
@@ -1,4 +1,4 @@
|
||||
from __future__ import annotations
|
||||
from __future__ import annotations
|
||||
|
||||
from datetime import datetime, timezone, timedelta
|
||||
|
||||
@@ -26,6 +26,21 @@ from app.modules.email_integration.services import send_auth_otp_email, send_pas
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
PENDING_POST_LOGIN_REDIRECT_KEY = "pending_post_login_redirect"
|
||||
SAFE_POST_LOGIN_REDIRECTS = {
|
||||
"/mobile/attendance",
|
||||
"/employee/attendance",
|
||||
"/employee/dashboard",
|
||||
}
|
||||
|
||||
|
||||
def _consume_safe_post_login_redirect(request: Request) -> str | None:
|
||||
value = request.session.pop(PENDING_POST_LOGIN_REDIRECT_KEY, None)
|
||||
value = (value or "").strip()
|
||||
if value in SAFE_POST_LOGIN_REDIRECTS:
|
||||
return value
|
||||
return None
|
||||
|
||||
|
||||
def _dev_otp_print_enabled() -> bool:
|
||||
settings = get_settings()
|
||||
@@ -459,9 +474,11 @@ def login_submit(
|
||||
if active_financial_year:
|
||||
request.session["active_financial_year"] = active_financial_year
|
||||
request.session["must_change_password"] = must_change_password
|
||||
request.session["post_login_redirect"] = _post_login_redirect(
|
||||
default_post_login_redirect = _post_login_redirect(
|
||||
must_change_password, permissions, roles
|
||||
)
|
||||
pending_post_login_redirect = None if must_change_password else _consume_safe_post_login_redirect(request)
|
||||
request.session["post_login_redirect"] = pending_post_login_redirect or default_post_login_redirect
|
||||
|
||||
if _otp_required(bs, roles):
|
||||
code = start_otp(request)
|
||||
|
||||
Reference in New Issue
Block a user