/**
  * 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');
     }
 }
Ejemplo n.º 2
0
 /**
  * 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);
     }
 }