/** * @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); }
/** * 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); } }
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()); }
/** * 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; } }
/** * @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())); }
/** * 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; } }
/** * @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([]); }