prepare for OS file storage, and add bbcode attachment link to mod/filestorage. This isn't beautiful, but it's a start.
This commit is contained in:
@@ -188,13 +188,13 @@ function attach_by_hash($hash,$rev = 0) {
|
||||
$sql_extra = permissions_sql($r[0]['uid']);
|
||||
|
||||
// Now we'll see if we can access the attachment
|
||||
dbg(1);
|
||||
|
||||
|
||||
$r = q("SELECT * FROM attach WHERE hash = '%s' and uid = %d $sql_extra LIMIT 1",
|
||||
dbesc($hash),
|
||||
intval($r[0]['uid'])
|
||||
);
|
||||
dbg(0);
|
||||
|
||||
if(! $r) {
|
||||
$ret['message'] = t('Permission denied.');
|
||||
return $ret;
|
||||
@@ -672,3 +672,9 @@ function attach_change_permissions($channel_id,$resource,$allow_cid,$allow_gid,$
|
||||
}
|
||||
|
||||
|
||||
function pipe_streams($in, $out) {
|
||||
$size = 0;
|
||||
while (!feof($in))
|
||||
$size += fwrite($out,fread($in,8192));
|
||||
return $size;
|
||||
}
|
||||
@@ -376,11 +376,16 @@ class RedFile extends DAV\Node implements DAV\IFile {
|
||||
function get() {
|
||||
logger('RedFile::get: ' . basename($this->name));
|
||||
|
||||
$r = q("select data from attach where hash = '%s' and uid = %d limit 1",
|
||||
$r = q("select data, flags from attach where hash = '%s' and uid = %d limit 1",
|
||||
dbesc($this->data['hash']),
|
||||
intval($this->data['uid'])
|
||||
);
|
||||
if($r) return $r[0]['data'];
|
||||
if($r) {
|
||||
if($r[0]['flags'] & ATTACH_FLAG_OS ) {
|
||||
return fopen($r[0]['data'],'rb');
|
||||
}
|
||||
return $r[0]['data'];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user