Exemplo n.º 1
0
 /**
  * @return JsonModel
  */
 public function indexAction()
 {
     $required = $this->permissions->getRequired();
     $current = $this->permissions->getCurrent();
     $responseType = ResponseTypeInterface::RESPONSE_TYPE_SUCCESS;
     if (array_diff($required, $current)) {
         $responseType = ResponseTypeInterface::RESPONSE_TYPE_ERROR;
     }
     $data = ['responseType' => $responseType, 'data' => ['required' => $required, 'current' => $current]];
     return $this->jsonModel->setVariables($data);
 }
Exemplo n.º 2
0
 /**
  * Check permissions of directories that are expected to be writable for installation
  *
  * @return void
  * @throws \Exception
  */
 private function checkInstallationFilePermissions()
 {
     $results = $this->filePermissions->getMissingWritableDirectoriesForInstallation();
     if ($results) {
         $errorMsg = "Missing write permissions to the following directories: '" . implode("', '", $results) . "'";
         throw new \Exception($errorMsg);
     }
 }
Exemplo n.º 3
0
 public function testCheckApplicationFilePermissions()
 {
     $this->filePermissions->expects($this->once())->method('getUnnecessaryWritableDirectoriesForApplication')->willReturn(['foo', 'bar']);
     $expectedMessage = "For security, remove write permissions from these directories: 'foo' 'bar'";
     $this->logger->expects($this->once())->method('log')->with($expectedMessage);
     $this->object->checkApplicationFilePermissions();
     $this->assertSame(['message' => [$expectedMessage]], $this->object->getInstallInfo());
 }
Exemplo n.º 4
0
 /**
  * Check permissions of directories that are expected to be non-writable for application
  *
  * @return void
  */
 public function checkApplicationFilePermissions()
 {
     $results = $this->filePermissions->getUnnecessaryWritableDirectoriesForApplication();
     if ($results) {
         $errorMsg = "For security, remove write permissions from these directories: '" . implode("' '", $results) . "'";
         $this->log->log($errorMsg);
         $this->installInfo[self::INFO_MESSAGE][] = $errorMsg;
     }
 }
Exemplo n.º 5
0
 /**
  * @param array $mockMethods
  * @param array $expected
  * @dataProvider getUnnecessaryWritableDirectoriesForApplicationDataProvider
  */
 public function testGetUnnecessaryWritableDirectoriesForApplication(array $mockMethods, array $expected)
 {
     $this->directoryListMock->expects($this->at(0))->method('getPath')->with(DirectoryList::CONFIG)->will($this->returnValue(BP . '/app/etc'));
     $index = 0;
     foreach ($mockMethods as $mockMethod => $returnValue) {
         $this->directoryWriteMock->expects($this->at($index))->method($mockMethod)->will($this->returnValue($returnValue));
         $index += 1;
     }
     $this->assertEquals($expected, array_values($this->filePermissions->getUnnecessaryWritableDirectoriesForApplication()));
 }
Exemplo n.º 6
0
 /**
  * Check permissions of directories that are expected to be non-writable for application
  *
  * @return void
  */
 public function checkApplicationFilePermissions()
 {
     $results = $this->filePermissions->getUnnecessaryWritableDirectoriesForApplication();
     if ($results) {
         $errorMsg = 'For security, remove write permissions from these directories: ';
         foreach ($results as $result) {
             $errorMsg .= '\'' . $result . '\' ';
         }
         $this->log->log($errorMsg);
         $this->installInfo[self::INFO_MESSAGE][] = $errorMsg;
     }
 }
Exemplo n.º 7
0
 /**
  * @expectedException \Exception
  * @expectedExceptionMessage Missing writing permissions to the following directories: '/a/ro/dir', '/media'
  */
 public function testWritePermissionErrors()
 {
     $this->filePermissions->expects($this->once())->method('getMissingWritableDirectoriesForInstallation')->willReturn(['/a/ro/dir', '/media']);
     $this->configModel->process([]);
 }