55from fastapi .responses import JSONResponse
66from utils .dependencies import get_task_state_manager
77
8- from .utils import require_admin
8+ from .utils import current_user , require_admin
99
1010# load config
1111config = load_config ()
1212
1313# Create an APIRouter instance
14- router = APIRouter (dependencies = [ Depends ( require_admin )] )
14+ router = APIRouter ()
1515
1616
1717def _format_pool_info (worker_info : dict [str , int ]) -> dict [str , int ]:
@@ -26,7 +26,9 @@ def _format_pool_info(worker_info: dict[str, int]) -> dict[str, int]:
2626
2727
2828@router .get ("/info" )
29- async def get_queue_info (task_state_manager = Depends (get_task_state_manager )):
29+ async def get_queue_info (
30+ admin = Depends (require_admin ), task_state_manager = Depends (get_task_state_manager )
31+ ):
3032 all_states : dict = await task_state_manager .get_all_states .remote ()
3133 status_counts = Counter (all_states .values ())
3234
@@ -51,14 +53,20 @@ async def list_tasks(
5153 request : Request ,
5254 task_status : str | None = None ,
5355 task_state_manager = Depends (get_task_state_manager ),
56+ user = Depends (current_user ),
5457):
5558 """
5659 - ?task_status=active → QUEUED | SERIALIZING | CHUNKING | INSERTING
5760 - ?task_status=<exact> → exact match (case-insensitive)
5861 - (none) → all tasks
5962 """
60- # fetck task info
61- all_info : dict [str , dict ] = await task_state_manager .get_all_info .remote ()
63+ # fetch task info
64+ if user .get ("is_admin" ):
65+ all_info : dict [str , dict ] = await task_state_manager .get_all_info .remote ()
66+ else :
67+ all_info : dict [str , dict ] = await task_state_manager .get_all_user_info .remote (
68+ user .get ("id" )
69+ )
6270
6371 if task_status is None :
6472 filtered = all_info .items ()
0 commit comments