示例#1
0
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
 public function executeLogin(sfWebRequest $request)
 {
     $this->redirectIf($this->getUser()->isAuthenticated(), '@homepage');
     $this->form = new LoginForm();
     if ($request->hasParameter('l_err') && $request->getParameter('l_err', '0') == '1') {
         $error = new sfValidatorError(new savedValidator(), 'Bad login or password');
         $this->form->getErrorSchema()->addError($error);
     }
     if ($request->isMethod('post')) {
         $this->form->bind($request->getParameter('login'));
         if ($this->form->isValid()) {
             $this->getUser()->setAuthenticated(true);
             sfContext::getInstance()->getLogger()->debug('LOGIN: '******'username') . ' ' . $this->form->user->getId());
             $this->getUser()->setAttribute('db_user_id', $this->form->user->getId());
             $this->getUser()->setAttribute('db_user_type', $this->form->user->getDbUserType());
             if (in_array($this->form->user->getSelectedLang(), array('en', 'fr', 'nl'))) {
                 $this->getUser()->setCulture($this->form->user->getSelectedLang());
             }
             $this->getUser()->setHelpIcon(Doctrine::getTable("Preferences")->getPreference($this->form->user->getId(), 'help_message_activated', true));
             if ($request->getReferer()) {
                 $this->redirect($request->getReferer());
             } else {
                 $this->redirect('@homepage');
             }
         } else {
             sfContext::getInstance()->getLogger()->notice('Bad username or password');
         }
     }
 }
示例#2
0
 public function executeSelect(sfWebRequest $request)
 {
     $scm_id = $request->getParameter('scm_id');
     $this->forward404Unless($scm_id);
     $this->getUser()->setSelectedScmId($scm_id);
     // redirect back to the referrer or if not set; the homepage
     $this->redirect($request->getReferer() ? $request->getReferer() : '@homepage');
 }
示例#3
0
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
 public function executeSwitch(sfWebRequest $request)
 {
     $this->getUser()->setCulture($request->getParameter('langage'));
     if ($request->isMethod('POST') && $request->getReferer()) {
         $this->redirect($request->getReferer());
     } else {
         $this->redirect('@homepage');
     }
 }
 /**
  * Renders a form that makes it possible for the user to login
  * @param sfWebRequest $request
  */
 public function executeLogin(sfWebRequest $request)
 {
     //set the referrer used when loggin in.
     $this->getUser()->setReferer($this->getContext()->getActionStack()->getSize() > 1 ? $request->getUri() : $request->getReferer());
     $this->form = new sfAuthSigninForm();
     if ($request->isMethod('post')) {
         $this->form->bind($request->getParameter('sf_auth_signin'));
         if ($this->form->isValid()) {
             $this->getUser()->setFlash('success', $this->getContext()->getI18N()->__('Welcome back :)'));
             $referer = $this->getUser()->getReferer($request->getReferer());
             $this->redirectUnless(empty($referer), $referer);
             $this->redirect('@homepage');
         }
     }
 }
 public function executeLogin(sfWebRequest $request)
 {
     global $CFG, $SESSION;
     if ($CFG->current_app->isMoodle()) {
         // Check to see if the logged out user has a cookie showing what institution they are from
         $institution = $CFG->current_app->getInstitutionFromCookie();
         $url = $CFG->current_app->getInstitutionJumpUrl($SESSION->wantsurl, $institution);
         if (!$url) {
             $url = $CFG->current_app->getInstitutionJumpUrl($SESSION->wantsurl);
         }
         // If a unauthenicated user clicks on a course instance link from the course category page
         // in Moodle, we can assume that they are probably a new user on the system. Therefore,
         // we set up a registration type gcr_wants_url record to bring them back to the course
         // after registration is complete.
         if (strpos($request->getReferer(), $CFG->current_app->getAppUrl() . '/course/category.php') === 0 && strpos($SESSION->wantsurl, $CFG->current_app->getAppUrl() . '/course/view.php') === 0) {
             if (!$institution) {
                 $institution = $CFG->current_app->getInstitution();
             }
             $wants_url = GcrWantsUrlTable::createWantsUrl('simple', $institution, $url);
             $this->redirect($institution->getUrl() . '/eschool/registration?url=' . $wants_url);
         } else {
             $this->redirect($url);
         }
     } else {
         $this->redirect($CFG->current_app->getAppUrl());
     }
 }
