diff options
-rw-r--r-- | include/reddav.php | 8 | ||||
-rw-r--r-- | include/zot.php | 9 |
2 files changed, 12 insertions, 5 deletions
diff --git a/include/reddav.php b/include/reddav.php index b2683885d..a962d1bcc 100644 --- a/include/reddav.php +++ b/include/reddav.php @@ -321,15 +321,15 @@ class RedFile extends DAV\Node implements DAV\IFile { function put($data) { logger('RedFile::put: ' . basename($this->name), LOGGER_DEBUG); - $r = q("select flags, data from attach where hash = '%s' and uid = %d limit 1", dbesc($hash), intval($c[0]['channel_id']) ); if($r) { if($r[0]['flags'] & ATTACH_FLAG_OS) { - @file_put_contents($r[0]['data'], $data); - $size = @filesize($r[0]['data']); + $f = 'store/' . $this->auth->owner_nick . '/' . (($r[0]['data']) ? $r[0]['data'] . '/' : ''); + @file_put_contents($f, $data); + $size = @filesize($f); } else { $r = q("update attach set data = '%s' where hash = '%s' and uid = %d limit 1", @@ -886,7 +886,7 @@ class RedBrowser extends DAV\Browser\Plugin { <td><a href=\"{$fullPath}\">{$displayName}</a></td> <td>{$type}</td> <td>{$size}</td> - <td>" . datetime_convert('UTC', date_default_timezone_get(),$lastmodified) . "</td> + <td>" . (($lastmodified) ? datetime_convert('UTC', date_default_timezone_get(),$lastmodified) : '') . "</td> </tr>"; } diff --git a/include/zot.php b/include/zot.php index 168ccaaa5..7c2cfe019 100644 --- a/include/zot.php +++ b/include/zot.php @@ -1367,6 +1367,8 @@ function process_delivery($sender,$arr,$deliveries,$relay) { // remove_community_tag is a no-op if this isn't a community tag activity remove_community_tag($sender,$arr,$channel['channel_id']); + + $item_id = delete_imported_item($sender,$arr,$channel['channel_id']); $result[] = array($d['hash'],(($item_id) ? 'deleted' : 'delete_failed'),$channel['channel_name'] . ' <' . $channel['channel_address'] . '@' . get_app()->get_hostname() . '>'); @@ -1524,7 +1526,7 @@ function delete_imported_item($sender,$item,$uid) { logger('delete_imported_item invoked',LOGGER_DEBUG); - $r = q("select id from item where ( author_xchan = '%s' or owner_xchan = '%s' or source_xchan = '%s' ) + $r = q("select id, item_restrict from item where ( author_xchan = '%s' or owner_xchan = '%s' or source_xchan = '%s' ) and mid = '%s' and uid = %d limit 1", dbesc($sender['hash']), dbesc($sender['hash']), @@ -1537,6 +1539,11 @@ function delete_imported_item($sender,$item,$uid) { logger('delete_imported_item: failed: ownership issue'); return false; } + + if($r[0]['item_restrict'] & ITEM_DELETED) { + logger('delete_imported_item: item was already deleted'); + return false; + } require_once('include/items.php'); drop_item($r[0]['id'],false); |