When I use yii CAuthManager revoke() method,found when i revoke a user’s permission assignment,
checkAccess() will still return true,why? isn’t a bug with it ?
<?php
$user = Yii::app()->user;
$user->setId(1);
$this->_authManager->assign('member', $user->getId());
$this->assertTrue($this->_authManager->isAssigned('member', $user->getId()));
//following assert will passed.
$this->assertTrue($user->checkAccess('createIssue'));
$this->assertTrue($user->checkAccess('readIssue'));
$this->assertTrue($user->checkAccess('updateIssue'));
$this->assertTrue($user->checkAccess('deleteIssue'));
$this->assertTrue($user->checkAccess('readProject'));
$this->assertTrue($user->checkAccess('readMember'));
//when i revoke assignment from the user, following assert passed still...
$this->_authManager->revoke('member', $user->getId());
$this->assertFalse($this->_authManager->isAssigned('member', $user->getId()));
$this->assertTrue(count($this->_authManager->getAuthAssignments($user->getId())) == 0);
$this->assertTrue($user->checkAccess('createIssue'));
$this->assertTrue($user->checkAccess('createIssue'));
$this->assertTrue($user->checkAccess('readIssue'));
$this->assertTrue($user->checkAccess('updateIssue'));
$this->assertTrue($user->checkAccess('deleteIssue'));
?>
d:\xampp\htdocs\trackstar\protected\tests>phpunit unit/PermissionTest.php
PHPUnit 3.7.24 by Sebastian Bergmann.
Configuration read from D:\xampp\htdocs\trackstar\protected\tests\phpunit.xml
.
Time: 2.15 seconds, Memory: 4.25Mb
OK (1 test, [size="6"]14[/size] assertions)
d:\xampp\htdocs\trackstar\protected\tests>