Symfony sfGuardSecurityUser-> removeCredential не работает - PullRequest
0 голосов
/ 27 октября 2010

Я использую Symfony 1.4.8, и у меня есть некоторый код, который в основном выглядит следующим образом (в фильтре):

$user = $this->getContext()->getUser();
if ($condition)
    $user->addCredential('cred');
else
    $user->removeCredential('cred');
die($user->hasCredential('cred');

Независимо от того, что я сделал, он всегда регистрирует, что он имеетверительные грамоты.Умирает всегда выводит 1. Я даже удалил if / else и просто запустил removeCredential (), но он все еще умирает с 1. Также интересно, что это ЕДИНСТВЕННОЕ место, где эти учетные данные могут быть добавлены (или удалены), поэтомуЯ не понимаю, как у меня всегда есть.Я использую плагин sfDoctrineGuardUser.

Следующий код озадачивает:

$user->removeCredential('cred');
var_dump($user->hasCredential('cred')); // bool(true)

также вот это:

var_dump($user->getCredentials()); // array(0) { }
var_dump($user->hasCredential('cred')); // bool(true)

Я также пробовал clearCredentials () безудачи.Как я могу удалить эти учетные данные?Я в полном недоумении.

1 Ответ

2 голосов
/ 28 октября 2010

Является ли ваш пользователь супер-администратором?В таком случае hasCredential () всегда возвращает true.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...