public function canRenderChildrenComponents(__IComponent &$component)
 {
     $return_value = false;
     $permission_id = $component->getPermission();
     $condition = $component->getCondition();
     if (__PermissionManager::getInstance()->hasPermission($permission_id)) {
         $permission = __PermissionManager::getInstance()->getPermission($permission_id);
         if ($condition == __ProtectedSectionComponent::IF_HAS_PERMISSION && __AuthorizationManager::getInstance()->hasPermission($permission)) {
             $return_value = true;
         } else {
             if ($condition == __ProtectedSectionComponent::IF_NOT_HAS_PERMISSION && !__AuthorizationManager::getInstance()->hasPermission($permission)) {
                 $return_value = true;
             }
         }
     } else {
         throw __ExceptionFactory::getInstance()->createException('Unknow permission id: ' . $permission_id);
     }
     return $return_value;
 }
 public final function logout()
 {
     if ($this->_user != null) {
         $this->_user->onLogout();
         unset($this->_user);
         $this->_user = null;
         __AuthorizationManager::getInstance()->unsetUserRoles();
         $this->logonAsAnonymous();
     }
 }