/** * MaintenanceLibTest::testWhitelist() * * @return void */ public function testWhitelist() { $result = $this->Maintenance->whitelist(); $this->assertEmpty($result); $whitelist = ['192.168.0.1']; $result = $this->Maintenance->whitelist($whitelist); $this->assertTrue($result); $result = $this->Maintenance->whitelist(); $this->assertNotEmpty($result); $result = $this->Maintenance->clearWhitelist(['192.111.111.111']); $this->assertTrue($result); $result = $this->Maintenance->whitelist(); $this->assertSame($whitelist, $result); $result = $this->Maintenance->clearWhitelist(); $result = $this->Maintenance->whitelist(); $this->assertEmpty($result); }
/** * Set maintance mode for everybody except for the own IP which will * be whitelisted. * * Alternatively, this can and should be done using the CLI shell. * * URL Options: * - `duration` query string can be used to set a timeout maintenance window * * @param mixed $maintenance * @return bool Success */ public function setMaintenance($maintenance) { $ip = env('REMOTE_ADDR'); // optional length in minutes $length = (int) $this->Controller->request->query('duration'); $Maintenance = new Maintenance(); if (!$Maintenance->setMaintenanceMode($maintenance ? $length : false)) { return false; } if (!$Maintenance->whitelist([$ip])) { return false; } return true; }