77use App \Response \ApiResponse ;
88use App \Services \LmsPostService ;
99use App \Services \LmsFetchService ;
10+ use App \Services \SessionService ;
1011use App \Services \UtilityService ;
1112use Doctrine \Persistence \ManagerRegistry ;
1213use Symfony \Component \HttpFoundation \JsonResponse ;
@@ -24,7 +25,7 @@ public function __construct(ManagerRegistry $doctrine)
2425 }
2526
2627 #[Route('/api/files/{file}/review ' , name: 'review_file ' )]
27- public function reviewFile (FileItem $ file , Request $ request , UtilityService $ util )
28+ public function reviewFile (SessionService $ sessionService , Request $ request , UtilityService $ util, FileItem $ file )
2829 {
2930 $ apiResponse = new ApiResponse ();
3031 $ user = $ this ->getUser ();
@@ -33,14 +34,13 @@ public function reviewFile(FileItem $file, Request $request, UtilityService $uti
3334 try {
3435 // Check if user has access to course
3536 $ course = $ file ->getCourse ();
36- if (!$ this ->userHasCourseAccess ($ course )) {
37+ if (!$ this ->userHasCourseAccess ($ course, $ sessionService )) {
3738 throw new \Exception ("You do not have permission to access this issue. " );
3839 }
3940
4041 $ updates = \json_decode ($ request ->getContent (), true );
4142 $ file ->setReviewed ($ updates ['reviewed ' ]);
4243 if ($ updates ['replacement ' ]){
43- $ output ->writeln ("Triggers " );
4444 $ file ->removeReplacementFile ();
4545 }
4646 $ file ->setReviewedBy ($ user );
@@ -71,17 +71,16 @@ public function reviewFile(FileItem $file, Request $request, UtilityService $uti
7171 }
7272
7373 #[Route('/api/files/{file}/post ' , methods: ['POST ' ], name: 'file_post ' )]
74- public function postFile (FileItem $ file , Request $ request , UtilityService $ util , LmsPostService $ lmsPost , LmsFetchService $ lmsFetch )
74+ public function postFile (SessionService $ sessionService , Request $ request , UtilityService $ util , LmsPostService $ lmsPost , LmsFetchService $ lmsFetch, FileItem $ file )
7575 {
7676 $ output = new ConsoleOutput ();
7777 $ apiResponse = new ApiResponse ();
7878 $ user = $ this ->getUser ();
79- $ output ->writeln ("Getting here on the backend " );
8079
8180 try {
8281 // Check if user has access to course
8382 $ course = $ file ->getCourse ();
84- if (!$ this ->userHasCourseAccess ($ course )) {
83+ if (!$ this ->userHasCourseAccess ($ course, $ sessionService )) {
8584 throw new \Exception ("You do not have permission to access this issue. " );
8685 }
8786
@@ -134,8 +133,8 @@ public function postFile(FileItem $file, Request $request, UtilityService $util,
134133 }
135134
136135 // This route is created here as files are the primary items using this route
137- #[Route('/api/content ' , methods: ['POST ' ], name: 'upload_content ' )]
138- public function uploadContent (Request $ request , UtilityService $ util , LmsPostService $ lmsPost , LmsFetchService $ lmsFetch ){
136+ #[Route('/api/{file}/ content ' , methods: ['POST ' ], name: 'upload_content ' )]
137+ public function uploadContent (SessionService $ sessionService , Request $ request , UtilityService $ util , LmsPostService $ lmsPost , LmsFetchService $ lmsFetch, FileItem $ file ){
139138 $ output = new ConsoleOutput ();
140139 $ apiResponse = new ApiResponse ();
141140 $ user = $ this ->getUser ();
@@ -145,6 +144,15 @@ public function uploadContent(Request $request, UtilityService $util, LmsPostSer
145144 $ contentOptions = $ content ['content ' ];
146145 $ sectionOptions = $ content ['section ' ];
147146
147+ if (empty ($ contentOptions ) && empty ($ sectionOptions )){
148+ throw new \Exception ("Tried to update content without any content avaliable " );
149+ }
150+
151+ $ course = $ file ->getCourse ();
152+ if (!$ this ->userHasCourseAccess ($ course , $ sessionService )) {
153+ throw new \Exception ("You do not have permission to access this issue. " );
154+ }
155+
148156 $ lmsContent = $ lmsPost ->uploadContentToLms ($ contentOptions , $ sectionOptions , $ user );
149157 if (!$ lmsContent ){
150158 throw new \Exception ("Failed to change references in canvas " );
@@ -165,12 +173,17 @@ public function uploadContent(Request $request, UtilityService $util, LmsPostSer
165173 }
166174
167175 #[Route('/api/files/{file}/delete ' , methods: ['DELETE ' ], name: 'delete_file ' )]
168- public function deleteFile (FileItem $ file , UtilityService $ util , LmsPostService $ lmsPost , LmsFetchService $ lmsFetch ){
176+ public function deleteFile (SessionService $ sessionService , FileItem $ file , UtilityService $ util , LmsPostService $ lmsPost , LmsFetchService $ lmsFetch ){
169177 $ output = new ConsoleOutput ();
170178 $ apiResponse = new ApiResponse ();
171179 $ user = $ this ->getUser ();
172180
173181 try {
182+ $ course = $ file ->getCourse ();
183+ if (!$ this ->userHasCourseAccess ($ course , $ sessionService )) {
184+ throw new \Exception ("You do not have permission to access this issue. " );
185+ }
186+
174187 $ fileDeletionResponse = $ lmsPost ->deleteFileFromLms ($ file , $ user );
175188 if (!$ fileDeletionResponse || isset ($ fileDeletionResponse ->error )){
176189 throw new \Exception ("Failed to delete file! " );
0 commit comments