Commit 1f63bf00 by Qiang Xue

minor enhancement of debugger.

parent bc21de98
...@@ -9,6 +9,7 @@ namespace yii\debug; ...@@ -9,6 +9,7 @@ namespace yii\debug;
use Yii; use Yii;
use yii\base\View; use yii\base\View;
use yii\web\HttpException;
/** /**
* @author Qiang Xue <qiang.xue@gmail.com> * @author Qiang Xue <qiang.xue@gmail.com>
...@@ -64,17 +65,20 @@ class Module extends \yii\base\Module ...@@ -64,17 +65,20 @@ class Module extends \yii\base\Module
unset(Yii::$app->getLog()->targets['debug']); unset(Yii::$app->getLog()->targets['debug']);
$this->logTarget = null; $this->logTarget = null;
$ip = Yii::$app->getRequest()->getUserIP(); if ($this->checkAccess($action)) {
foreach ($this->allowedIPs as $filter) { return true;
if ($filter === '*' || $filter === $ip || (($pos = strpos($filter, '*')) !== false && !strncmp($ip, $filter, $pos))) { } elseif ($action->id === 'toolbar') {
return parent::beforeAction($action); return false;
} } else {
throw new HttpException(403, 'You are not allowed to access this page.');
} }
return false;
} }
public function renderToolbar($event) public function renderToolbar($event)
{ {
if (!$this->checkAccess()) {
return;
}
$url = Yii::$app->getUrlManager()->createUrl($this->id . '/default/toolbar', array( $url = Yii::$app->getUrlManager()->createUrl($this->id . '/default/toolbar', array(
'tag' => $this->logTarget->tag, 'tag' => $this->logTarget->tag,
)); ));
...@@ -85,6 +89,17 @@ class Module extends \yii\base\Module ...@@ -85,6 +89,17 @@ class Module extends \yii\base\Module
echo '<script>' . $view->renderPhpFile(__DIR__ . '/views/default/toolbar.js') . '</script>'; echo '<script>' . $view->renderPhpFile(__DIR__ . '/views/default/toolbar.js') . '</script>';
} }
protected function checkAccess()
{
$ip = Yii::$app->getRequest()->getUserIP();
foreach ($this->allowedIPs as $filter) {
if ($filter === '*' || $filter === $ip || (($pos = strpos($filter, '*')) !== false && !strncmp($ip, $filter, $pos))) {
return true;
}
}
return false;
}
protected function corePanels() protected function corePanels()
{ {
return array( return array(
......
body {
padding-top: 60px;
}
#yii-debug-toolbar { #yii-debug-toolbar {
position: fixed;
top: 0;
left: 0;
right: 0;
margin: 0 0 20px 0; margin: 0 0 20px 0;
padding: 0; padding: 0;
z-index: 1000000; z-index: 1000000;
......
...@@ -36,9 +36,8 @@ class DbPanel extends Panel ...@@ -36,9 +36,8 @@ class DbPanel extends Panel
$url = $this->getUrl(); $url = $this->getUrl();
$output = <<<EOD $output = <<<EOD
<div class="yii-debug-toolbar-block"> <div class="yii-debug-toolbar-block">
<a href="$url"> <a href="$url" title="Executed $queryCount database queries which took $queryTime.">
DB queries: <span class="label">$queryCount</span> DB <span class="label">$queryCount</span> <span class="label">$queryTime</span>
time: <span class="label">$queryTime</span>
</a> </a>
</div> </div>
EOD; EOD;
......
...@@ -44,7 +44,7 @@ class LogPanel extends Panel ...@@ -44,7 +44,7 @@ class LogPanel extends Panel
$url = $this->getUrl(); $url = $this->getUrl();
return <<<EOD return <<<EOD
<div class="yii-debug-toolbar-block"> <div class="yii-debug-toolbar-block">
<a href="$url" title="$title">Log: $log</a> <a href="$url" title="$title">Log $log</a>
</div> </div>
EOD; EOD;
} }
......
...@@ -33,10 +33,10 @@ class ProfilingPanel extends Panel ...@@ -33,10 +33,10 @@ class ProfilingPanel extends Panel
return <<<EOD return <<<EOD
<div class="yii-debug-toolbar-block"> <div class="yii-debug-toolbar-block">
<a href="$url" title="Total processing time">Time: <span class="label">$time</span></a> <a href="$url" title="Total request processing time was $time">Time <span class="label">$time</span></a>
</div> </div>
<div class="yii-debug-toolbar-block"> <div class="yii-debug-toolbar-block">
<a href="$url" title="Peak memory consumption">Memory: <span class="label">$memory</span></a> <a href="$url" title="Peak memory consumption">Memory <span class="label">$memory</span></a>
</div> </div>
EOD; EOD;
} }
......
...@@ -45,10 +45,10 @@ class RequestPanel extends Panel ...@@ -45,10 +45,10 @@ class RequestPanel extends Panel
return <<<EOD return <<<EOD
<div class="yii-debug-toolbar-block"> <div class="yii-debug-toolbar-block">
<a href="$url" title="Status code: $statusCode $statusText">Status: <span class="label $class">$statusCode</span></a> <a href="$url" title="Status code: $statusCode $statusText">Status <span class="label $class">$statusCode</span></a>
</div> </div>
<div class="yii-debug-toolbar-block"> <div class="yii-debug-toolbar-block">
<a href="$url">Action: <span class="label">{$this->data['action']}</span></a> <a href="$url">Action <span class="label">{$this->data['action']}</span></a>
</div> </div>
EOD; EOD;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment