Merge pull request #585 from lovenunu/firewall

Apply firewall rules only in prod environment
This commit is contained in:
Manuel Raynaud
2014-08-13 10:18:44 +02:00
3 changed files with 37 additions and 33 deletions

View File

@@ -201,7 +201,9 @@ abstract class BaseController extends ContainerAware
$form->bind($aBaseForm->getRequest());
if ($form->isValid()) {
if ($aBaseForm instanceof FirewallForm && !$aBaseForm->isFirewallOk()) {
$env = $this->container->getParameter("kernel.environment");
if ($aBaseForm instanceof FirewallForm && !$aBaseForm->isFirewallOk($env)) {
throw new FormValidationException(
$this->getTranslator()->trans(
"You've submitted this form too many times. Further submissions will be ignored during %time",

View File

@@ -32,8 +32,9 @@ abstract class FirewallForm extends BaseForm
const DEFAULT_TIME_TO_WAIT = 60; // 1 hour
const DEFAULT_ATTEMPTS = 6;
public function isFirewallOk()
public function isFirewallOk($env)
{
if ($env === "prod") {
/**
* Empty the firewall
*/
@@ -68,6 +69,7 @@ abstract class FirewallForm extends BaseForm
$firewallInstance->save();
}
}
return true;
}

View File

@@ -88,11 +88,11 @@ class FirewallTest extends \PHPUnit_Framework_TestCase
if ($i > 6) {
$this->assertFalse(
$this->form->isFirewallOk()
$this->form->isFirewallOk("prod")
);
} else {
$this->assertTrue(
$this->form->isFirewallOk()
$this->form->isFirewallOk("prod")
);
}
@@ -145,7 +145,7 @@ class FirewallTest extends \PHPUnit_Framework_TestCase
public function testAutoDelete()
{
/** Add two rows */
$this->form->isFirewallOk();
$this->form->isFirewallOk("prod");
$this->form
->expects($this->any())
@@ -153,7 +153,7 @@ class FirewallTest extends \PHPUnit_Framework_TestCase
->will($this->returnValue("test_form_firewall_2"))
;
$this->form->isFirewallOk();
$this->form->isFirewallOk("prod");
/** Set the time to 1h and 1s after the limit */
FormFirewallQuery::create()
@@ -162,7 +162,7 @@ class FirewallTest extends \PHPUnit_Framework_TestCase
->save()
;
$this->form->isFirewallOk();
$this->form->isFirewallOk("prod");
/** Assert that the table is empty */
$this->assertEquals(