Witam Was,
Obecnie jestem na etapie modyfikacji wtyczki sfGuardPlugin, aby dostosować ją do moich potrzeb. Mianowicie mam tutaj na mysli plik sfGuardBasicSecurityFilter. Utworzylem osobne tabele dla uzytkownikow do frontendu i backendu. Teraz chce aby we filtrze wylapywalo mi czy remember_key zostal wpisany wczesniej do bazy. Oczywiscie wszystko dodaje sie do bazy, tylko jest problem: nie moge nigdzie znalezc funkcji ktora odpowiada za to jaka aplikacja jest w uzyciu, aby odpowiedni remember_key wyciagal z odpowiedniej tabeli. Tak to wyglada:
class sfGuardBasicSecurityFilter extends sfBasicSecurityFilter
{
public function execute ($filterChain)
{
if ($this->isFirstCall() and !$this->getContext()->getUser()->isAuthenticated())
{
{
if ($cookie = $this->getContext()->getRequest()->getCookie(sfConfig::get('app_sf_guard_plugin_remember_cookie_name', 'remember_me')))
{
$c = new Criteria();
$c->add(sfGuardRememberKeyPeer::REMEMBER_KEY, $cookie);
$rk = sfGuardRememberKeyPeer::doSelectOne($c);
if ($rk && $rk->getSfGuardUser())
{
$this->getContext()->getUser()->signIn($rk->getSfGuardUser());
}
}
}
if(sfApplicationConfiguration::getAppName('backend'))
{
if ($cookie = $this->getContext()->getRequest()->getCookie('admin_remember'))
{
$c = new Criteria();
$c->add(sfGuardTeamRememberKeyPeer::REMEMBER_KEY, $cookie);
$rk = sfGuardTeamRememberKeyPeer::doSelectOne($c);
if ($rk && $rk->getSfGuardTeam())
{
$this->getContext()->getUser()->signIn($rk->getSfGuardTeam());
}
}
}
}
if(!is_null($this->getContext()->getUser()->getGuardUser())) {
if(!$this->getContext()->getUser()->getGuardUser()->getIsActive())
{
$this->getContext()->getUser()->setFlash('error', 'Twoje konto zostało zablokowane. Skontaktuj się za pomocą formularza kontaktowego, aby odblokować swoje konto.');
$this->getContext()->getUser()->signOut();
}
}
parent::execute($filterChain);
}
}