Skip to content

Commit b1745e2

Browse files
committed
Changes related to #164
1 parent 2fec7e6 commit b1745e2

File tree

3 files changed

+41
-1
lines changed

3 files changed

+41
-1
lines changed

src/app/code/community/JetRails/Cloudflare/Model/Adminhtml/Api/Firewall/FirewallRules.php

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,19 @@ class JetRails_Cloudflare_Model_Adminhtml_Api_Firewall_FirewallRules
1717
*/
1818
protected $_endpoint = "firewall/rules";
1919

20+
/**
21+
* This method wraps the PageGetter class and adds the results of the
22+
* usage endpoint.
23+
* @param integer page Current page number to get
24+
* @param array previous Collection of prev results
25+
* @return stdClass CF response to request
26+
*/
27+
public function getValue ( $page = 1, $previous = array () ) {
28+
$result = parent::getValue ( $page, $previous );
29+
$result->usage = $this->usage ();
30+
return $result;
31+
}
32+
2033
/**
2134
* This method takes in an firewall rule id and asks the Cloudflare API to
2235
* delete the rule that corresponds to that id.
@@ -109,4 +122,27 @@ public function update ( $id, $name, $filterId, $filterExpression, $action, $pri
109122
return $filter;
110123
}
111124

125+
/**
126+
* This method asks the Cloudflare API for the usage information as it
127+
* pertains to firewall rules. It then only returns the allocation for
128+
* the zone scope.
129+
* @return stdClass CF response to request
130+
*/
131+
public function usage () {
132+
$endpoint = $this->getEndpoint ("firewall/rules/usage");
133+
$api = Mage::getModel ("cloudflare/api_request");
134+
$api->setType ( $api::REQUEST_GET );
135+
$result = $api->resolve ( $endpoint );
136+
if ( isset ( $result->result ) ) {
137+
$result = array_filter ( $result->result, function ( $i ) {
138+
return $i->scope === "zone";
139+
});
140+
return $result [ 0 ];
141+
}
142+
return [
143+
"used" => 0,
144+
"max" => 0
145+
];
146+
}
147+
112148
}

src/app/design/adminhtml/base/default/template/cloudflare/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>

src/skin/adminhtml/base/default/js/cloudflare/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)