include/reddav.php is the glue between Red attachments and the SabreDav interfaces. Much work remains beofre we're ready to actually use this interface. Think of it as a conceptual outline and I'm starting to fill it in from the top down.
This commit is contained in:
parent
fe3e294f4c
commit
370f8b84da
154
include/reddav.php
Normal file
154
include/reddav.php
Normal file
@ -0,0 +1,154 @@
|
|||||||
|
<?php /** @file */
|
||||||
|
|
||||||
|
use Sabre\DAV;
|
||||||
|
require_once('vendor/autoload.php');
|
||||||
|
|
||||||
|
class RedInode implements DAV\INode {
|
||||||
|
|
||||||
|
private $attach;
|
||||||
|
|
||||||
|
function __construct($attach) {
|
||||||
|
$this->attach = $attach;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function delete() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function getName() {
|
||||||
|
return $this->attach['filename'];
|
||||||
|
}
|
||||||
|
|
||||||
|
function setName($newName) {
|
||||||
|
$this->attach['filename'] = $newName;
|
||||||
|
// FIXME save the DB record
|
||||||
|
}
|
||||||
|
|
||||||
|
function getLastModified() {
|
||||||
|
return $this->attach['edited'];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
abstract class RedDirectory extends DAV\Node implements DAV\ICollection {
|
||||||
|
|
||||||
|
private $red_path;
|
||||||
|
private $dir_key;
|
||||||
|
private $auth;
|
||||||
|
private $channel_id;
|
||||||
|
|
||||||
|
function __construct($red_path,$auth_plugin) {
|
||||||
|
$this->red_path = $red_path;
|
||||||
|
$this->auth = $auth_plugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getChildren() {
|
||||||
|
|
||||||
|
if(! perm_is_allowed($this->channel_id,'','view_storage'))
|
||||||
|
return array();
|
||||||
|
|
||||||
|
$ret = array();
|
||||||
|
$r = q("select distinct filename from attach where folder = '%s' and uid = %d group by filename",
|
||||||
|
dbesc($this->dir_key),
|
||||||
|
intval($this->channel_id)
|
||||||
|
);
|
||||||
|
if($r) {
|
||||||
|
foreach($r as $rr) {
|
||||||
|
$ret[] = $rr['filename'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $ret;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function getChild($name) {
|
||||||
|
if(! perm_is_allowed($this->channel_id,'','view_storage')) {
|
||||||
|
//check this throw new DAV\Exception\PermissionDenied('Permission denied.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$r = q("select * from attach where folder = '%s' and filename = '%s' and uid = %d limit 1",
|
||||||
|
dbesc($this->dir_key),
|
||||||
|
dbesc($name),
|
||||||
|
dbesc($this->channel_id)
|
||||||
|
);
|
||||||
|
if(! $r) {
|
||||||
|
throw new DAV\Exception\NotFound('The file with name: ' . $name . ' could not be found');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function createFile($name,$data = null) {
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function createDirectory($name) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function childExists($name) {
|
||||||
|
$r = q("select distinct filename from attach where folder = '%s' and filename = '%s' and uid = %d group by filename",
|
||||||
|
dbesc($this->dir_key),
|
||||||
|
dbesc($name),
|
||||||
|
intval($this->channel_id)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
abstract class RedFile extends DAV\Node implements DAV\IFile {
|
||||||
|
|
||||||
|
private $data;
|
||||||
|
|
||||||
|
|
||||||
|
function __construct($data) {
|
||||||
|
$this->data = $data;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function put($data) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function get() {
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function getETag() {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function getContentType() {
|
||||||
|
return $this->data['filetype'];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function getSize() {
|
||||||
|
return $this->data['filesize'];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1 +1 @@
|
|||||||
2013-10-24.476
|
2013-10-26.478
|
||||||
|
Reference in New Issue
Block a user