11import json
2- from fastapi import APIRouter , HTTPException , Query , status
2+ from fastapi import APIRouter , HTTPException , Query , status , Depends
33
44
55from dispatch .auth .service import CurrentUser
6+ from dispatch .auth .permissions import PermissionsDependency , IncidentTaskCreateEditPermission
67from dispatch .common .utils .views import create_pydantic_include
78from dispatch .database .core import DbSession
89from dispatch .database .service import CommonParameters , search_filter_sort_paginate
@@ -43,7 +44,12 @@ def get_tasks(common: CommonParameters, include: list[str] = Query([], alias="in
4344 return json .loads (TaskPagination (** pagination ).json ())
4445
4546
46- @router .post ("" , response_model = TaskRead , tags = ["tasks" ])
47+ @router .post (
48+ "" ,
49+ response_model = TaskRead ,
50+ tags = ["tasks" ],
51+ dependencies = [Depends (PermissionsDependency ([IncidentTaskCreateEditPermission ]))],
52+ )
4753def create_task (
4854 db_session : DbSession ,
4955 task_in : TaskCreate ,
@@ -64,11 +70,12 @@ def create_task(
6470 return task
6571
6672
67- @router .post ("/ticket/{task_id}" , tags = ["tasks" ])
68- def create_ticket (
69- db_session : DbSession ,
70- task_id : PrimaryKey ,
71- ):
73+ @router .post (
74+ "/ticket/{task_id}" ,
75+ tags = ["tasks" ],
76+ dependencies = [Depends (PermissionsDependency ([IncidentTaskCreateEditPermission ]))],
77+ )
78+ def create_ticket (db_session : DbSession , task_id : PrimaryKey , current_user : CurrentUser ):
7279 """Creates a ticket for an existing task."""
7380 task = get (db_session = db_session , task_id = task_id )
7481 if not task :
@@ -79,8 +86,15 @@ def create_ticket(
7986 return create_task_ticket (task = task , db_session = db_session )
8087
8188
82- @router .put ("/{task_id}" , response_model = TaskRead , tags = ["tasks" ])
83- def update_task (db_session : DbSession , task_id : PrimaryKey , task_in : TaskUpdate ):
89+ @router .put (
90+ "/{task_id}" ,
91+ response_model = TaskRead ,
92+ tags = ["tasks" ],
93+ dependencies = [Depends (PermissionsDependency ([IncidentTaskCreateEditPermission ]))],
94+ )
95+ def update_task (
96+ db_session : DbSession , task_id : PrimaryKey , task_in : TaskUpdate , current_user : CurrentUser
97+ ):
8498 """Updates an existing task."""
8599 task = get (db_session = db_session , task_id = task_id )
86100 if not task :
@@ -104,8 +118,13 @@ def update_task(db_session: DbSession, task_id: PrimaryKey, task_in: TaskUpdate)
104118 return task
105119
106120
107- @router .delete ("/{task_id}" , response_model = None , tags = ["tasks" ])
108- def delete_task (db_session : DbSession , task_id : PrimaryKey ):
121+ @router .delete (
122+ "/{task_id}" ,
123+ response_model = None ,
124+ tags = ["tasks" ],
125+ dependencies = [Depends (PermissionsDependency ([IncidentTaskCreateEditPermission ]))],
126+ )
127+ def delete_task (db_session : DbSession , task_id : PrimaryKey , current_user : CurrentUser ):
109128 """Deletes an existing task."""
110129 task = get (db_session = db_session , task_id = task_id )
111130 if not task :
0 commit comments