Merge remote-tracking branch 'upstream/dev' into wiki
This commit is contained in:
commit
fc7c4e64ff
@ -264,6 +264,8 @@ class Apps {
|
|||||||
if(! $papp['photo'])
|
if(! $papp['photo'])
|
||||||
$papp['photo'] = z_root() . '/' . get_default_profile_photo(80);
|
$papp['photo'] = z_root() . '/' . get_default_profile_photo(80);
|
||||||
|
|
||||||
|
self::translate_system_apps($papp);
|
||||||
|
|
||||||
$papp['papp'] = self::papp_encode($papp);
|
$papp['papp'] = self::papp_encode($papp);
|
||||||
|
|
||||||
if(! strstr($papp['url'],'://'))
|
if(! strstr($papp['url'],'://'))
|
||||||
|
@ -16,14 +16,14 @@ require_once('include/zot.php');
|
|||||||
require_once('include/widgets.php');
|
require_once('include/widgets.php');
|
||||||
require_once('include/photos.php');
|
require_once('include/photos.php');
|
||||||
|
|
||||||
/* @brief Initialize the connection-editor
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
class Connedit extends \Zotlabs\Web\Controller {
|
class Connedit extends \Zotlabs\Web\Controller {
|
||||||
|
|
||||||
|
/* @brief Initialize the connection-editor
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
|
|
||||||
if(! local_channel())
|
if(! local_channel())
|
||||||
@ -51,7 +51,7 @@ class Connedit extends \Zotlabs\Web\Controller {
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function post() {
|
function post() {
|
||||||
|
|
||||||
if(! local_channel())
|
if(! local_channel())
|
||||||
return;
|
return;
|
||||||
@ -357,7 +357,7 @@ class Connedit extends \Zotlabs\Web\Controller {
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function get() {
|
function get() {
|
||||||
|
|
||||||
$sort_type = 0;
|
$sort_type = 0;
|
||||||
$o = '';
|
$o = '';
|
||||||
@ -418,7 +418,13 @@ class Connedit extends \Zotlabs\Web\Controller {
|
|||||||
goaway(z_root() . '/connedit/' . $contact_id);
|
goaway(z_root() . '/connedit/' . $contact_id);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
if($cmd === 'resetphoto') {
|
||||||
|
q("update xchan set xchan_photo_date = '2001-01-01 00:00:00' where xchan_hash = '%s' limit 1",
|
||||||
|
dbesc($orig_record[0]['xchan_hash'])
|
||||||
|
);
|
||||||
|
$cmd = 'refresh';
|
||||||
|
}
|
||||||
|
|
||||||
if($cmd === 'refresh') {
|
if($cmd === 'refresh') {
|
||||||
if($orig_record[0]['xchan_network'] === 'zot') {
|
if($orig_record[0]['xchan_network'] === 'zot') {
|
||||||
if(! zot_refresh($orig_record[0],\App::get_channel()))
|
if(! zot_refresh($orig_record[0],\App::get_channel()))
|
||||||
|
80
Zotlabs/Module/README.md
Normal file
80
Zotlabs/Module/README.md
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
Zotlabs/Module
|
||||||
|
==============
|
||||||
|
|
||||||
|
|
||||||
|
This directory contains controller modules for handling web requests. The
|
||||||
|
lowercase class name indicates the head of the URL path which this module
|
||||||
|
handles. There are other methods of attaching (routing) URL paths to
|
||||||
|
controllers, but this is the primary method used in this project.
|
||||||
|
|
||||||
|
Module controllers MUST reside in this directory and namespace to be
|
||||||
|
autoloaded (unless other specific routing methods are employed). They
|
||||||
|
typically use and extend the class definition in Zotlabs/Web/Controller
|
||||||
|
as a template.
|
||||||
|
|
||||||
|
Template:
|
||||||
|
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Zotlabs\Web;
|
||||||
|
|
||||||
|
|
||||||
|
class Controller {
|
||||||
|
|
||||||
|
function init() {}
|
||||||
|
function post() {}
|
||||||
|
function get() {}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Typical Module declaration for the '/foo' URL route:
|
||||||
|
|
||||||
|
|
||||||
|
<?php
|
||||||
|
namespace Zotlabs\Module;
|
||||||
|
|
||||||
|
class Foo extends \Zotlabs\Web\Controller {
|
||||||
|
|
||||||
|
function init() {
|
||||||
|
// init() handler goes here
|
||||||
|
}
|
||||||
|
|
||||||
|
function post() {
|
||||||
|
// post handler goes here
|
||||||
|
}
|
||||||
|
|
||||||
|
function get() {
|
||||||
|
return 'Hello world.' . EOL;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
This model provides callbacks for public functions named init(), post(),
|
||||||
|
and get(). init() is always called. post() is called if $_POST variables
|
||||||
|
are present, and get() is called if none of the prior functions terminated
|
||||||
|
the handler. The get() method typically retuns a string which represents
|
||||||
|
the contents of the content region of the resulting page. Modules which emit
|
||||||
|
json, xml or other machine-readable formats typically emit their contents
|
||||||
|
inside the init() function and call 'killme()' to terminate the Module.
|
||||||
|
|
||||||
|
Modules are passed the URL path as argc,argv arguments. For a path such as
|
||||||
|
|
||||||
|
https://mysite.something/foo/bar/baz
|
||||||
|
|
||||||
|
The app will typically invoke the Module class 'Foo' and pass it
|
||||||
|
|
||||||
|
$x = argc(); // $x = 3
|
||||||
|
|
||||||
|
$x = argv(0); // $x = 'foo'
|
||||||
|
$x = argv(1); // $x = 'bar'
|
||||||
|
$x = argv(2); // $x = 'baz'
|
||||||
|
|
||||||
|
These are handled in a similar fashion to their counterparts in the Unix shell
|
||||||
|
or C/C++ languages. Do not confuse the argc(),argv() functions with the
|
||||||
|
global variables $argc,$argv which are passed to command line programs. These
|
||||||
|
are handled separately by command line and Zotlabs/Daemon class functions.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -3,6 +3,8 @@
|
|||||||
namespace Zotlabs\Storage;
|
namespace Zotlabs\Storage;
|
||||||
|
|
||||||
use Sabre\DAV;
|
use Sabre\DAV;
|
||||||
|
use Sabre\HTTP\RequestInterface;
|
||||||
|
use Sabre\HTTP\ResponseInterface;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Authentication backend class for DAV.
|
* @brief Authentication backend class for DAV.
|
||||||
@ -145,6 +147,57 @@ class BasicAuth extends DAV\Auth\Backend\AbstractBasic {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* When this method is called, the backend must check if authentication was
|
||||||
|
* successful.
|
||||||
|
*
|
||||||
|
* The returned value must be one of the following
|
||||||
|
*
|
||||||
|
* [true, "principals/username"]
|
||||||
|
* [false, "reason for failure"]
|
||||||
|
*
|
||||||
|
* If authentication was successful, it's expected that the authentication
|
||||||
|
* backend returns a so-called principal url.
|
||||||
|
*
|
||||||
|
* Examples of a principal url:
|
||||||
|
*
|
||||||
|
* principals/admin
|
||||||
|
* principals/user1
|
||||||
|
* principals/users/joe
|
||||||
|
* principals/uid/123457
|
||||||
|
*
|
||||||
|
* If you don't use WebDAV ACL (RFC3744) we recommend that you simply
|
||||||
|
* return a string such as:
|
||||||
|
*
|
||||||
|
* principals/users/[username]
|
||||||
|
*
|
||||||
|
* @param RequestInterface $request
|
||||||
|
* @param ResponseInterface $response
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
function check(RequestInterface $request, ResponseInterface $response) {
|
||||||
|
|
||||||
|
if(local_channel()) {
|
||||||
|
return [ true, $this->principalPrefix . $this->channel_name ];
|
||||||
|
}
|
||||||
|
|
||||||
|
$auth = new \Sabre\HTTP\Auth\Basic(
|
||||||
|
$this->realm,
|
||||||
|
$request,
|
||||||
|
$response
|
||||||
|
);
|
||||||
|
|
||||||
|
$userpass = $auth->getCredentials();
|
||||||
|
if (!$userpass) {
|
||||||
|
return [false, "No 'Authorization: Basic' header found. Either the client didn't send one, or the server is misconfigured"];
|
||||||
|
}
|
||||||
|
if (!$this->validateUserPass($userpass[0], $userpass[1])) {
|
||||||
|
return [false, "Username or password was incorrect"];
|
||||||
|
}
|
||||||
|
return [true, $this->principalPrefix . $userpass[0]];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
protected function check_module_access($channel_id) {
|
protected function check_module_access($channel_id) {
|
||||||
if($channel_id && \App::$module === 'cdav') {
|
if($channel_id && \App::$module === 'cdav') {
|
||||||
$x = get_pconfig($channel_id,'cdav','enabled');
|
$x = get_pconfig($channel_id,'cdav','enabled');
|
||||||
|
@ -9,4 +9,5 @@ class Controller {
|
|||||||
function post() {}
|
function post() {}
|
||||||
function get() {}
|
function get() {}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -275,7 +275,7 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false)
|
|||||||
|
|
||||||
call_hooks('follow', $arr);
|
call_hooks('follow', $arr);
|
||||||
|
|
||||||
/** If there is a default group for this channel, add this member to it */
|
/** If there is a default group for this channel, add this connection to it */
|
||||||
|
|
||||||
if($default_group) {
|
if($default_group) {
|
||||||
require_once('include/group.php');
|
require_once('include/group.php');
|
||||||
|
@ -538,6 +538,16 @@ function zot_refresh($them, $channel = null, $force = false) {
|
|||||||
Zotlabs\Daemon\Master::Summon(array('Onepoll',$new_connection[0]['abook_id']));
|
Zotlabs\Daemon\Master::Summon(array('Onepoll',$new_connection[0]['abook_id']));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** If there is a default group for this channel, add this connection to it */
|
||||||
|
$default_group = $channel['channel_default_group'];
|
||||||
|
if($default_group) {
|
||||||
|
require_once('include/group.php');
|
||||||
|
$g = group_rec_byhash($channel['channel_id'],$default_group);
|
||||||
|
if($g)
|
||||||
|
group_add_member($channel['channel_id'],'',$x['hash'],$g['id']);
|
||||||
|
}
|
||||||
|
|
||||||
unset($new_connection[0]['abook_id']);
|
unset($new_connection[0]['abook_id']);
|
||||||
unset($new_connection[0]['abook_account']);
|
unset($new_connection[0]['abook_account']);
|
||||||
unset($new_connection[0]['abook_channel']);
|
unset($new_connection[0]['abook_channel']);
|
||||||
|
Reference in New Issue
Block a user