Skip to content

Commit 1d922a5

Browse files
committed
Changes related to #86
1 parent 2f39d2f commit 1d922a5

File tree

4 files changed

+41
-2
lines changed

4 files changed

+41
-2
lines changed

Model/Adminhtml/Api/Firewall/FirewallRules.php

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,19 @@ public function __construct (
3131
$this->_requestModel = $requestModel;
3232
}
3333

34+
/**
35+
* This method wraps the PageGetter class and adds the results of the
36+
* usage endpoint.
37+
* @param integer page Current page number to get
38+
* @param array previous Collection of prev results
39+
* @return stdClass CF response to request
40+
*/
41+
public function getValue ( $page = 1, $previous = array () ) {
42+
$result = parent::getValue ( $page, $previous );
43+
$result->usage = $this->usage ();
44+
return $result;
45+
}
46+
3447
/**
3548
* This method takes in an firewall rule id and asks the Cloudflare API to
3649
* delete the rule that corresponds to that id.
@@ -118,4 +131,26 @@ public function update ( $id, $name, $filterId, $filterExpression, $action, $pri
118131
return $filter;
119132
}
120133

134+
/**
135+
* This method asks the Cloudflare API for the usage information as it
136+
* pertains to firewall rules. It then only returns the allocation for
137+
* the zone scope.
138+
* @return stdClass CF response to request
139+
*/
140+
public function usage () {
141+
$endpoint = $this->getEndpoint ("firewall/rules/usage");
142+
$this->_requestModel->setType ( Request::REQUEST_GET );
143+
$result = $this->_requestModel->resolve ( $endpoint );
144+
if ( isset ( $result->result ) ) {
145+
$result = array_filter ( $result->result, function ( $i ) {
146+
return $i->scope === "zone";
147+
});
148+
return $result [ 0 ];
149+
}
150+
return [
151+
"used" => 0,
152+
"max" => 0
153+
];
154+
}
155+
121156
}

view/adminhtml/templates/firewall/firewall_rules.phtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<div class="wrapper_left no_padding_bottom" >
1414
<span class="section_title" >Firewall Rules</span>
1515
<p>Control incoming traffic to your zone by filtering requests based on location, IP address, user agent, URI, and more.</p>
16-
<p>You have used 0 of 1,000 active Firewall rules.</p>
16+
<p>You have used <span class="usage-used" >0</span> of <span class="usage-total" >0</span> active Firewall rules.</p>
1717
</div>
1818
<div class="wrapper_right" >
1919
<div>

view/adminhtml/web/bundle/index.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

view/adminhtml/web/js/firewall/firewall_rules.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,10 @@ function populateResult ( section ) {
141141
}
142142

143143
$(document).on ( "cloudflare.firewall.firewall_rules.initialize", function ( event, data ) {
144+
let used = data.response.usage.used
145+
let available = data.response.usage.max
146+
$(data.section).find (".usage-used").text ( used )
147+
$(data.section).find (".usage-total").text ( available )
144148
$(data.section).data ( "result", data.response.result )
145149
populateResult ( data.section )
146150
$(data.section).removeClass ("loading")

0 commit comments

Comments
 (0)