Add metadata to post delete hooks
This commit is contained in:
parent
36660734a6
commit
0d63e95a5d
6 changed files with 108 additions and 23 deletions
|
@ -99,8 +99,9 @@ class File extends Node implements \OCP\Files\File {
|
|||
public function delete() {
|
||||
if ($this->checkPermissions(\OCP\Constants::PERMISSION_DELETE)) {
|
||||
$this->sendHooks(array('preDelete'));
|
||||
$fileInfo = $this->getFileInfo();
|
||||
$this->view->unlink($this->path);
|
||||
$nonExisting = new NonExistingFile($this->root, $this->view, $this->path);
|
||||
$nonExisting = new NonExistingFile($this->root, $this->view, $this->path, $fileInfo);
|
||||
$this->root->emit('\OC\Files', 'postDelete', array($nonExisting));
|
||||
$this->exists = false;
|
||||
$this->fileInfo = null;
|
||||
|
|
|
@ -295,8 +295,9 @@ class Folder extends Node implements \OCP\Files\Folder {
|
|||
public function delete() {
|
||||
if ($this->checkPermissions(\OCP\Constants::PERMISSION_DELETE)) {
|
||||
$this->sendHooks(array('preDelete'));
|
||||
$fileInfo = $this->getFileInfo();
|
||||
$this->view->rmdir($this->path);
|
||||
$nonExisting = new NonExistingFolder($this->root, $this->view, $this->path);
|
||||
$nonExisting = new NonExistingFolder($this->root, $this->view, $this->path, $fileInfo);
|
||||
$this->root->emit('\OC\Files', 'postDelete', array($nonExisting));
|
||||
$this->exists = false;
|
||||
} else {
|
||||
|
|
|
@ -46,7 +46,11 @@ class NonExistingFile extends File {
|
|||
}
|
||||
|
||||
public function getId() {
|
||||
throw new NotFoundException();
|
||||
if ($this->fileInfo) {
|
||||
return parent::getId();
|
||||
} else {
|
||||
throw new NotFoundException();
|
||||
}
|
||||
}
|
||||
|
||||
public function stat() {
|
||||
|
@ -54,35 +58,67 @@ class NonExistingFile extends File {
|
|||
}
|
||||
|
||||
public function getMTime() {
|
||||
throw new NotFoundException();
|
||||
if ($this->fileInfo) {
|
||||
return parent::getMTime();
|
||||
} else {
|
||||
throw new NotFoundException();
|
||||
}
|
||||
}
|
||||
|
||||
public function getSize() {
|
||||
throw new NotFoundException();
|
||||
if ($this->fileInfo) {
|
||||
return parent::getSize();
|
||||
} else {
|
||||
throw new NotFoundException();
|
||||
}
|
||||
}
|
||||
|
||||
public function getEtag() {
|
||||
throw new NotFoundException();
|
||||
if ($this->fileInfo) {
|
||||
return parent::getEtag();
|
||||
} else {
|
||||
throw new NotFoundException();
|
||||
}
|
||||
}
|
||||
|
||||
public function getPermissions() {
|
||||
throw new NotFoundException();
|
||||
if ($this->fileInfo) {
|
||||
return parent::getPermissions();
|
||||
} else {
|
||||
throw new NotFoundException();
|
||||
}
|
||||
}
|
||||
|
||||
public function isReadable() {
|
||||
throw new NotFoundException();
|
||||
if ($this->fileInfo) {
|
||||
return parent::isReadable();
|
||||
} else {
|
||||
throw new NotFoundException();
|
||||
}
|
||||
}
|
||||
|
||||
public function isUpdateable() {
|
||||
throw new NotFoundException();
|
||||
if ($this->fileInfo) {
|
||||
return parent::isUpdateable();
|
||||
} else {
|
||||
throw new NotFoundException();
|
||||
}
|
||||
}
|
||||
|
||||
public function isDeletable() {
|
||||
throw new NotFoundException();
|
||||
if ($this->fileInfo) {
|
||||
return parent::isDeletable();
|
||||
} else {
|
||||
throw new NotFoundException();
|
||||
}
|
||||
}
|
||||
|
||||
public function isShareable() {
|
||||
throw new NotFoundException();
|
||||
if ($this->fileInfo) {
|
||||
return parent::isShareable();
|
||||
} else {
|
||||
throw new NotFoundException();
|
||||
}
|
||||
}
|
||||
|
||||
public function getContent() {
|
||||
|
@ -94,7 +130,11 @@ class NonExistingFile extends File {
|
|||
}
|
||||
|
||||
public function getMimeType() {
|
||||
throw new NotFoundException();
|
||||
if ($this->fileInfo) {
|
||||
return parent::getMimeType();
|
||||
} else {
|
||||
throw new NotFoundException();
|
||||
}
|
||||
}
|
||||
|
||||
public function fopen($mode) {
|
||||
|
|
|
@ -47,7 +47,11 @@ class NonExistingFolder extends Folder {
|
|||
}
|
||||
|
||||
public function getId() {
|
||||
throw new NotFoundException();
|
||||
if ($this->fileInfo) {
|
||||
return parent::getId();
|
||||
} else {
|
||||
throw new NotFoundException();
|
||||
}
|
||||
}
|
||||
|
||||
public function stat() {
|
||||
|
@ -55,35 +59,67 @@ class NonExistingFolder extends Folder {
|
|||
}
|
||||
|
||||
public function getMTime() {
|
||||
throw new NotFoundException();
|
||||
if ($this->fileInfo) {
|
||||
return parent::getMTime();
|
||||
} else {
|
||||
throw new NotFoundException();
|
||||
}
|
||||
}
|
||||
|
||||
public function getSize() {
|
||||
throw new NotFoundException();
|
||||
if ($this->fileInfo) {
|
||||
return parent::getSize();
|
||||
} else {
|
||||
throw new NotFoundException();
|
||||
}
|
||||
}
|
||||
|
||||
public function getEtag() {
|
||||
throw new NotFoundException();
|
||||
if ($this->fileInfo) {
|
||||
return parent::getEtag();
|
||||
} else {
|
||||
throw new NotFoundException();
|
||||
}
|
||||
}
|
||||
|
||||
public function getPermissions() {
|
||||
throw new NotFoundException();
|
||||
if ($this->fileInfo) {
|
||||
return parent::getPermissions();
|
||||
} else {
|
||||
throw new NotFoundException();
|
||||
}
|
||||
}
|
||||
|
||||
public function isReadable() {
|
||||
throw new NotFoundException();
|
||||
if ($this->fileInfo) {
|
||||
return parent::isReadable();
|
||||
} else {
|
||||
throw new NotFoundException();
|
||||
}
|
||||
}
|
||||
|
||||
public function isUpdateable() {
|
||||
throw new NotFoundException();
|
||||
if ($this->fileInfo) {
|
||||
return parent::isUpdateable();
|
||||
} else {
|
||||
throw new NotFoundException();
|
||||
}
|
||||
}
|
||||
|
||||
public function isDeletable() {
|
||||
throw new NotFoundException();
|
||||
if ($this->fileInfo) {
|
||||
return parent::isDeletable();
|
||||
} else {
|
||||
throw new NotFoundException();
|
||||
}
|
||||
}
|
||||
|
||||
public function isShareable() {
|
||||
throw new NotFoundException();
|
||||
if ($this->fileInfo) {
|
||||
return parent::isShareable();
|
||||
} else {
|
||||
throw new NotFoundException();
|
||||
}
|
||||
}
|
||||
|
||||
public function get($path) {
|
||||
|
@ -127,6 +163,10 @@ class NonExistingFolder extends Folder {
|
|||
}
|
||||
|
||||
public function isCreatable() {
|
||||
throw new NotFoundException();
|
||||
if ($this->fileInfo) {
|
||||
return parent::isCreatable();
|
||||
} else {
|
||||
throw new NotFoundException();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -76,6 +76,8 @@ class File extends \Test\TestCase {
|
|||
$test->assertInstanceOf('\OC\Files\Node\NonExistingFile', $node);
|
||||
$test->assertEquals('foo', $node->getInternalPath());
|
||||
$test->assertEquals('/bar/foo', $node->getPath());
|
||||
$test->assertEquals(1, $node->getId());
|
||||
$test->assertEquals('text/plain', $node->getMimeType());
|
||||
$hooksRun++;
|
||||
};
|
||||
|
||||
|
@ -94,7 +96,7 @@ class File extends \Test\TestCase {
|
|||
$view->expects($this->any())
|
||||
->method('getFileInfo')
|
||||
->with('/bar/foo')
|
||||
->will($this->returnValue($this->getFileInfo(array('permissions' => \OCP\Constants::PERMISSION_ALL, 'fileid' => 1))));
|
||||
->will($this->returnValue($this->getFileInfo(array('permissions' => \OCP\Constants::PERMISSION_ALL, 'fileid' => 1, 'mimetype' => 'text/plain'))));
|
||||
|
||||
$view->expects($this->once())
|
||||
->method('unlink')
|
||||
|
|
|
@ -82,6 +82,7 @@ class Folder extends \Test\TestCase {
|
|||
$test->assertInstanceOf('\OC\Files\Node\NonExistingFolder', $node);
|
||||
$test->assertEquals('foo', $node->getInternalPath());
|
||||
$test->assertEquals('/bar/foo', $node->getPath());
|
||||
$test->assertEquals(1, $node->getId());
|
||||
$hooksRun++;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue