我正在为我的最后一年项目创建一个职位门户。当他/她点击“应用”按钮检查用户是否使用系统登录时,我需要在求职者申请特定空缺时进行会话。如果他已登录,则用户可以继续申请并上传简历。否则他应该注册一个系统,当点击应用页面应该重定向到注册页面。那么我怎么能用symfony做到这一点? 是否有可能在“应用”按钮内执行此会话部分..我不太熟悉symfony ..请帮助
答案 0 :(得分:0)
你在sfBasicSecurityUser中有一个函数告诉你if the user is connected:
// in template
$sf_user->isAuthenticated();
// in action
$this->getUser()->isAuthenticated();
在将用户重定向到登录系统之前,您可以存储引用者using ->getReferer():
$request->getReferer();
如果可以,请使用sfGuardDoctrinePlugin来处理您的用户管理(用户,群组,权限,登录,注册等)。
修改强>
因此,在您的登录操作中,您可以添加以下内容:
// store the referer url in the session for a future use, if it's doesn't already exists
if($this->getUser()->getAttribute('referer_url', null, 'login'))
{
$this->getUser()->setAttribute('referer_url', $request->getReferer(), 'login');
}
在您的登录操作中:
// retrieve the referer in session, otherwise the one in request, otherwise redirect to homepage
$signinUrl = $this->getUser()->getAttribute('referer_url', $request->getReferer(), 'login');
$this->getUser()->getAttributeHolder()->remove('referer_url');
return $this->redirect('' != $signinUrl ? $signinUrl : '@homepage');
编辑2:
如果您想要自定义重定向,请在重定向到登录页面之前进行设置:
$this->getUser()->setAttribute('referer_url', 'my/custom/url', 'login');
答案 1 :(得分:0)
如果您手动存储用户会话:
// in action<br>
$this->getUser()->setAttribute('user', $user);
你可以像这样检查这个用户:
// in action
$this->getUser()->getAttribute('user');
然后你可以检查用户对象的存在...