99
1010from .... import models , tasks
1111from ....extensions import db
12- from ....utils import assign_status
13- from .. import errors , schemas
12+ from .. import authz , errors , schemas
1413
1514
1615bp = af .APIBlueprint ("fulltext_screenings" , __name__ , url_prefix = "/fulltexts" )
@@ -37,15 +36,7 @@ def get(self, id, query_data):
3736 if not study :
3837 raise errors .NotFoundError (message = f"<Study(id={ id } )> not found" )
3938
40- if (
41- current_user .is_admin is False
42- and db .session .execute (
43- current_user .review_user_assoc .select ().filter_by (
44- review_id = study .review_id
45- )
46- ).one_or_none ()
47- is None
48- ):
39+ if not authz .user_is_allowed_for_review (current_user , study .review_id ):
4940 raise errors .ForbiddenError (
5041 message = f"{ current_user } forbidden to get fulltext screenings for this review"
5142 )
@@ -92,15 +83,9 @@ def post(self, id, json_data):
9283 if not study :
9384 raise errors .NotFoundError (message = f"<Fulltext(id={ id } )> not found" )
9485
95- if (
96- current_user .is_admin is False
97- and db .session .execute (
98- current_user .review_user_assoc .select ().filter_by (
99- review_id = study .review_id
100- )
101- ).one_or_none ()
102- is None
103- ) or study .review .status == "frozen" :
86+ if not authz .user_is_allowed_for_review (
87+ current_user , study .review_id , if_frozen = False
88+ ):
10489 raise errors .ForbiddenError (
10590 message = f"{ current_user } forbidden to screen fulltexts for this review"
10691 )
@@ -212,6 +197,7 @@ def put(self, id, json_data):
212197 403 : "current app user forbidden to delete fulltext screening; has not screened fulltext, so nothing to delete" ,
213198 404 : "no fulltext matching id was found" ,
214199 },
200+ security = "TokenAuth" ,
215201 )
216202 @bp .output ({}, 204 )
217203 @jwtext .jwt_required (fresh = True )
@@ -222,14 +208,9 @@ def delete(self, id):
222208 if not study :
223209 raise errors .NotFoundError (message = f"<Study(id={ id } )> not found" )
224210
225- if (
226- db .session .execute (
227- current_user .review_user_assoc .select ().filter_by (
228- review_id = study .review_id
229- )
230- ).one_or_none ()
231- is None
232- ) or study .review .status == "frozen" :
211+ if not authz .user_is_allowed_for_review (
212+ current_user , study .review_id , if_frozen = False
213+ ):
233214 raise errors .ForbiddenError (
234215 message = f"{ current_user } forbidden to delete fulltext screening for this review"
235216 )
0 commit comments