aboutsummaryrefslogtreecommitdiffstats
path: root/mod
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2014-01-01 16:07:36 -0800
committerfriendica <info@friendica.com>2014-01-01 16:07:36 -0800
commit057d885baf670467443dea0da0797b9289b919b4 (patch)
tree33efb6306a7fefc80b8bd962c33500e41259967f /mod
parentca8bf551d1684966d377e9d316c00fd40bd08e6e (diff)
downloadvolse-hubzilla-057d885baf670467443dea0da0797b9289b919b4.tar.gz
volse-hubzilla-057d885baf670467443dea0da0797b9289b919b4.tar.bz2
volse-hubzilla-057d885baf670467443dea0da0797b9289b919b4.zip
return to working on red-dav; This is a bit of a slog at the moment and the basic framework isn't even close to working. This does break the working test we did have (which was never connected to the Red backend). Now we're starting to connect Red and DAV together intimately. There will probably be some twists and turns along the way as we get the information we need into all the class objects that need them. But the important part is that the RedDirectory and RedFile classes are loading without throwing white screens and from here we can use logging to figure out what the DAV front end is trying to do and what it is passing to the backend and hopefully figure out what it expects to do with the results. Unless you're a competent developer with a strong background in OOP and are helping develop this code, you should keep it an arm's length away from any production site and don't even think of enabling it. By default it is turned off.
Diffstat (limited to 'mod')
-rw-r--r--mod/cloud.php24
1 files changed, 21 insertions, 3 deletions
diff --git a/mod/cloud.php b/mod/cloud.php
index cdd926444..3a4cf01b1 100644
--- a/mod/cloud.php
+++ b/mod/cloud.php
@@ -46,6 +46,11 @@
class RedBasicAuth extends Sabre\DAV\Auth\Backend\AbstractBasic {
+ public $channel_name = '';
+ public $channel_id = 0;
+ public $channel_hash = '';
+ public $observer = '';
+
protected function validateUserPass($username, $password) {
require_once('include/auth.php');
$record = account_verify_password($email,$pass);
@@ -56,10 +61,13 @@ class RedBasicAuth extends Sabre\DAV\Auth\Backend\AbstractBasic {
);
if($r) {
$this->currentUser = $r[0]['channel_address'];
+ $this->channel_name = $r[0]['channel_address'];
+ $this->channel_id = $r[0]['channel_id'];
+ $this->channel_hash = $this->observer = $r[0]['channel_hash'];
return true;
}
}
- $r = q("select channel_account_id from channel where channel_address = '%s' limit 1",
+ $r = q("select * from channel where channel_address = '%s' limit 1",
dbesc($username)
);
if($r) {
@@ -71,6 +79,9 @@ class RedBasicAuth extends Sabre\DAV\Auth\Backend\AbstractBasic {
if(($record['account_flags'] == ACCOUNT_OK) || ($record['account_flags'] == ACCOUNT_UNVERIFIED)
&& (hash('whirlpool',$record['account_salt'] . $password) === $record['account_password'])) {
logger('(DAV) RedBasicAuth: password verified for ' . $username);
+ $this->channel_name = $r[0]['channel_address'];
+ $this->channel_id = $r[0]['channel_id'];
+ $this->channel_hash = $r[0]['channel_hash'];
return true;
}
}
@@ -87,18 +98,25 @@ function cloud_init() {
if(! get_config('system','enable_cloud'))
killme();
- $rootDirectory = new DAV\FS\Directory('store');
+ require_once('include/reddav.php');
+
+ $auth = new RedBasicAuth();
+
+ $rootDirectory = new RedDirectory('store',$auth);
$server = new DAV\Server($rootDirectory);
$lockBackend = new DAV\Locks\Backend\File('store/data/locks');
$lockPlugin = new DAV\Locks\Plugin($lockBackend);
$server->addPlugin($lockPlugin);
- $auth = new RedBasicAuth();
$auth->Authenticate($server,'Red Matrix');
+ $browser = new DAV\Browser\Plugin();
+ $server->addPlugin($browser);
+
+
// All we need to do now, is to fire up the server
$server->exec();