示例#6
0
 /**
  * Saves new or update role. Echoes error/success message
  */
 public function executeSave(sfWebRequest $request)
 {
     if (!$this->getUser()->hasCredential(array('Administrator'), false)) {
         $this->getUser()->setFlash("warning", 'You don\'t have permission to access this url ' . $request->getReferer());
         $this->redirect('dashboard/index');
     }
     $id = $request->getParameter('id');
     if ($id) {
         $role = RolePeer::retrieveByPK($id);
         if (!$role instanceof Role) {
             return $this->renderText('<span style="color:red;">Role not found or is removed!</span>');
         }
         $form = new RoleForm($role);
     } else {
         $form = new RoleForm();
     }
     unset($form['_csrf_token']);
     $form->bind($request->getPostParameters());
     if ($form->isValid()) {
         $form->save();
         return $this->renderText('Role has been successfully saved!');
     } else {
         # FIXME display other field errors
         echo 'e1';
         # has error
         echo '<span style="color:red;">' . $form['title']->getError()->getMessage() . '</span>';
     }
     return sfView::NONE;
 }
示例#7
0
 public function executeSwitch(sfWebRequest $request)
 {
     $referer = $request->getReferer();
     if ($request->hasParameter("lang")) {
         $lang = $request->getParameter('lang');
     } else {
         $lang = $request->getPreferredCulture(array('en', 'hu'));
     }
     if ($lang != 'en' && $lang != 'hu') {
         $lang = $request->getPreferredCulture(array('en', 'hu'));
     }
     $this->getUser()->setCulture($lang);
     $pos = strpos($referer, '/hu/');
     if ($pos === false) {
         $pos = strpos($referer, '/en/');
         if ($pos === false) {
             $whereto = false;
         } else {
             $eleje = substr($referer, 0, $pos);
             $whereto = substr($referer, $pos + 4);
         }
     } else {
         $eleje = substr($referer, 0, $pos);
         $whereto = substr($referer, $pos + 4);
     }
     if (!$whereto) {
         $this->redirect('localized_homepage');
     } else {
         $this->redirect($eleje . "/" . $lang . "/" . $whereto);
     }
 }
示例#8
0
 public function executeDelete(sfWebRequest $request)
 {
     $vars = Doctrine::getTable('TransUnit')->createQuery()->from('TransUnit tu')->where('tu.source = ?', $this->getRoute()->getObject()->getSource())->andWhere('tu.variable_id IS NULL')->execute();
     $this->getUser()->setFlash('notice', 'Translation deleted.');
     $vars->delete();
     $this->redirect($request->getReferer());
 }
示例#9
0
 public function executeAdd(sfWebRequest $r)
 {
     if ($r->isMethod('post')) {
         // Loading form
         $f = new PmMessagesForm();
         // Binding fields
         $f->bind($r->getParameter($f->getName()));
         // If form is valid
         if ($f->isValid()) {
             // We can save it.
             $m = $f->save();
             // Update topic with last message
             Doctrine_Query::create()->update("PmTopics")->set("updated_at", '"' . $m->getCreatedAt() . '"')->where('id = ?', $m->getPmid())->execute();
             // Set every people in this MP to unreaded
             Doctrine_Query::create()->update('PmParticipants')->set('readed', 0)->where('mpid = ?', $m->getPmid())->andWhere('mpmid != ?', $this->getUser()->getAttribute("id"))->execute();
             // Send notif
             $users = Doctrine::getTable('PmParticipants')->findByMpid($m->getPmid());
             $pmTopic = $m->PmTopics;
             foreach ($users as $user) {
                 Doctrine::getTable('Notifications')->setNotification("sent a new private message.", "email_add.png", '<strong>' . $pmTopic->getTitle() . '</strong>', '@pm?slug=' . $pmTopic->getSlug())->setOwner($user->getMpmid())->save();
             }
             // Redirect to topic
             $this->redirect($r->getReferer());
         }
     } else {
         $this->forward404();
     }
 }
