Beispiel #1
0
 /**
  * Modificación perfil de usuario.
  * Metodo Obsoleto porque esto lo hacen en el dashboard
  */
 public function edit()
 {
     $user = $_SESSION['user'];
     if ($_SERVER['REQUEST_METHOD'] == 'POST') {
         $errors = array();
         // E-mail
         if ($_POST['change_email']) {
             if (empty($_POST['user_nemail'])) {
                 $errors['email'] = Text::get('error-user-email-empty');
             } elseif (!\Goteo\Library\Check::mail($_POST['user_nemail'])) {
                 $errors['email'] = Text::get('error-user-email-invalid');
             } elseif (empty($_POST['user_remail'])) {
                 $errors['email']['retry'] = Text::get('error-user-email-empty');
             } elseif (strcmp($_POST['user_nemail'], $_POST['user_remail']) !== 0) {
                 $errors['email']['retry'] = Text::get('error-user-email-confirm');
             } else {
                 $user->email = $_POST['user_nemail'];
             }
         }
         // Contraseña
         if ($_POST['change_password']) {
             /*
             * Quitamos esta verificacion porque los usuarios que acceden mediante servicio no tienen contraseña
             *
              if(empty($_POST['user_password'])) {
              $errors['password'] = Text::get('error-user-password-empty');
              }
              else
             */
             if (!Model\User::login($user->id, $_POST['user_password'])) {
                 $errors['password'] = Text::get('error-user-wrong-password');
             } elseif (empty($_POST['user_npassword'])) {
                 $errors['password']['new'] = Text::get('error-user-password-empty');
             } elseif (!\Goteo\Library\Check::password($_POST['user_npassword'])) {
                 $errors['password']['new'] = Text::get('error-user-password-invalid');
             } elseif (empty($_POST['user_rpassword'])) {
                 $errors['password']['retry'] = Text::get('error-user-password-empty');
             } elseif (strcmp($_POST['user_npassword'], $_POST['user_rpassword']) !== 0) {
                 $errors['password']['retry'] = Text::get('error-user-password-confirm');
             } else {
                 $user->password = $_POST['user_npassword'];
             }
         }
         // Avatar
         if (!empty($_FILES['user_avatar']['name'])) {
             $user->avatar = $_FILES['user_avatar'];
         }
         // tratar si quitan la imagen
         if (!empty($_POST['avatar-' . $user->avatar->id . '-remove'])) {
             $user->avatar->remove('user');
             $user->avatar = '';
         }
         // Perfil público
         $user->name = $_POST['user_name'];
         $user->about = $_POST['user_about'];
         $user->keywords = $_POST['user_keywords'];
         $user->contribution = $_POST['user_contribution'];
         $user->twitter = $_POST['user_twitter'];
         $user->facebook = $_POST['user_facebook'];
         $user->linkedin = $_POST['user_linkedin'];
         // Intereses
         $user->interests = $_POST['user_interests'];
         // Páginas Web
         if (!empty($_POST['user_webs']['remove'])) {
             $user->webs = array('remove' => $_POST['user_webs']['remove']);
         } elseif (!empty($_POST['user_webs']['add']) && !empty($_POST['user_webs']['add'][0])) {
             $user->webs = array('add' => $_POST['user_webs']['add']);
         } else {
             $user->webs = array('edit', $_POST['user_webs']['edit']);
         }
         if ($user->save($errors)) {
             // Refresca la sesión.
             $user = Model\User::flush();
             if (isset($_POST['save'])) {
                 throw new Redirection('/dashboard');
             } else {
                 throw new Redirection('/user/edit');
             }
         }
     }
     return new View('view/user/edit.html.php', array('user' => $user, 'errors' => $errors));
 }