function testUser_Rule_IsLoggedIn() { $level = 5; $errorMsg = 'error'; $rule = new A_User_Rule_Isloggedin($errorMsg); $user = new UserMock(); $this->assertFalse($rule->isValid($user)); $this->assertFalse($rule->setUser($user)->isValid()); $this->assertEqual($rule->getErrorMsg(), $errorMsg); $user->setLoggedIn(true); $this->assertTrue($rule->isValid($user)); $this->assertTrue($rule->setUser($user)->isValid()); $this->assertEqual($rule->getErrorMsg(), ''); }
function run($controller) { // now rule objects are only created if denyAccess() exists $isloggedin = new A_User_Rule_Isloggedin(); $ingroup = new A_User_Rule_Ingroup('admin'); // check if access check fails if (!$isloggedin->isValid($this->user) && !$ingroup->isValid($this->user)) { // if access check fails then return DL so Front Controller // will forward to 'login' instead of requested Action return array('', 'login', 'index'); } }
function run($controller) { if (method_exists($controller, $this->method)) { if (is_a($this->session, 'A_User_Session')) { $user = $this->session; } else { $this->session->start(); $user = new A_User_Session($this->session); } $groups = $controller->{$this->method}(); $access = new A_User_Rule_Isloggedin($this->forward); if (!$access->isValid($user)) { if ($this->forward) { return $this->forward; } } } }