/** * Redirect process for a failed login * * @param sfRequest $request * @param sfUser $user * @return mixed */ protected function _redirectError($request, $user) { 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()); $this->redirect(sfConfig::get('sf_login_module') . '/' . sfConfig::get('sf_login_action')); }
/** * Executes sortProfileOption action * * @param sfRequest $request A request object */ public function executeSortProfileOption($request) { if ($request->isXmlHttpRequest()) { $request->checkCSRFProtection(); $parameters = $request->getParameterHolder(); $keys = $parameters->getNames(); foreach ($keys as $key) { if (preg_match('/^profile_options_\\d+$/', $key, $match)) { $order = $parameters->get($match[0]); for ($i = 0; $i < count($order); $i++) { $profileOption = Doctrine::getTable('ProfileOption')->find($order[$i]); if ($profileOption) { $profileOption->setSortOrder($i * 10); $profileOption->save(); } } break; } } } return sfView::NONE; }
/** * Загрузить данные пользователя, AJAX */ public function executeLoadUserData(sfRequest $request) { $this->forward404Unless($request->isXmlHttpRequest()); $result = array(); // будем возвращать $user = $this->getUser()->getUserRecord(); $subscribtion = Doctrine::getTable('ServiceSubscription')->getActiveUserServiceSubscription($user, Service::SERVICE_SMS); # Svel: # а не лучше ли мапить это во вью? $result['profile'] = array('login' => $user->getUserLogin(), 'name' => $user->getUserName(), 'mail' => $user->getUserMail(), 'timezone' => $user->getTimeZone(), 'integration' => array('email' => str_replace('@mail.easyfinance.ru', '', $user->getUserServiceMail())), 'reminders' => array('enabled' => is_object($subscribtion) ? 1 : 0, 'mailEnabled' => $user->getReminderMailDefaultEnabled(), 'mailDaysBefore' => $user->getReminderMailDays(), 'mailHour' => $user->getReminderMailHour(), 'mailMinutes' => $user->getReminderMailMinutes(), 'smsPhone' => $user->getSmsPhone(), 'smsEnabled' => $user->getReminderSmsDefaultEnabled(), 'smsDaysBefore' => $user->getReminderSmsDays(), 'smsHour' => $user->getReminderSmsHour(), 'smsMinutes' => $user->getReminderSmsMinutes())); $this->getResponse()->setHttpHeader('Content-Type', 'application/json; charset=utf-8'); return $this->renderText(json_encode($result)); }