示例#10
0
 /**
  * Fonction de redirection au changement de profils dans le menu latéral gauche.
  * @param sfWebRequest $request
  * @return type 
  */
 public function executeForwardTo(sfWebRequest $request)
 {
     //récupération et parsing de l'URL référente.
     $referer = $request->getReferer();
     $url = parse_url($referer);
     $path = trim($url['path'], '/');
     if (!sfConfig::get('sf_no_script_name') && ($pos = strpos($path, '/'))) {
         $path = substr($path, $pos + 1);
     }
     //récupération et setting des paramètres du profils
     $params = sfContext::getInstance()->getRouting()->findRoute('/' . $path);
     $params['parameters']['profile_id'] = $request->getParameter('profile_id');
     $params['parameters']['profile_ref'] = $request->getParameter('profile_ref');
     $params['parameters']['profile_name'] = Doctrine_Core::getTable('EiProfil')->findOneByProfileRefAndProfileId($request->getParameter('profile_ref'), $request->getParameter('profile_id'))->getName();
     $URLParams = array('project_id' => $request->getParameter('project_id'), 'project_ref' => $request->getParameter('project_ref'), 'profile_id' => $params['parameters']['profile_id'], 'profile_ref' => $params['parameters']['profile_ref'], 'profile_name' => $params['parameters']['profile_name'], 'ei_scenario_id' => $request->getParameter('ei_scenario_id'), 'action' => $params['parameters']['action']);
     // Ajout des paramètres obligatoires manquants.
     $paramsOmis = array_diff_key($params['parameters'], $URLParams, array("module" => "", "sf_culture" => ""));
     foreach ($paramsOmis as $ind => $p) {
         $URLParams[$ind] = $p;
     }
     //Avant la redirection , on change les données du profil en session utilisateur
     $this->getUser()->setAttribute("current_profile_name", $params['parameters']['profile_name']);
     $this->getUser()->setAttribute("current_profile_id", $params['parameters']['profile_id']);
     $this->getUser()->setAttribute("current_profile_ref", $params['parameters']['profile_ref']);
     return $this->redirect($params['name'], $params['parameters']);
 }
示例#11
0
 public function executeShowby(sfWebRequest $request)
 {
     if (in_array($this->getRequestParameter('val'), categoryPageActions::$showByAr)) {
         $this->getUser()->setAttribute('showby', $this->getRequestParameter('val'));
     }
     // remove "page=" parameter to prevent last page error when increasing "showby"
     $link = preg_replace('/(&?)page=(\\d+)/', '', $request->getReferer());
     $this->redirect($link);
 }
示例#12
0
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
 public function executeCreate(sfWebRequest $request)
 {
     $form = new NoteForm();
     if ($form->bindAndSave($request->getParameter('note'))) {
         $this->redirectFromCreate($form);
     } else {
         $this->redirect($request->getReferer());
     }
 }
示例#13
0
 public function executeFilter(sfWebRequest $request)
 {
     $this->filters = $this->configuration->getFilterForm();
     $this->filters->bind($request->getParameter($this->filters->getName()));
     if ($this->filters->isValid()) {
         $this->configuration->setFilters($this->filters->getValues());
     }
     $this->redirect($request->getReferer());
 }
示例#14
0
 public function executeCardLogin(sfWebRequest $request)
 {
     if ($this->getUser()->isAuthenticated()) {
         $this->redirect('home/index');
         $request->setAttribute('referer', $request->getReferer());
     }
     $this->form = new CardLoginForm();
     $this->cardLoginError = $this->getUser()->hasFlash('cardLoginError');
 }
 public function executeSwitch(sfWebRequest $request)
 {
     $user = $this->getUser();
     $available_cultures = $user->getAvailableCultures();
     if (!array_key_exists($request->getParameter('lang'), $available_cultures)) {
         $this->forward($this->getModuleName(), 'oops');
     }
     $user->setCulture($request->getParameter('lang'));
     $this->redirect($request->getReferer());
 }
  public function executeResend(sfWebRequest $request)
  {

    $this->forward404Unless(
      $ds_class_letter = $this->getRoute()->getObject() );

    $count = $ds_class_letter->addFromEnrolments();

    $this->getUser()->setFlash('notice', sprintf('Diese Email wird jetzt an %s neue Empfänger geschickt.', $count ) );
    $this->redirect( $request->getReferer() );
  }
示例#17
0
 public function executeReport(sfWebRequest $request)
 {
     $this->form = new CommentReportForm(null, array('id_comment' => $request->getParameter('id'), 'referer' => $request->getReferer() . "#" . $request->getParameter('num')));
     if ($request->isMethod('post')) {
         $this->form->bind($request->getParameter($this->form->getName()));
         if ($this->form->isValid()) {
             $this->form->save();
             $this->redirect("@commentReportSent");
         }
     }
 }
 public function executeDelete(sfWebRequest $request)
 {
     $request->checkCSRFProtection();
     $accountentry = $this->getRoute()->getObject();
     $account = $accountentry->getAccount();
     $this->dispatcher->notify(new sfEvent($this, 'admin.delete_object', array('object' => $this->getRoute()->getObject())));
     if ($accountentry->delete()) {
         $this->getUser()->setFlash('notice', 'The item was deleted successfully.');
     }
     $this->redirect($request->getReferer());
 }
