Emit a new hook, when a file is being updated only
The write-hook also is triggered for created files Fix #8131
This commit is contained in:
parent
158b870589
commit
4fa9e46d2b
2 changed files with 47 additions and 1 deletions
|
@ -118,6 +118,22 @@ class Filesystem {
|
|||
*/
|
||||
const signal_post_write = 'post_write';
|
||||
|
||||
/**
|
||||
* signal emitted before file/dir update
|
||||
*
|
||||
* @param string $path
|
||||
* @param bool $run changing this flag to false in hook handler will cancel event
|
||||
*/
|
||||
const signal_update = 'update';
|
||||
|
||||
/**
|
||||
* signal emitted after file/dir update
|
||||
*
|
||||
* @param string $path
|
||||
* @param bool $run changing this flag to false in hook handler will cancel event
|
||||
*/
|
||||
const signal_post_update = 'post_update';
|
||||
|
||||
/**
|
||||
* signal emits when reading file/dir
|
||||
*
|
||||
|
|
|
@ -291,6 +291,15 @@ class View {
|
|||
Filesystem::signal_param_run => &$run
|
||||
)
|
||||
);
|
||||
} else {
|
||||
\OC_Hook::emit(
|
||||
Filesystem::CLASSNAME,
|
||||
Filesystem::signal_update,
|
||||
array(
|
||||
Filesystem::signal_param_path => $this->getHookPath($path),
|
||||
Filesystem::signal_param_run => &$run,
|
||||
)
|
||||
);
|
||||
}
|
||||
\OC_Hook::emit(
|
||||
Filesystem::CLASSNAME,
|
||||
|
@ -319,6 +328,12 @@ class View {
|
|||
Filesystem::signal_post_create,
|
||||
array(Filesystem::signal_param_path => $this->getHookPath($path))
|
||||
);
|
||||
} else {
|
||||
\OC_Hook::emit(
|
||||
Filesystem::CLASSNAME,
|
||||
Filesystem::signal_post_update,
|
||||
array(Filesystem::signal_param_path => $this->getHookPath($path))
|
||||
);
|
||||
}
|
||||
\OC_Hook::emit(
|
||||
Filesystem::CLASSNAME,
|
||||
|
@ -335,7 +350,7 @@ class View {
|
|||
return false;
|
||||
}
|
||||
} else {
|
||||
$hooks = ($this->file_exists($path)) ? array('write') : array('create', 'write');
|
||||
$hooks = ($this->file_exists($path)) ? array('update', 'write') : array('create', 'write');
|
||||
return $this->basicOperation('file_put_contents', $path, $hooks, $data);
|
||||
}
|
||||
}
|
||||
|
@ -516,6 +531,15 @@ class View {
|
|||
Filesystem::signal_param_run => &$run
|
||||
)
|
||||
);
|
||||
} elseif ($run) {
|
||||
\OC_Hook::emit(
|
||||
Filesystem::CLASSNAME,
|
||||
Filesystem::signal_update,
|
||||
array(
|
||||
Filesystem::signal_param_path => $this->getHookPath($path2),
|
||||
Filesystem::signal_param_run => &$run,
|
||||
)
|
||||
);
|
||||
}
|
||||
if ($run) {
|
||||
\OC_Hook::emit(
|
||||
|
@ -572,6 +596,12 @@ class View {
|
|||
Filesystem::signal_post_create,
|
||||
array(Filesystem::signal_param_path => $this->getHookPath($path2))
|
||||
);
|
||||
} else {
|
||||
\OC_Hook::emit(
|
||||
Filesystem::CLASSNAME,
|
||||
Filesystem::signal_post_update,
|
||||
array(Filesystem::signal_param_path => $this->getHookPath($path2))
|
||||
);
|
||||
}
|
||||
\OC_Hook::emit(
|
||||
Filesystem::CLASSNAME,
|
||||
|
|
Loading…
Reference in a new issue