/** * Зарегистрировать */ public function executeCreate(sfWebRequest $request) { $this->executeSignup(); $this->form->bind($request->getParameter($this->form->getName())); if ($this->form->isValid()) { $user = $this->form->save(); $loginzaData = $this->getUser()->getAttribute('loginza.identity', false, 'loginza'); // связываем юзера с идентификатором $identity = new Identity(); $identity->setIdentity($loginzaData['identity']); $identity->setProvider($loginzaData['provider']); $identity->setUser($user); $identity->save(); $this->getUser()->setAttribute('identity.id', $identity->getId()); // авторизуем $this->getUser()->signin($user, true); } if (!$this->form->hasErrors()) { if ($request->isXmlHttpRequest()) { return $this->renderText("<script type='text/javascript'>window.location.href='/';</script>"); } else { return $this->redirect('homepage'); } } $this->setTemplate('signup'); }