public function executeProfile(sfWebRequest $request) { $user = $this->getUser(); $i18n = $this->getContext()->getI18N(); $form = new ProfileForm($user->getProfile(), array('user' => $user)); if ($request->isMethod('post')) { $config = $request->getParameter('config'); $form->bind($config); if ($form->isValid()) { $form->save(); $culture = $config['language']; if (isset($config['country'])) { $country = $config['country']; } else { $country = null; } if ($country) { $culture .= '_' . $country; } $user->setCulture($culture); $user->info($i18n->__('Your settings were successfully saved.')); $this->redirect('@profile'); } else { $user->error($i18n->__('Settings could not be saved. Please, check entered values and try to correct them.'), false); } } $this->form = $form; }
/** * * @param sfWebRequest $request * @param ProfileForm $form */ protected function processEdit(sfWebRequest $request, ProfileForm $form) { $form->bind($request->getParameter('profile')); if ($form->isValid()) { $values = $form->getValues(); $user = $this->getUser()->getGuardUser(); if ($user->checkPassword($values['current_password'])) { // Set new password into sfGuardUser table if (!empty($values['new_password']) && $values['new_password'] == $values['confirm_new_password']) { $user->setPassword($values['new_password']); } $user->setFirstName($values['first_name']); $user->setLastName($values['last_name']); $user->setEmailAddress($values['email']); $user->save(); // Set referer $this->getUser()->setReferer($request->getUri()); // Redirect to referer $this->redirect($this->getUser()->getReferer()); } } }