diff --git a/apps/files_sharing/ajax/share.php b/apps/files_sharing/ajax/share.php index d9bf4ff7abe..cff0acf3323 100644 --- a/apps/files_sharing/ajax/share.php +++ b/apps/files_sharing/ajax/share.php @@ -4,21 +4,29 @@ $RUNTIME_NOAPPS = true; require_once('../../../lib/base.php'); require_once('../lib_share.php'); +$userDirectory = "/".OC_User::getUser()."/files"; $sources = explode(";", $_POST['sources']); $uid_shared_with = $_POST['uid_shared_with']; $permissions = $_POST['permissions']; foreach ($sources as $source) { + // Make sure file exists and can be shared if ($source && OC_FILESYSTEM::file_exists($source) && OC_FILESYSTEM::is_readable($source)) { - $source = "/".OC_User::getUser()."/files".$source; - try { - $shared = new OC_Share($source, $uid_shared_with, $permissions); - if ($uid_shared_with == OC_Share::PUBLICLINK) { - echo $shared->getToken(); - } - } catch (Exception $exception) { + $source = $userDirectory.$source; + // If the file doesn't exist, it may be shared with the current user + } else { + $source = OC_Share::getSource($userDirectory.$source); + if (!$source) { echo "false"; } } + try { + $shared = new OC_Share($source, $uid_shared_with, $permissions); + if ($uid_shared_with == OC_Share::PUBLICLINK) { + echo $shared->getToken(); + } + } catch (Exception $exception) { + echo "false"; + } } ?> \ No newline at end of file