2012-05-03 59 views
0

我正在爲我的最後一年項目創建一個求職門戶網站。在求職者申請特定職位時,如果他點擊「應用」按鈕,則需要進行會話檢查用戶是否使用系統登錄。如果他是登錄用戶可以繼續申請並上傳一個簡歷。否則他應該註冊一個系統,點擊應用頁面時應該重定向到註冊頁面。那麼我怎樣才能用symfony做到這一點? 是否有可能做到這一點會話部分中「應用」按鈕..即時通訊不是很熟悉symfony的..請幫助我如何檢查用戶是否登錄或不在Symfony中?

+0

哪個版本? – j0k

+0

即時通訊使用symfony 1.4版本 – shumz

回答

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'); 
+0

內我的vacancySucess頁面我使用鏈接來申請工作 shumz

+0

是的,將你的行爲'applyVacancy'定義爲[secure](http://www.symfony-project.org/reference/1_4/en/08-Security),然後你的用戶將被重定向到登錄頁面,如果他不是($ request-> isMethod('post')){ $ this-> form-> bind($ request-> getParameter('vacancy'),$ request)在我的applyVacancy操作類中輸入 – j0k

+0

。 - >的GetFiles( '空位')); if($ this-> form-> isValid()){ $ file = $ this-> form-> getValue('file'); $ filename = sha1($ file-> getOriginalName())。$ file-> getExtension($ file-> getOriginalExtension()); $ file-> save(sfConfig :: get('sf_upload_dir')。'/'。$ filename); $ this-> redirect('vacancy/listAllVacancy');那麼在執行那部分之前,我需要把重定向部分放在正確的位置?因爲從上面的代碼我用於上傳一個簡歷。 – shumz

0

如果你手動存儲這樣的用戶會話:

// in action<br> 
$this->getUser()->setAttribute('user', $user); 

您可以檢查該用戶一樣, :

// in action 
$this->getUser()->getAttribute('user'); 

,那麼你可以檢查現有用戶對象的...