Php Owncloud postCreate/post_create钩子不为共享文件夹上的其他用户执行
我们正在开发一个OwnCloud应用程序,试图跟踪将文件上传到特定文件夹的用户。钩子正在为管理员工作,但当其他用户上载到共享文件夹时,钩子不会执行。这是许可问题吗 我们的钩子寄存器代码。我们尝试了两种钩子系统,但结果相同Php Owncloud postCreate/post_create钩子不为共享文件夹上的其他用户执行,php,hook,owncloud,nextcloud,Php,Hook,Owncloud,Nextcloud,我们正在开发一个OwnCloud应用程序,试图跟踪将文件上传到特定文件夹的用户。钩子正在为管理员工作,但当其他用户上载到共享文件夹时,钩子不会执行。这是许可问题吗 我们的钩子寄存器代码。我们尝试了两种钩子系统,但结果相同 public function register() { \OCP\Util::connectHook('OC_Filesystem', 'post_create', 'OCA\FileActivities\Controller\UserHooks', 'on
public function register() {
\OCP\Util::connectHook('OC_Filesystem', 'post_create', 'OCA\FileActivities\Controller\UserHooks', 'onFileCreate');
$reference = $this;
$callback = function (Node $node) use($reference) {
$reference->onPostCreate($node);
};
$this->fileManager->listen('\OC\Files', 'postCreate', $callback);
}
好吧,对于任何寻找相同答案的人来说,我找到了答案。如下 在app.php中
namespace OCA\xxxxxxxxxx\AppInfo;
$app = new Application();
$app->registerFilesActivity();
在lib/AppInfo中/
namespace OCA\XXXXXXXXXXXX\AppInfo;
use \OCP\AppFramework\App;
use \OCA\XXXXXXXXXXXX\Controller\UserHooks;
use OCP\IContainer;
use OCP\Util;
class Application extends App {
public function __construct(array $urlParams=array()){
parent::__construct('viewfinance', $urlParams);
$container = $this->getContainer();
$container->registerService('UserHooks', function($c) {
return new UserHooks(
$c->query('AppName'),
$c->query('Request'),
$c->query('UserSession'),
$c->query('ServerContainer')->getRootFolder()
);
});
$container->registerService('UserSession', function($c) {
return $c->query('ServerContainer')->getUserSession();
});
}
/**
* Register the hooks for filesystem operations
*/
public function registerFilesActivity() {
Util::connectHook('OC_Filesystem', 'post_create', 'OCA\FileActivities\Controller\UserHooks', 'onFileCreate');
}
}
文档对此不是很清楚,在检查了一些其他具有类似功能的应用程序后,我发现了这一点