/** * Save user details * * @return string */ public function saveDetails() { try { //User must be logged in if (!$this->auth->check()) { //Notify error $this->keeper->put('notificationError', 'You must log in to continue'); //Return to login redirect('/login', 'location'); } //Set validation rules $this->form_validation->set_rules('hobbies', 'Hobbies', 'required|xss_clean'); $this->form_validation->set_rules('interests', 'Interests', 'required|xss_clean'); $this->form_validation->set_rules('about', 'About', 'required|xss_clean'); //Validation fails if ($this->form_validation->run() === false) { //Keep error messages $this->errorBag->logValidationErrors(['hobbies', 'interests', 'about'])->preserveInputs(); //Go back to edit page user page redirect($this->auth->user()->profile_uri . '/add-edit-details/' . $workId, 'location'); } //Save the user details $results = $this->userRepo->saveUserDetails($this->auth->user(), $_POST); //Could not save if ($results == null) { //Alert error to user throw new Exception('Could save data.Try again later', 422); } //Notify success $this->keeper->put('notificationSuccess', 'Details saved'); //All ok redirect to User profile redirect($this->auth->user()->profile_uri . '/about', 'location'); } catch (Exception $e) { //Unexpected error //Notify error $this->keeper->put('notificationError', $e->getMessage()); //Go back to profile page redirect($this->auth->user()->profile_uri . '/about', 'location'); } }
/** * Saves the user profile picture * * @return string */ public function postSaveUserProfilePicture() { try { //User must be logged in if (!$this->auth->check()) { //Raise error throw new Exception('You must login', 401); } //Generate filename $filename = Uuid::uuid4()->toString(); //Resize to 100x100 $image = $this->imageHandler->resizeImage($this->imageHandler->makeImage($_FILES['profile_picture']['tmp_name'])->encode('png'), 200, 200); //Save the image $results = $this->imageHandler->saveImage($image, public_path('img/profile-pictures'), $filename . '.png'); //Could not save image if ($results == false) { //Raise error throw new Exception('Unable to save image', 422); } //Delete old picture if ($this->auth->user()->hasProfilePic()) { //Delete the old profile picture $this->filesystem->delete('public/img/profile-pictures/' . $this->auth->user()->detail->getOriginal('profile_picture') . '.png'); } //Save the new profile picture of the user $saved = $this->userRepo->saveUserDetails($this->auth->user(), ['profile_picture' => $filename]); //Could not save picture if ($saved == null) { //Raise error throw new Exception('Could not save image', 422); } //Go back to previous page redirect($this->agent->referrer(), 'location'); } catch (Exception $e) { //Unexpected error show_error($e->getMessage(), 500); } }