Ejemplo n.º 1
0
 /**
  * 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);
 }
Ejemplo n.º 2
0
 /**
  * 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;
 }