@@ -166,6 +166,7 @@ public function getConfiguredScopes(): JsonResponse
166166 ),
167167 new OA \Response (response: 400 , description: 'Bad request ' ),
168168 new OA \Response (response: 401 , description: 'Unauthorized ' ),
169+ new OA \Response (response: 403 , description: 'Forbidden ' ),
169170 ]
170171 )]
171172 public function postNewUser (NewUser $ request ): JsonResponse |UserResource
@@ -211,6 +212,7 @@ public function postNewUser(NewUser $request): JsonResponse|UserResource
211212 new OA \Response (response: 200 , description: 'Successful operation ' ),
212213 new OA \Response (response: 400 , description: 'Bad request ' ),
213214 new OA \Response (response: 401 , description: 'Unauthorized ' ),
215+ new OA \Response (response: 403 , description: 'Forbidden ' ),
214216 ]
215217 )]
216218 public function deleteUser (int $ user_id ): JsonResponse
@@ -225,4 +227,74 @@ public function deleteUser(int $user_id): JsonResponse
225227
226228 return response ()->json ();
227229 }
230+
231+ #[OA \Post(
232+ path: '/api/v2/users/{user_id}/activate ' ,
233+ description: 'Activates a user ' ,
234+ summary: 'Activates a deactivated SeAT user. Returns successfully if already activated. ' ,
235+ security: [
236+ [
237+ 'ApiKeyAuth ' => [],
238+ ],
239+ ],
240+ tags: [
241+ 'Users ' ,
242+ ],
243+ parameters: [
244+ new OA \Parameter (name: 'user_id ' , description: 'A SeAT User ID ' , in: 'path ' , required: true , schema: new OA \Schema (type: 'integer ' )),
245+ ],
246+ responses: [
247+ new OA \Response (response: 200 , description: 'Successful operation ' ),
248+ new OA \Response (response: 400 , description: 'Bad request ' ),
249+ new OA \Response (response: 401 , description: 'Unauthorized ' ),
250+ new OA \Response (response: 403 , description: 'Forbidden ' ),
251+ ]
252+ )]
253+ public function postActivateUser (int $ user_id ): JsonResponse
254+ {
255+ $ user = User::findOrFail ($ user_id );
256+
257+ if ($ user ->name == 'admin ' )
258+ return response ()->json ('You cannot modify this user. ' , 403 );
259+
260+ $ user ->active = true ;
261+ $ user ->save ();
262+
263+ return response ()->json ();
264+ }
265+
266+ #[OA \Post(
267+ path: '/api/v2/users/{user_id}/deactivate ' ,
268+ description: 'Deactivates a user ' ,
269+ summary: 'Deactivates a SeAT user. Returns successfully if already deactivated. ' ,
270+ security: [
271+ [
272+ 'ApiKeyAuth ' => [],
273+ ],
274+ ],
275+ tags: [
276+ 'Users ' ,
277+ ],
278+ parameters: [
279+ new OA \Parameter (name: 'user_id ' , description: 'A SeAT User ID ' , in: 'path ' , required: true , schema: new OA \Schema (type: 'integer ' )),
280+ ],
281+ responses: [
282+ new OA \Response (response: 200 , description: 'Successful operation ' ),
283+ new OA \Response (response: 400 , description: 'Bad request ' ),
284+ new OA \Response (response: 401 , description: 'Unauthorized ' ),
285+ new OA \Response (response: 403 , description: 'Forbidden ' ),
286+ ]
287+ )]
288+ public function postDeactivateUser (int $ user_id ): JsonResponse
289+ {
290+ $ user = User::findOrFail ($ user_id );
291+
292+ if ($ user ->name == 'admin ' )
293+ return response ()->json ('You cannot modify this user. ' , 403 );
294+
295+ $ user ->active = false ;
296+ $ user ->save ();
297+
298+ return response ()->json ();
299+ }
228300}
0 commit comments