admin) { throw new HTTPException("Need Admin Access"); } $user = User::all(); return $response->withData(\App\Http\Resources\API\User::collection($user)); } public function getUserDetails(Request $request, Response $response, $id) { if(!Auth::check()) { abort(401); } if(!Auth::user()->admin) { throw new HTTPException("Need Admin Access"); } $user = User::query()->where("id", "=", $id)->firstOrFail(); $mails = Mail::query()->where("user_id", "=", $id)->get(); $data = []; $data["details"] = new \App\Http\Resources\API\User($user); $data["mails"] = $mails; return $response->withData($data); } public function saveUserDetails(Request $request, Response $response, $id) { if(!Auth::user()->admin) { throw new HTTPException("Need Admin Access"); } $user = User::query()->where("id", "=", $id)->firstOrFail(); $user->admin = (bool)$request->input("admin", false); $user->developer = (bool)$request->input("developer", false); $user->username = $request->input("username"); $user->saveOrFail(); return $response; } public function resendValidationMail(Request $request, Response $response, $id) { if(!Auth::user()->admin) { throw new HTTPException("Need Admin Access"); } $mail = Mail::query()->where("id", "=", $id)->firstOrFail(); $this->dispatch(new ValidateMailAddressJob($mail)); $response->setStatusCode(201); return $response; } public function changeMailStatus(Request $request, Response $response, $id) { if(!Auth::user()->admin) { throw new HTTPException("Need Admin Access"); } $mail = Mail::query()->where("id", "=", $id)->firstOrFail(); $mail->status = $request->input("status"); if($mail->status == "valide") { $user = User::query()->where("id", "=", $mail->user_id)->firstOrFail(); if($user->getMail() == null) { $mail->primary = true; } } $mail->saveOrFail(); $response->setStatusCode(200); return $response; } }