示例#19
0
 /**
  * Сменить валюту
  */
 public function executeChange(sfWebRequest $request)
 {
     $currency = myCurrencyTable::getInstance()->findOneById((int) $request->getParameter('currency'));
     $this->forward404Unless($currency);
     $this->getUser()->setAttribute('id', $currency->getId(), 'currency');
     $this->getUser()->setAttribute('format', $currency->getFormat(), 'currency');
     if ($referer = $request->getReferer()) {
         return $this->redirect($referer);
     } else {
         return $this->redirect('homepage');
     }
 }
示例#20
0
 public function executePriority(sfWebRequest $request)
 {
     switch ($request->getParameter('order')) {
         case 'up':
             Doctrine::getTable('ProductFile')->increasePriority($request->getParameter('id'));
             break;
         case 'down':
             Doctrine::getTable('ProductFile')->decreasePriority($request->getParameter('id'));
             break;
     }
     $this->redirect($request->getReferer());
 }
示例#21
0
 public function executeDelete(sfWebRequest $request)
 {
     #security
     if (!$this->getUser()->hasCredential(array('Administrator', 'Staff', 'Volunteer'), false)) {
         $this->getUser()->setFlash("warning", 'You don\'t have permission to access this url ' . $request->getReferer());
         $this->redirect('dashboard/index');
     }
     $request->checkCSRFProtection();
     $this->forward404Unless($event_reservation = EventReservationPeer::retrieveByPk($request->getParameter('id')), sprintf('Object event_reservation does not exist (%s).', $request->getParameter('id')));
     $event_reservation->delete();
     $this->redirect('eventReservation/index');
 }
示例#22
0
 public function executeDelete(sfWebRequest $request)
 {
     if (!$this->getUser()->hasCredential(array('Administrator'), false)) {
         $this->getUser()->setFlash("warning", 'You don\'t have permission to access this url ' . $request->getReferer());
         $this->redirect('dashboard/index');
     }
     $request->checkCSRFProtection();
     $this->forward404Unless($wing_leader = WingLeaderPeer::retrieveByPk($request->getParameter('id')), sprintf('Object wing_leader does not exist (%s).', $request->getParameter('id')));
     $wing_leader->delete();
     $this->getUser()->setFlash("success", "Wing Leader Deleted Successfully");
     $this->redirect("person/view?id=" . $request->getParameter("person_id"));
 }
 public function executeSend(sfWebRequest $request)
 {
     $this->forward404Unless($request->isMethod('post'));
     if ($this->getUser()->getApiUserId()) {
         sfConfig::set('app_recaptcha_active', false);
     }
     $this->form = new FeedbackForm();
     if ($this->getUser()->getApiUserId()) {
         unset($this->form['name']);
         unset($this->form['email']);
     }
     $requestData = $request->getParameter($this->form->getName());
     if (sfConfig::get('app_recaptcha_active', false)) {
         $requestData['challenge'] = $this->getRequestParameter('recaptcha_challenge_field');
         $requestData['response'] = $this->getRequestParameter('recaptcha_response_field');
     }
     $this->form->bind($requestData);
     if ($this->form->isValid()) {
         if ($this->getUser()->getApiUserId()) {
             $user_data = Api::getInstance()->get('user/' . $this->getUser()->getApiUserId(), true);
             $user = ApiDoctrine::createQuickObject($user_data['body']);
         } else {
             $user = null;
         }
         $values = $this->form->getValues();
         $name = $this->getUser()->getApiUserId() ? $user->getPreferredName() ? $user->getPreferredName() : $user->getFullName() : $this->form->getValue('name');
         $email = $this->getUser()->getApiUserId() ? $user->getEmailAddress() : $this->form->getValue('email');
         $signinUrl = $this->getUser()->getReferer($request->getReferer());
         $message = $name . ' ' . $email . "\n" . $values['message'] . "\nReferer:" . $signinUrl;
         $to = ProjectConfiguration::getApplicationFeedbackAddress();
         $subjects = sfConfig::get('app_feedback_subjects', array());
         $subject = ProjectConfiguration::getApplicationName() . ': ' . (array_key_exists($values['subject'], $subjects) ? $subjects[$values['subject']] : $values['subject']);
         $from_address = $this->getUser()->getApiUserId() ? "{$name} <{$email}>" : ProjectConfiguration::getApplicationEmailAddress();
         AppMail::sendMail($to, $from_address, $subject, $message);
         $this->getUser()->setFlash('notice', 'Your message has been sent to ' . ProjectConfiguration::getApplicationName() . '.');
         return $this->redirect('' != $signinUrl ? $signinUrl : '@homepage');
     }
     $this->getUser()->setReferer($this->getContext()->getActionStack()->getSize() > 1 ? $request->getUri() : $request->getReferer());
     $this->setTemplate('feedback');
 }
