tags:

views:

11

answers:

1

I'm using symfony 1.4.8 and I have some code that basically looks like this (in a Filter):

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

No matter what I have done, it always registers that it has the cred credential. The die always outputs 1. I've even removed the if/else and just ran removeCredential() but it still dies with 1. Also of interest is that this is the ONLY place where this credential might be added (or removed), so I don't understand how I ALWAYS have it. I'm using sfDoctrineGuardUser plugin.

The following code is puzzling:

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

also this:

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

I've also tried clearCredentials() with no luck. How can I remove this credential? I'm completely at a loss here.

+2  A: 

Is your user a Super Admin? In such case hasCredential() always returns true.

kuba
That was it! Thanks!
greggory.hz