From 5a106d10361865dfd5cffe8809caee73ff410c4c Mon Sep 17 00:00:00 2001 From: Bartek Przybylski Date: Sat, 4 Feb 2012 10:30:32 +0100 Subject: [PATCH] gallery: fix FS hooks --- apps/gallery/lib/album.php | 1 + apps/gallery/lib/hooks_handlers.php | 10 ++++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/apps/gallery/lib/album.php b/apps/gallery/lib/album.php index 502237481a9..167813a1a31 100644 --- a/apps/gallery/lib/album.php +++ b/apps/gallery/lib/album.php @@ -54,6 +54,7 @@ class OC_Gallery_Album { public static function removeByPath($path, $owner) { $album = self::find($owner, null, $path); $album = $album->fetchRow(); + error_log($path . '--' . $album['album_name']); self::remove($owner, $album['album_name']); OC_Gallery_Photo::removeByAlbumId($album['album_id']); // find and remove any gallery which might be stored lower in dir hierarchy diff --git a/apps/gallery/lib/hooks_handlers.php b/apps/gallery/lib/hooks_handlers.php index 236a4b96a07..605cb0d0037 100644 --- a/apps/gallery/lib/hooks_handlers.php +++ b/apps/gallery/lib/hooks_handlers.php @@ -58,12 +58,18 @@ class OC_Gallery_Hooks_Handlers { return OC_Gallery_Album::find(OC_User::getUser(), null, $path); } + public static function pathInRoot($path) { + $root = OC_Appconfig::getValue('gallery', 'root', '/'); + return substr($path, 0, strlen($path)>strlen($root)?strlen($root):strlen($path)) == $root; + } + public static function addPhotoFromPath($params) { $fullpath = $params[OC_Filesystem::signal_param_path]; if (!self::isPhoto($fullpath)) return; $path = substr($fullpath, 0, strrpos($fullpath, '/')); + if (!self::pathInRoot($path)) return; OC_Gallery_Scanner::scanDir($path, $albums); } @@ -71,8 +77,8 @@ class OC_Gallery_Hooks_Handlers { public static function removePhoto($params) { $path = $params[OC_Filesystem::signal_param_path]; if (OC_Filesystem::is_dir($path) && self::directoryContainsPhotos($path)) { - OC_Gallery_Album::removeByPath($path, OC_User::getUser()); - OC_Gallery_Photo::removeByPath($path.'/%'); + if(!self::pathInRoot($path)) return; + OC_Gallery_Album::removeByPath($path.'/', OC_User::getUser()); } elseif (self::isPhoto($path)) { OC_Gallery_Photo::removeByPath($path); } -- 2.39.5