got zot
This commit is contained in:
parent
b4c603cdac
commit
5bf3ddfcf6
2
boot.php
2
boot.php
@ -1604,7 +1604,7 @@ if(! function_exists('proc_run')) {
|
||||
return;
|
||||
|
||||
if(count($args) && $args[0] === 'php')
|
||||
$args[0] = ((x($a->config,'php_path')) && (strlen($a->config['php_path'])) ? $a->config['php_path'] : 'php');
|
||||
$args[0] = ((x($a->config,'system')) && (x($a->config['system'],'php_path')) && (strlen($a->config['system']['php_path'])) ? $a->config['system']['php_path'] : 'php');
|
||||
for($x = 0; $x < count($args); $x ++)
|
||||
$args[$x] = escapeshellarg($args[$x]);
|
||||
|
||||
|
@ -40,42 +40,75 @@ require_once('include/html2plain.php');
|
||||
* wall-new (in photos.php, item.php)
|
||||
*
|
||||
* and ITEM_ID is the id of the item in the database that needs to be sent to others.
|
||||
*
|
||||
* ZOT
|
||||
* permission_updated abook_id
|
||||
*
|
||||
*/
|
||||
|
||||
require_once('include/cli_startup.php');
|
||||
require_once('include/zot.php');
|
||||
|
||||
|
||||
function notifier_run($argv, $argc){
|
||||
global $a, $db;
|
||||
|
||||
if(is_null($a)){
|
||||
$a = new App;
|
||||
}
|
||||
|
||||
if(is_null($db)) {
|
||||
@include(".htconfig.php");
|
||||
require_once("dba.php");
|
||||
$db = new dba($db_host, $db_user, $db_pass, $db_data);
|
||||
unset($db_host, $db_user, $db_pass, $db_data);
|
||||
}
|
||||
cli_startup();
|
||||
|
||||
$a = get_app();
|
||||
|
||||
require_once("session.php");
|
||||
require_once("datetime.php");
|
||||
require_once('include/items.php');
|
||||
require_once('include/bbcode.php');
|
||||
|
||||
load_config('config');
|
||||
load_config('system');
|
||||
|
||||
load_hooks();
|
||||
|
||||
if($argc < 3)
|
||||
return;
|
||||
|
||||
$a->set_baseurl(get_config('system','url'));
|
||||
|
||||
logger('notifier: invoked: ' . print_r($argv,true), LOGGER_DEBUG);
|
||||
|
||||
$cmd = $argv[1];
|
||||
|
||||
$item_id = $argv[2];
|
||||
|
||||
$extra = (($argc > 3) ? $argv[3] : null);
|
||||
|
||||
if($cmd == 'permission_update') {
|
||||
// Get the recipient
|
||||
$r = q("select abook.*, hubloc.* from abook
|
||||
left join hubloc on hubloc_hash = abook_xchan
|
||||
where abook_id = %d limit 1",
|
||||
intval($item_id)
|
||||
);
|
||||
if($r) {
|
||||
// Get the sender
|
||||
$s = q("select * from channel where channel_id = %d limit 1",
|
||||
intval($r[0]['abook_channel'])
|
||||
);
|
||||
if($s) {
|
||||
|
||||
// send a refresh message to each hub they have registered here
|
||||
$h = q("select * from hubloc where hubloc_hash = '%s'",
|
||||
dbesc($r[0]['hubloc_hash'])
|
||||
);
|
||||
if($h) {
|
||||
foreach($h as $hh) {
|
||||
$result = zot_notify($s[0],$hh['hubloc_callback'],'refresh',array(array(
|
||||
'guid' => $hh['hubloc_guid'],
|
||||
'guid_sig' => $hh['hubloc_guid_sig'],
|
||||
'url' => $hh['hubloc_url'])
|
||||
));
|
||||
// should probably queue these
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
|
||||
|
||||
|
||||
switch($cmd) {
|
||||
case 'mail':
|
||||
default:
|
||||
|
@ -135,7 +135,7 @@ function get_all_perms($uid,$observer,$internal_use = true) {
|
||||
// Check if this is a write permission and they are being ignored
|
||||
// This flag is only visible internally.
|
||||
|
||||
if(($internal_use) && (! $global_perms[$permission][2]) && ($x[0]['abook_flags'] & ABOOK_FLAG_IGNORED)) {
|
||||
if(($internal_use) && (! $global_perms[$perm_name][2]) && ($x[0]['abook_flags'] & ABOOK_FLAG_IGNORED)) {
|
||||
$ret[$perm_name] = false;
|
||||
continue;
|
||||
}
|
||||
@ -149,7 +149,7 @@ function get_all_perms($uid,$observer,$internal_use = true) {
|
||||
// Permission granted to certain channels. Let's see if the observer is one of them
|
||||
|
||||
if(($r) && ($r[0][$channel_perm] & PERMS_SPECIFIC)) {
|
||||
if(($x) && ($x[0]['abook_my_perms'] & $global_perms[$permission][1])) {
|
||||
if(($x) && ($x[0]['abook_my_perms'] & $global_perms[$perm_name][1])) {
|
||||
$ret[$perm_name] = true;
|
||||
continue;
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
<?php
|
||||
|
||||
require_once('include/crypto.php');
|
||||
/**
|
||||
*
|
||||
* @function zot_new_uid($channel_nick)
|
||||
@ -65,9 +66,9 @@ function zot_notify($channel,$url,$type = 'notify',$recipients = null, $remote_k
|
||||
'type' => $type,
|
||||
'sender' => json_encode(array(
|
||||
'guid' => $channel['channel_guid'],
|
||||
'guid_sig' => base64url_encode($guid,$channel['prvkey']),
|
||||
'hub' => z_root(),
|
||||
'hub_sig' => base64url_encode(z_root,$channel['prvkey'])
|
||||
'guid_sig' => base64url_encode(rsa_sign($channel['channel_guid'],$channel['channel_prvkey'])),
|
||||
'url' => z_root(),
|
||||
'url_sig' => base64url_encode(rsa_sign(z_root(),$channel['channel_prvkey']))
|
||||
)),
|
||||
'callback' => '/post',
|
||||
'version' => ZOT_REVISION
|
||||
@ -82,7 +83,7 @@ function zot_notify($channel,$url,$type = 'notify',$recipients = null, $remote_k
|
||||
$params = aes_encapsulate($params,$remote_key);
|
||||
}
|
||||
|
||||
$x = z_post_url($url,$prams);
|
||||
$x = z_post_url($url,$params);
|
||||
return($x);
|
||||
}
|
||||
|
||||
@ -211,7 +212,7 @@ function zot_refresh($them,$channel = null) {
|
||||
}
|
||||
}
|
||||
|
||||
$r = q("update abook set their_perms = %d
|
||||
$r = q("update abook set abook_their_perms = %d
|
||||
where abook_xchan = '%s' and abook_channel = %d limit 1",
|
||||
intval($their_perms),
|
||||
dbesc($channel['channel_hash']),
|
||||
@ -229,15 +230,16 @@ function zot_refresh($them,$channel = null) {
|
||||
|
||||
|
||||
function zot_gethub($jarr) {
|
||||
if($jarr->guid && $jarr->guid_sig && $jarr->hub && $jarr->hub_sig) {
|
||||
|
||||
if($jarr->guid && $jarr->guid_sig && $jarr->url && $jarr->url_sig) {
|
||||
$r = q("select * from hubloc
|
||||
where hubloc_guid = '%s' and hubloc_guid_sig = '%s'
|
||||
and hubloc_url = '%s' and hubloc_url_sig = '%s'
|
||||
limit 1",
|
||||
dbesc($jarr->guid),
|
||||
dbesc($jarr->guid_sig),
|
||||
dbesc($jarr->hub),
|
||||
dbesc($jarr->hub_sig)
|
||||
dbesc($jarr->url),
|
||||
dbesc($jarr->url_sig)
|
||||
);
|
||||
if($r && count($r))
|
||||
return $r[0];
|
||||
|
@ -9,6 +9,8 @@ require_once('include/zot.php');
|
||||
|
||||
function post_post(&$a) {
|
||||
|
||||
logger('mod_zot: ' . print_r($_REQUEST,true), LOGGER_DEBUG);
|
||||
|
||||
$ret = array('result' => false);
|
||||
|
||||
if(array_key_exists('iv',$_REQUEST)) {
|
||||
@ -31,6 +33,7 @@ function post_post(&$a) {
|
||||
$result = zot_register_hub($j_sender);
|
||||
if((! $result['success']) || (! zot_gethub($j_sender))) {
|
||||
$ret['message'] = 'Hub not available.';
|
||||
logger('mod_zot: no hub');
|
||||
json_return_and_die($ret);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user