pyc • Lines: 829�
>v�j\y � �x � d dl Z d dlZd dlZd dlZd dlZd dlmZmZmZm Z d dl
mZ d dlm
Z
mZ d dlmZ d dlmZ e� e� ZdZe j* j- e j. de j* j- d � � � Ze j* j- e j. d
d� � Ze j* j- e j. dd� � Zd
efdeffD ] \ ZZer� ed
e� d�� � d d d ddd�Zed d�edd�edd�d�Zdede dz fd�Z!dede fd�Z"d8de dz de dz de#fd�Z$de de fd�Z%de de&fd�Z'd9de dedz de dz fd�Z(de#d e de fd!�Z)ejU e� ded"efd#�� Z+d$� Z,d%� Z-d&� Z.d'e fd(�Z/eja d)e
�*� defd+�� Z1eja d,� d-e d.e d/e defd0�� Z2d-e d.e d1e de fd2�Z3eja d3� d-e d.e defd4�� Z4ejk d5� d-e d.e defd6�� Z6eja d5e
�*� d-e d.e defd7�� Z7y):� N)�FastAPI�
HTTPException�Request�status)�http_exception_handler)�HTMLResponse�FileResponse��quote)�load_dotenvz ./stories�STORIES_FREE_DIRz~/local-ai-files/stories�STORIES_PREMIUM_DIR� �STORIES_ADMIN_DIRz@markdown_hosting.py cannot start: required environment variable z is not set.� � )�guest�free�user�premium�admin)�path� min_level)�free_stories�premium_stories�
admin_stories�request�returnc �2 � ddl m} || j � S )a Username authenticated through nginx's auth_request (X-Authentik-*).
Direct localhost callers may present ``Authorization: Bearer <jwt>``; that
is verified against Authentik's JWKS (see server/auth.py). Returns None
when no identity is present.
r )�get_current_user)�server.authr �headers)r �_get_current_users �-/home/palash/git/local-ai/markdown_hosting.pyr r 3 s � � B��W�_�_�-�-� c �D � ddl m} || j � }|r|d S dS )zBRole (free/premium/admin) derived from Authentik group membership.r )�get_identity�roler )r! r' r"