I'm using symfony 1.4 with Doctrine.
I'm trying to find a way to enable debug mode only if the current sfUser
has a special debugger
credential.
I already created a filter that deactivates the symfony debug bar if the sfUser
has not this credential (the web_debug
is set to true
in my settings.yml
file):
class checkWebDebugFilter extends sfFilter
{
public function execute($filterChain)
{
if(!$this->getContext()->getUser()->hasCredential('debugger'))
{
sfConfig::set('sf_web_debug', false);
}
$filterChain->execute();
}
}
The code of my index.php
file is:
require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');
$configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'prod', false));
sfContext::createInstance($configuration)->dispatch();
The problem is, as the debug
mode is hardcoded to false
in my index.php
, it is also disabled for debuggers; therefore the Web debug bar does not show Doctrine statements nor timing indications.
Is there a way to enable debug mode only if the current sfUser
has a precise credential?
I tried to add sfConfig::set('sf_debug', true);
to my checkWebDebugFilter::execute()
method but as the filter is executed after Doctrine statements, they are not recorded.
I also tried to add session_start();
in my index.php
file, then browsing through the $_SESSION
variable to check whether the current user has the debugger
credential, but it did not work (and it was not in the spirit of symfony either).
Thanks in advance for your answers.