Archived
1
0
Fork 0

Merge branch '2-request-list-show-ip-http-method' into 'master'

Resolve "Request list - Show IP + HTTP Method."

Closes #2

See merge request pnx/httpcb!2
This commit is contained in:
Henrik Hautakoski 2018-03-19 19:50:42 +00:00
commit 279e6a30c1
5 changed files with 136 additions and 35 deletions

View file

@ -35,23 +35,45 @@
} }
} }
&-uri { &-row {
display: inline-block; display: block;
width: 45%; & + & {
margin-top: .4em;
}
} }
&-size { &-method,
&-uri,
&-type,
&-timestamp,
&-size,
&-ip {
display: inline-block; display: inline-block;
width: 10%; .icon {
margin: 0 .2em;
}
} }
&-type, &-type,
&-timestamp { &-timestamp,
display: inline-block; &-size,
width: 20%; &-ip {
.icon { color: @request-item-light-color;
padding: 0 .4em; font-size: @font-size-small;
} }
&-method {
font-weight: bold;
}
&-type,
&-size {
width: 30%;
}
&-ip,
&-timestamp {
float: right;
} }
} }

View file

@ -164,6 +164,7 @@
// ---------------------------------- // ----------------------------------
@request-item-color: @dark-grey; @request-item-color: @dark-grey;
@request-item-light-color: #666;
@request-item-background: transparent; @request-item-background: transparent;
@request-item-border-color: @light-grey; @request-item-border-color: @light-grey;
@request-item-active-color: @dark-grey; @request-item-active-color: @dark-grey;

View file

@ -122,6 +122,9 @@ class CallbackController extends ControllerBase
{ {
$this->view->disable(); $this->view->disable();
$allowed_methods = array('GET', 'POST');
if ($this->request->isMethod($allowed_methods)) {
$callback = Model\Data\Callback::get($id); $callback = Model\Data\Callback::get($id);
$request = new Model\Data\Request(); $request = new Model\Data\Request();
@ -136,6 +139,9 @@ class CallbackController extends ControllerBase
$meta = new Model\Data\RequestMeta(); $meta = new Model\Data\RequestMeta();
$meta->Callback = $callback; $meta->Callback = $callback;
$meta->RequestObject = $request; $meta->RequestObject = $request;
$meta->setSourceIp($this->request->getClientAddress());
$meta->setMethod($this->request->isPost() ? 'POST' : 'GET');
$meta->setUri($this->request->getServer('REQUEST_URI')); $meta->setUri($this->request->getServer('REQUEST_URI'));
$result = $meta->save(); $result = $meta->save();
@ -143,4 +149,7 @@ class CallbackController extends ControllerBase
var_dump($meta->getMessages()); var_dump($meta->getMessages());
} }
} }
}
} }

View file

@ -18,6 +18,20 @@ class RequestMeta extends Model
*/ */
protected $callbackid; protected $callbackid;
/**
* Source IP Address
*
* @var string
*/
protected $source_ip;
/**
* HTTP Method
*
* @var string
*/
protected $method;
/** /**
* HTTP Request Uri * HTTP Request Uri
* *
@ -79,6 +93,42 @@ class RequestMeta extends Model
return $this; return $this;
} }
/**
* @param string $source_ip
* @return RequestMeta
*/
public function setSourceIp($source_ip)
{
$this->source_ip = (string) $source_ip;
return $this;
}
/**
* @return mixed
*/
public function getSourceIp()
{
return $this->source_ip;
}
/**
* @param string $method
* @return RequestMeta
*/
public function setMethod($method)
{
$this->method = (string) $method;
return $this;
}
/**
* @return string
*/
public function getMethod()
{
return $this->method;
}
/** /**
* @param string $uri * @param string $uri
* @return RequestMeta * @return RequestMeta

View file

@ -14,13 +14,24 @@
data-toggle="collapse" data-parent="#request-log" data-toggle="collapse" data-parent="#request-log"
aria-expanded="true" aria-controls="request{{ index }}"> aria-expanded="true" aria-controls="request{{ index }}">
<div class="request-list-item-header-row">
<span class="request-list-item-header-method">
{{ req.getMethod() }}
</span>
<span class="request-list-item-header-uri"> <span class="request-list-item-header-uri">
{{ icon('android-locate') }} <span class="url">{{ urlStyle(req.getUri()) }}</span> <span class="url">{{ urlStyle(req.getUri()) }}</span>
</span> </span>
<span class="request-list-item-header-timestamp"> <span class="request-list-item-header-timestamp">
{{ icon('android-time') }} {{ req.getTimestamp() }} {{ icon('android-time') }} {{ req.getTimestamp() }}
</span> </span>
</div>
<div class="request-list-item-header-row">
<span class="request-list-item-header-type"> <span class="request-list-item-header-type">
{{ icon('android-list') }} {{ req.getType() }} {{ icon('android-list') }} {{ req.getType() }}
@ -29,6 +40,14 @@
<span class="request-list-item-header-size"> <span class="request-list-item-header-size">
{{ icon('cube') }} {{ req.getSize() }} b {{ icon('cube') }} {{ req.getSize() }} b
</span> </span>
<span class="request-list-item-header-ip">
{{ icon('location') }} {{ req.getSourceIp() }}
</span>
</div>
</a> </a>
<div class="collapse" id="request{{ index }}" <div class="collapse" id="request{{ index }}"