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() {
|
public function delete() {
|
||||||
if ($this->checkPermissions(\OCP\Constants::PERMISSION_DELETE)) {
|
if ($this->checkPermissions(\OCP\Constants::PERMISSION_DELETE)) {
|
||||||
$this->sendHooks(array('preDelete'));
|
$this->sendHooks(array('preDelete'));
|
||||||
|
$fileInfo = $this->getFileInfo();
|
||||||
$this->view->unlink($this->path);
|
$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->root->emit('\OC\Files', 'postDelete', array($nonExisting));
|
||||||
$this->exists = false;
|
$this->exists = false;
|
||||||
$this->fileInfo = null;
|
$this->fileInfo = null;
|
||||||
|
|
|
@ -295,8 +295,9 @@ class Folder extends Node implements \OCP\Files\Folder {
|
||||||
public function delete() {
|
public function delete() {
|
||||||
if ($this->checkPermissions(\OCP\Constants::PERMISSION_DELETE)) {
|
if ($this->checkPermissions(\OCP\Constants::PERMISSION_DELETE)) {
|
||||||
$this->sendHooks(array('preDelete'));
|
$this->sendHooks(array('preDelete'));
|
||||||
|
$fileInfo = $this->getFileInfo();
|
||||||
$this->view->rmdir($this->path);
|
$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->root->emit('\OC\Files', 'postDelete', array($nonExisting));
|
||||||
$this->exists = false;
|
$this->exists = false;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -46,7 +46,11 @@ class NonExistingFile extends File {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getId() {
|
public function getId() {
|
||||||
throw new NotFoundException();
|
if ($this->fileInfo) {
|
||||||
|
return parent::getId();
|
||||||
|
} else {
|
||||||
|
throw new NotFoundException();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function stat() {
|
public function stat() {
|
||||||
|
@ -54,35 +58,67 @@ class NonExistingFile extends File {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getMTime() {
|
public function getMTime() {
|
||||||
throw new NotFoundException();
|
if ($this->fileInfo) {
|
||||||
|
return parent::getMTime();
|
||||||
|
} else {
|
||||||
|
throw new NotFoundException();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getSize() {
|
public function getSize() {
|
||||||
throw new NotFoundException();
|
if ($this->fileInfo) {
|
||||||
|
return parent::getSize();
|
||||||
|
} else {
|
||||||
|
throw new NotFoundException();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getEtag() {
|
public function getEtag() {
|
||||||
throw new NotFoundException();
|
if ($this->fileInfo) {
|
||||||
|
return parent::getEtag();
|
||||||
|
} else {
|
||||||
|
throw new NotFoundException();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getPermissions() {
|
public function getPermissions() {
|
||||||
throw new NotFoundException();
|
if ($this->fileInfo) {
|
||||||
|
return parent::getPermissions();
|
||||||
|
} else {
|
||||||
|
throw new NotFoundException();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function isReadable() {
|
public function isReadable() {
|
||||||
throw new NotFoundException();
|
if ($this->fileInfo) {
|
||||||
|
return parent::isReadable();
|
||||||
|
} else {
|
||||||
|
throw new NotFoundException();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function isUpdateable() {
|
public function isUpdateable() {
|
||||||
throw new NotFoundException();
|
if ($this->fileInfo) {
|
||||||
|
return parent::isUpdateable();
|
||||||
|
} else {
|
||||||
|
throw new NotFoundException();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function isDeletable() {
|
public function isDeletable() {
|
||||||
throw new NotFoundException();
|
if ($this->fileInfo) {
|
||||||
|
return parent::isDeletable();
|
||||||
|
} else {
|
||||||
|
throw new NotFoundException();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function isShareable() {
|
public function isShareable() {
|
||||||
throw new NotFoundException();
|
if ($this->fileInfo) {
|
||||||
|
return parent::isShareable();
|
||||||
|
} else {
|
||||||
|
throw new NotFoundException();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getContent() {
|
public function getContent() {
|
||||||
|
@ -94,7 +130,11 @@ class NonExistingFile extends File {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getMimeType() {
|
public function getMimeType() {
|
||||||
throw new NotFoundException();
|
if ($this->fileInfo) {
|
||||||
|
return parent::getMimeType();
|
||||||
|
} else {
|
||||||
|
throw new NotFoundException();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function fopen($mode) {
|
public function fopen($mode) {
|
||||||
|
|
|
@ -47,7 +47,11 @@ class NonExistingFolder extends Folder {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getId() {
|
public function getId() {
|
||||||
throw new NotFoundException();
|
if ($this->fileInfo) {
|
||||||
|
return parent::getId();
|
||||||
|
} else {
|
||||||
|
throw new NotFoundException();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function stat() {
|
public function stat() {
|
||||||
|
@ -55,35 +59,67 @@ class NonExistingFolder extends Folder {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getMTime() {
|
public function getMTime() {
|
||||||
throw new NotFoundException();
|
if ($this->fileInfo) {
|
||||||
|
return parent::getMTime();
|
||||||
|
} else {
|
||||||
|
throw new NotFoundException();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getSize() {
|
public function getSize() {
|
||||||
throw new NotFoundException();
|
if ($this->fileInfo) {
|
||||||
|
return parent::getSize();
|
||||||
|
} else {
|
||||||
|
throw new NotFoundException();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getEtag() {
|
public function getEtag() {
|
||||||
throw new NotFoundException();
|
if ($this->fileInfo) {
|
||||||
|
return parent::getEtag();
|
||||||
|
} else {
|
||||||
|
throw new NotFoundException();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getPermissions() {
|
public function getPermissions() {
|
||||||
throw new NotFoundException();
|
if ($this->fileInfo) {
|
||||||
|
return parent::getPermissions();
|
||||||
|
} else {
|
||||||
|
throw new NotFoundException();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function isReadable() {
|
public function isReadable() {
|
||||||
throw new NotFoundException();
|
if ($this->fileInfo) {
|
||||||
|
return parent::isReadable();
|
||||||
|
} else {
|
||||||
|
throw new NotFoundException();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function isUpdateable() {
|
public function isUpdateable() {
|
||||||
throw new NotFoundException();
|
if ($this->fileInfo) {
|
||||||
|
return parent::isUpdateable();
|
||||||
|
} else {
|
||||||
|
throw new NotFoundException();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function isDeletable() {
|
public function isDeletable() {
|
||||||
throw new NotFoundException();
|
if ($this->fileInfo) {
|
||||||
|
return parent::isDeletable();
|
||||||
|
} else {
|
||||||
|
throw new NotFoundException();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function isShareable() {
|
public function isShareable() {
|
||||||
throw new NotFoundException();
|
if ($this->fileInfo) {
|
||||||
|
return parent::isShareable();
|
||||||
|
} else {
|
||||||
|
throw new NotFoundException();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function get($path) {
|
public function get($path) {
|
||||||
|
@ -127,6 +163,10 @@ class NonExistingFolder extends Folder {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function isCreatable() {
|
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->assertInstanceOf('\OC\Files\Node\NonExistingFile', $node);
|
||||||
$test->assertEquals('foo', $node->getInternalPath());
|
$test->assertEquals('foo', $node->getInternalPath());
|
||||||
$test->assertEquals('/bar/foo', $node->getPath());
|
$test->assertEquals('/bar/foo', $node->getPath());
|
||||||
|
$test->assertEquals(1, $node->getId());
|
||||||
|
$test->assertEquals('text/plain', $node->getMimeType());
|
||||||
$hooksRun++;
|
$hooksRun++;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -94,7 +96,7 @@ class File extends \Test\TestCase {
|
||||||
$view->expects($this->any())
|
$view->expects($this->any())
|
||||||
->method('getFileInfo')
|
->method('getFileInfo')
|
||||||
->with('/bar/foo')
|
->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())
|
$view->expects($this->once())
|
||||||
->method('unlink')
|
->method('unlink')
|
||||||
|
|
|
@ -82,6 +82,7 @@ class Folder extends \Test\TestCase {
|
||||||
$test->assertInstanceOf('\OC\Files\Node\NonExistingFolder', $node);
|
$test->assertInstanceOf('\OC\Files\Node\NonExistingFolder', $node);
|
||||||
$test->assertEquals('foo', $node->getInternalPath());
|
$test->assertEquals('foo', $node->getInternalPath());
|
||||||
$test->assertEquals('/bar/foo', $node->getPath());
|
$test->assertEquals('/bar/foo', $node->getPath());
|
||||||
|
$test->assertEquals(1, $node->getId());
|
||||||
$hooksRun++;
|
$hooksRun++;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue