getContext(); $controller = $context->getController(); $request = $context->getRequest(); $user = $context->getUser(); // get the current action instance $actionEntry = $controller->getActionStack()->getLastEntry(); $actionInstance = $actionEntry->getActionInstance(); // get the credential required for this action $permissions = $actionInstance->getPermissions(); if($user->isAuthenticated()) { if($permissions === null || $user->hasPermissions($permissions) ) { $filterChain->execute(); } else { $request->setAttributes(array( 'requested_module' => $actionEntry->getModuleName(), 'requested_action' => $actionEntry->getActionName() ), 'org.agavi.controller.forwards.secure'); $controller->forward(AgaviConfig::get('actions.secure_module'), AgaviConfig::get('actions.secure_action')); } } else { $request->setAttributes(array( 'requested_module' => $actionEntry->getModuleName(), 'requested_action' => $actionEntry->getActionName() ), 'org.agavi.controller.forwards.login'); $controller->forward(AgaviConfig::get('actions.login_module'), AgaviConfig::get('actions.login_action')); } } } ?>