31 lines
986 B
Python
31 lines
986 B
Python
from datetime import date, datetime, timedelta
|
|
from typing import List
|
|
|
|
from barker.core.config import settings
|
|
from fastapi import HTTPException, status
|
|
|
|
|
|
def report_start_date(s: str = None) -> date:
|
|
return (
|
|
(datetime.utcnow() + timedelta(minutes=settings.TIMEZONE_OFFSET_MINUTES)).date()
|
|
if s is None
|
|
else datetime.strptime(s, "%d-%b-%Y").date()
|
|
)
|
|
|
|
|
|
def report_finish_date(f: str = None) -> date:
|
|
return (
|
|
(datetime.utcnow() + timedelta(minutes=settings.TIMEZONE_OFFSET_MINUTES)).date()
|
|
if f is None
|
|
else datetime.strptime(f, "%d-%b-%Y").date()
|
|
)
|
|
|
|
|
|
def check_audit_permission(start_date: date, user_permissions: List[str]):
|
|
today = (datetime.utcnow() + timedelta(minutes=settings.TIMEZONE_OFFSET_MINUTES)).date()
|
|
if (today - start_date).days > 5 and "audit" not in user_permissions:
|
|
raise HTTPException(
|
|
status_code=status.HTTP_403_FORBIDDEN,
|
|
detail="Accounts Audit",
|
|
)
|