示例#24
0
 public function executeLogin(sfWebRequest $request)
 {
     $this->form = new uapvLoginForm();
     if ($request->isMethod('post')) {
         $form_info = $request->getParameter('login');
         $this->form->bind($form_info);
         if ($this->form->isValid()) {
             // Quel type d'authentification a été choisit lors de l'installation?
             $auth_type = sfConfig::get('app_authentication_type');
             if ($auth_type == 'bdd') {
                 $bd = new uapvDB();
                 $resp = $bd->checkPassword($form_info['username'], $form_info['password']);
                 if ($resp) {
                     $this->getContext()->getUser()->signIn($form_info['username']);
                     $this->getContext()->getUser()->addCredentials('member');
                     $this->redirect($request->getReferer());
                 } else {
                     $this->getContext()->getUser()->setFlash('error', 'Identifiant ou mot de passe erroné.');
                 }
             } else {
                 if ($auth_type == 'ldap') {
                     $ldap = new uapvLdap();
                     $this->getContext()->set('ldap', $ldap);
                     // "uid=..." à changer, pour utiliser les paramètres de configuration
                     // pour que ça marche avec un LDAP qui n'a pas des uid mais des trululuid.
                     $resp = $ldap->checkPassword(sfConfig::get('app_profile_var_translation_uid', 'uid') . "=" . $form_info['username'], $form_info['password']);
                     if ($resp) {
                         // Si l'utilisateur a entré le bon login et le bon mdp, on l'autorise
                         // à accéder à l'appli.
                         $this->getContext()->getUser()->signIn($form_info['username']);
                         $this->getContext()->getUser()->addCredentials('member');
                         $this->redirect($request->getReferer());
                     } else {
                         $this->getContext()->getUser()->setFlash('error', 'Identifiant ou mot de passe erroné.');
                     }
                 }
             }
         }
     }
 }
示例#25
0
 public function executePluginRemove(sfWebRequest $request)
 {
     $pluginAuthor = $this->getRoute()->getObject();
     if ($this->getUser()->isUser($pluginAuthor['Author'])) {
         $plugin = $pluginAuthor['Plugin'];
         $pluginAuthor->delete();
         $this->getUser()->setFlash('notice', sprintf('You have removed "%s" from your plugins', $plugin));
     } else {
         $this->getUser()->setFlash('error', 'You do not have the permission to perform this function');
     }
     $referer = $request->getReferer();
     $this->redirect($referer ? $referer : '@homepage');
 }
示例#26
0
 /**
  * Execute Login action
  *
  * @param sfWebRequest $request A request object
  */
 public function executeLogin(sfWebRequest $request)
 {
     $user = $this->getUser();
     if ($user->isAuthenticated()) {
         return $this->redirect('@homepage');
     }
     $this->form = new LoginForm();
     if ($request->isMethod('post')) {
         $this->form->bind($request->getParameter($this->form->getName()));
         if ($this->form->isValid()) {
             $values = $this->form->getValues();
             $this->getUser()->signin($values['user'], array_key_exists('remember', $values) ? $values['remember'] : false);
             $signinUrl = $user->getReferer($request->getReferer());
             return $this->redirect('' != $signinUrl ? $signinUrl : '@homepage');
         }
     } else {
         $user->setReferer($this->getContext()->getActionStack()->getSize() > 1 ? $request->getUri() : $request->getReferer());
         if ($this->getModuleName() != 'auth') {
             return $this->redirect('@login');
         }
         $this->getResponse()->setStatusCode(401);
     }
 }
