2014-09-12 86 views
1

我想在我的SF2/FOSUserBundle應用程序中實現以下內容。在Symfony2/FosUSerBundle中管理員審查的註冊

這個想法是讓用戶使用標準註冊表格註冊自己。然後他們會收到一封帶有確認鏈接的電子郵件。當用戶打開鏈接時,它會驗證他們的電子郵件地址(重要)。但是,我希望用戶尚未啓用。這需要管理員的操作來啓用用戶。

我設法有電子郵件確認部分,這是很好的,但是當用戶打開確認鏈接,他們立即啓用...有沒有辦法改變這種行爲。

什麼是最好的辦法做到這一點(我敢打賭,我不是第一個嘗試)?

回答

2

,您可以覆蓋默認UserChecker把這個作爲參數:

// ACME/YourBundle/Resources/Config/services.yml 
parameters: 
    security.user_checker.class: ACME\YourBundle\Security\Core\User\UserChecker 

,寫你的類:

// ACME/YourBundle/Security/Core/User/UserChecker.php 
namespace ACME\YourBundle\Security\Core\User\UserChecker; 

use Symfony\Component\Security\Core\User\UserChecker as BaseCode; 
use Symfony\Component\Security\Core\User\UserInterface; 

class UserChecker extends BaseCode 
{ 
    public function checkPreAuth(UserInterface $user) 
    { 
     // Your Business logic 

     parent::checkPreAuth($user); 
    } 
} 
+0

似乎是一個非常乾淨的解決方案,我會嘗試儘快。 – 2014-09-14 07:54:06

+0

試過了,這正是我需要的。謝謝。 – 2014-09-14 08:17:33

+0

@skler,如果你想在自定義用戶檢查器中注入服務? (如實體管理器) – 2014-12-09 12:41:44