示例#27
0
 public function executeSignin(sfWebRequest $request)
 {
     $login = $request->getParameter('login');
     $pwd = $request->getParameter('pwd');
     if ($login != null && $pwd != null) {
         try {
             $result_connect = MyFunction::connexionDistante($login, $pwd);
             //Si le fichier est vide
             if ($result_connect == null) {
                 throw new Exception('Empty File . Contact administrator');
             }
         } catch (Exception $e) {
             $this->getUser()->setFlash('error_connexion', $e->getMessage());
             $this->redirect('@homepage');
         }
         if (is_array($result_connect)) {
             $guard_tab = $result_connect['guard_tab'];
             //On vérifie que l'utilisateur n'est pas désactivé coté script
             if ($guard_tab['is_active'] != 1) {
                 $this->getUser()->setFlash('error_connexion', sprintf('Inactive user . Contact administrator to no more about'));
                 $this->redirect('@homepage');
             }
             $ei_user_tab = $result_connect['ei_user_tab'];
             $guard_user = Doctrine_Core::getTable("sfGuardUser")->findOneBy('username', $guard_tab['username']);
             /*
              * Si l'utilisateur se connecte pour la premiere fois 
              * ou s'il n'est pas enregistré , on le crée 
              */
             if (!$guard_user || $guard_user == null) {
                 $guard_user = Doctrine_Core::getTable('sfGuardUser')->createUser($guard_tab, $ei_user_tab);
             }
             $this->getUser()->setAttribute('user_id', $guard_user->getId(), 'sfGuardSecurityUser');
             $this->getUser()->setAuthenticated(true);
             $this->getUser()->setFlash('valid_connexion', sprintf('connexion accepted'));
             //$this->redirect('@recharger_projet');
             $signinUrl = $request->getReferer();
             return $this->redirect('' != $signinUrl ? $signinUrl : '@homepage');
         } else {
             if ($result_connect == null) {
                 $this->getUser()->setFlash('error_connexion', sprintf('Connexion error , unexpected raison ... Contact administrator'));
             } else {
                 $this->getUser()->setFlash('error_connexion', sprintf($result_connect));
             }
             $this->redirect('@homepage');
         }
     } else {
         $this->getUser()->setFlash('error_connexion', sprintf('Empty fields.'));
     }
     return $this->redirect('@homepage');
 }
示例#28
0
 public function executeChange(sfWebRequest $request)
 {
     $languages = sfConfig::get('app_languages');
     //array('fr','en') ; // it would be nice if this variable
     // could be global to the application...
     $lang = $request->getParameter('lang');
     if (array_key_exists($lang, $languages)) {
         $user = Doctrine::getTable('user')->find($this->getUser()->getProfileVar(sfConfig::get('app_user_id')));
         $user->setLanguage($lang);
         $user->save();
         $this->getUser()->setCulture($lang);
     }
     $this->redirect($request->getReferer());
 }
 /**
  *
  * @param sfWebRequest $request
  * @return type 
  */
 public function executeSignin($request)
 {
     $user = $this->getUser();
     if ($user->isAuthenticated()) {
         return $this->redirect('@homepage');
     }
     $class = sfConfig::get('app_sf_guard_plugin_signin_form', 'sfGuardFormSignin');
     $this->form = new $class();
     if ($request->isMethod('post')) {
         $this->form->bind($request->getParameter('signin'));
         if ($this->form->isValid()) {
             $values = $this->form->getValues();
             $this->getUser()->signin($values['user'], array_key_exists('remember', $values) ? $values['remember'] : false);
             // always redirect to a URL set in app.yml
             // or to the referer
             // or to the homepage
             $signinUrl = sfConfig::get('app_sf_guard_plugin_success_signin_url', $user->getReferer($request->getReferer()));
             if (!$request->isXmlHttpRequest()) {
                 return $this->redirect('' != $signinUrl ? $signinUrl : '@homepage');
             }
         }
     } else {
         if ($request->isXmlHttpRequest()) {
             $this->getResponse()->setHeaderOnly(true);
             $this->getResponse()->setStatusCode(401);
             return sfView::NONE;
         }
         // if we have been forwarded, then the referer is the current URL
         // if not, this is the referer of the current request
         $user->setReferer($this->getContext()->getActionStack()->getSize() > 1 ? $request->getUri() : $request->getReferer());
         $module = sfConfig::get('sf_login_module');
         if ($this->getModuleName() != $module) {
             return $this->redirect($module . '/' . sfConfig::get('sf_login_action'));
         }
         $this->getResponse()->setStatusCode(401);
     }
 }
  public function executeToggleComment(sfWebRequest $request)
  {
    $post = $this->getRoute()->getObject();
    $post->setAllowComments(!$post->getAllowComments());
    $post->save();

    if($referer = $request->getReferer())
    {
      $this->redirect($referer);
    }
    else
    {
      $this->redirect('@sf_simple_blog_post');
    }
  }