aboutsummaryrefslogtreecommitdiffstats
path: root/Zotlabs
diff options
context:
space:
mode:
Diffstat (limited to 'Zotlabs')
-rw-r--r--Zotlabs/Daemon/Cron.php10
-rw-r--r--Zotlabs/Daemon/Cron_daily.php1
-rw-r--r--Zotlabs/Lib/Activity.php4
-rw-r--r--Zotlabs/Lib/Enotify.php2
-rw-r--r--Zotlabs/Module/Admin/Channels.php2
-rw-r--r--Zotlabs/Module/Channel.php8
-rw-r--r--Zotlabs/Module/Display.php4
-rw-r--r--Zotlabs/Module/Hq.php34
-rw-r--r--Zotlabs/Module/Oep.php262
-rw-r--r--Zotlabs/Module/Regate.php14
-rw-r--r--Zotlabs/Module/Register.php46
-rw-r--r--Zotlabs/Update/_1245.php29
12 files changed, 215 insertions, 201 deletions
diff --git a/Zotlabs/Daemon/Cron.php b/Zotlabs/Daemon/Cron.php
index 4732dfa75..335ff9751 100644
--- a/Zotlabs/Daemon/Cron.php
+++ b/Zotlabs/Daemon/Cron.php
@@ -55,11 +55,13 @@ class Cron {
db_utcnow()
);
+ remove_expired_registrations();
+
$interval = get_config('system', 'delivery_interval', 3);
// expire any expired items
- $r = q("select id,item_wall from item where expires > '2001-01-01 00:00:00' and expires < %s
+ $r = q("select id,item_wall from item where expires > '2001-01-01 00:00:00' and expires < %s
and item_deleted = 0 ",
db_utcnow()
);
@@ -131,7 +133,7 @@ class Cron {
// publish any applicable items that were set to be published in the future
// (time travel posts). Restrict to items that have come of age in the last
- // couple of days to limit the query to something reasonable.
+ // couple of days to limit the query to something reasonable.
$r = q("select id from item where item_delayed = 1 and created <= %s and created > '%s' ",
db_utcnow(),
@@ -192,7 +194,7 @@ class Cron {
// update any photos which didn't get imported properly
// This should be rare
- $r = q("select xchan_photo_l, xchan_hash from xchan where xchan_photo_l != '' and xchan_photo_m = ''
+ $r = q("select xchan_photo_l, xchan_hash from xchan where xchan_photo_l != '' and xchan_photo_m = ''
and xchan_photo_date < %s - INTERVAL %s",
db_utcnow(),
db_quoteinterval('1 DAY')
@@ -238,7 +240,7 @@ class Cron {
set_config('system', 'lastcron', datetime_convert());
- //All done - clear the lockfile
+ //All done - clear the lockfile
@unlink($lockfile);
return;
diff --git a/Zotlabs/Daemon/Cron_daily.php b/Zotlabs/Daemon/Cron_daily.php
index 1983c68e6..bebccca9d 100644
--- a/Zotlabs/Daemon/Cron_daily.php
+++ b/Zotlabs/Daemon/Cron_daily.php
@@ -93,6 +93,7 @@ class Cron_daily {
Master::Summon(array('Cli_suggest'));
remove_obsolete_hublocs();
+ remove_duplicate_singleton_hublocs();
z6_discover();
diff --git a/Zotlabs/Lib/Activity.php b/Zotlabs/Lib/Activity.php
index e036c7b1e..6e8344def 100644
--- a/Zotlabs/Lib/Activity.php
+++ b/Zotlabs/Lib/Activity.php
@@ -132,8 +132,8 @@ class Activity {
}
static function fetch_profile($x) {
- $r = q("select * from xchan where xchan_url like '%s' limit 1",
- dbesc($x['id'] . '/%')
+ $r = q("select * from xchan where xchan_url = '%s' limit 1",
+ dbesc($x['id'])
);
if (!$r) {
$r = q("select * from xchan where xchan_hash = '%s' limit 1",
diff --git a/Zotlabs/Lib/Enotify.php b/Zotlabs/Lib/Enotify.php
index ac782c740..7e33f09b8 100644
--- a/Zotlabs/Lib/Enotify.php
+++ b/Zotlabs/Lib/Enotify.php
@@ -983,7 +983,7 @@ class Enotify {
'photo' => z_root() . '/' . get_default_profile_photo(48),
'when' => datetime_convert('UTC', date_default_timezone_get(),$rr['reg_created']),
'hclass' => ('notify-unseen'),
- 'message' => t('verified')
+ 'message' => t('status verified')
];
return $x;
diff --git a/Zotlabs/Module/Admin/Channels.php b/Zotlabs/Module/Admin/Channels.php
index e0f26112d..09769a166 100644
--- a/Zotlabs/Module/Admin/Channels.php
+++ b/Zotlabs/Module/Admin/Channels.php
@@ -173,4 +173,4 @@ class Channels {
return $o;
}
-} \ No newline at end of file
+}
diff --git a/Zotlabs/Module/Channel.php b/Zotlabs/Module/Channel.php
index ab5000b9a..a7deb4f6b 100644
--- a/Zotlabs/Module/Channel.php
+++ b/Zotlabs/Module/Channel.php
@@ -308,9 +308,9 @@ class Channel extends Controller {
if (($update) && (!$load)) {
if ($mid) {
- $r = q("SELECT parent AS item_id from item where mid like '%s' and uid = %d $item_normal_update
+ $r = q("SELECT parent AS item_id from item where mid = '%s' and uid = %d $item_normal_update
AND item_wall = 1 $simple_update $sql_extra limit 1",
- dbesc($mid . '%'),
+ dbesc($mid),
intval(App::$profile['profile_uid'])
);
}
@@ -356,9 +356,9 @@ class Channel extends Controller {
if ($noscript_content || $load) {
if ($mid) {
- $r = q("SELECT parent AS item_id from item where mid like '%s' and uid = %d $item_normal
+ $r = q("SELECT parent AS item_id from item where mid = '%s' and uid = %d $item_normal
AND item_wall = 1 $sql_extra limit 1",
- dbesc($mid . '%'),
+ dbesc($mid),
intval(App::$profile['profile_uid'])
);
if (!$r) {
diff --git a/Zotlabs/Module/Display.php b/Zotlabs/Module/Display.php
index 21d3e2e08..e6caa9906 100644
--- a/Zotlabs/Module/Display.php
+++ b/Zotlabs/Module/Display.php
@@ -97,8 +97,8 @@ class Display extends \Zotlabs\Web\Controller {
if($decoded)
$item_hash = $decoded;
- $r = q("select id, uid, mid, parent, parent_mid, thr_parent, verb, item_type, item_deleted, author_xchan, item_blocked from item where mid like '%s' limit 1",
- dbesc($item_hash . '%')
+ $r = q("select id, uid, mid, parent, parent_mid, thr_parent, verb, item_type, item_deleted, author_xchan, item_blocked from item where mid = '%s' limit 1",
+ dbesc($item_hash)
);
if($r) {
diff --git a/Zotlabs/Module/Hq.php b/Zotlabs/Module/Hq.php
index 4c2067299..a2c4100ad 100644
--- a/Zotlabs/Module/Hq.php
+++ b/Zotlabs/Module/Hq.php
@@ -41,7 +41,7 @@ class Hq extends \Zotlabs\Web\Controller {
if(argc() > 1 && argv(1) !== 'load') {
$item_hash = argv(1);
}
-
+
if($_REQUEST['mid'])
$item_hash = $_REQUEST['mid'];
@@ -49,9 +49,9 @@ class Hq extends \Zotlabs\Web\Controller {
$item_normal_update = item_normal_update();
if(! $item_hash) {
- $r = q("SELECT mid FROM item
+ $r = q("SELECT mid FROM item
WHERE uid = %d $item_normal
- AND mid = parent_mid
+ AND mid = parent_mid
ORDER BY created DESC LIMIT 1",
intval(local_channel())
);
@@ -71,10 +71,10 @@ class Hq extends \Zotlabs\Web\Controller {
$target_item = null;
- $r = q("select id, uid, mid, parent_mid, thr_parent, verb, item_type, item_deleted, item_blocked from item where mid like '%s' limit 1",
- dbesc($item_hash . '%')
+ $r = q("select id, uid, mid, parent_mid, thr_parent, verb, item_type, item_deleted, item_blocked from item where mid = '%s' limit 1",
+ dbesc($item_hash)
);
-
+
if($r) {
$target_item = $r[0];
}
@@ -83,7 +83,7 @@ class Hq extends \Zotlabs\Web\Controller {
if($target_item['item_blocked'] == ITEM_MODERATED) {
goaway(z_root() . '/moderate/' . $target_item['id']);
}
-
+
$simple_update = '';
if($update && $_SESSION['loadtime'])
$simple_update = " AND (( item_unseen = 1 AND item.changed > '" . datetime_convert('UTC','UTC',$_SESSION['loadtime']) . "' ) OR item.changed > '" . datetime_convert('UTC','UTC',$_SESSION['loadtime']) . "' ) ";
@@ -94,16 +94,16 @@ class Hq extends \Zotlabs\Web\Controller {
$sys_item = false;
}
-
+
if(! $update) {
$channel = \App::get_channel();
$channel_acl = [
- 'allow_cid' => $channel['channel_allow_cid'],
- 'allow_gid' => $channel['channel_allow_gid'],
- 'deny_cid' => $channel['channel_deny_cid'],
+ 'allow_cid' => $channel['channel_allow_cid'],
+ 'allow_gid' => $channel['channel_allow_gid'],
+ 'deny_cid' => $channel['channel_deny_cid'],
'deny_gid' => $channel['channel_deny_gid']
- ];
+ ];
$x = [
'is_owner' => true,
@@ -143,7 +143,7 @@ class Hq extends \Zotlabs\Web\Controller {
// if the target item is not a post (eg a like) we want to address its thread parent
//$mid = ((($target_item['verb'] == ACTIVITY_LIKE) || ($target_item['verb'] == ACTIVITY_DISLIKE)) ? $target_item['thr_parent'] : $target_item['mid']);
$mid = $target_item['mid'];
- // if we got a decoded hash we must encode it again before handing to javascript
+ // if we got a decoded hash we must encode it again before handing to javascript
if($decoded)
$mid = 'b64.' . base64url_encode($mid);
}
@@ -154,7 +154,7 @@ class Hq extends \Zotlabs\Web\Controller {
$o .= '<div id="live-hq"></div>' . "\r\n";
$o .= "<script> var profile_uid = " . local_channel()
. "; var netargs = '?f='; var profile_page = " . \App::$pager['page'] . ";</script>\r\n";
-
+
\App::$page['htmlhead'] .= replace_macros(get_markup_template("build_query.tpl"),[
'$baseurl' => z_root(),
'$pgtype' => 'hq',
@@ -241,14 +241,14 @@ class Hq extends \Zotlabs\Web\Controller {
else {
$r = [];
}
-
+
if($r) {
- $items = q("SELECT item.*, item.id AS item_id
+ $items = q("SELECT item.*, item.id AS item_id
FROM item
WHERE parent = '%s' $item_normal ",
dbesc($r[0]['item_id'])
);
-
+
xchan_query($items,true,(($sys_item) ? local_channel() : 0));
$items = fetch_post_tags($items,true);
$items = conv_sort($items,'created');
diff --git a/Zotlabs/Module/Oep.php b/Zotlabs/Module/Oep.php
index 75304161b..faad2fc52 100644
--- a/Zotlabs/Module/Oep.php
+++ b/Zotlabs/Module/Oep.php
@@ -11,24 +11,24 @@ require_once('include/security.php');
class Oep extends \Zotlabs\Web\Controller {
function init() {
-
+
logger('oep: ' . print_r($_REQUEST,true), LOGGER_DEBUG, LOG_INFO);
-
+
$html = ((argc() > 1 && argv(1) === 'html') ? true : false);
if($_REQUEST['url']) {
$_REQUEST['url'] = strip_zids($_REQUEST['url']);
$url = $_REQUEST['url'];
}
-
+
if(! $url)
http_status_exit(404, 'Not found');
-
+
$maxwidth = $_REQUEST['maxwidth'];
$maxheight = $_REQUEST['maxheight'];
$format = $_REQUEST['format'];
if($format && $format !== 'json')
http_status_exit(501, 'Not implemented');
-
+
if(fnmatch('*/photos/*/album/*',$url))
$arr = $this->oep_album_reply($_REQUEST);
elseif(fnmatch('*/photos/*/image/*',$url))
@@ -47,7 +47,7 @@ class Oep extends \Zotlabs\Web\Controller {
$arr = $this->oep_cards_reply($_REQUEST);
elseif(fnmatch('*/articles/*',$url))
$arr = $this->oep_articles_reply($_REQUEST);
-
+
if($arr) {
if($html) {
if($arr['type'] === 'rich') {
@@ -61,13 +61,13 @@ class Oep extends \Zotlabs\Web\Controller {
}
killme();
}
-
+
http_status_exit(404,'Not found');
-
+
}
-
+
function oep_display_reply($args) {
-
+
$ret = array();
$url = $args['url'];
$maxwidth = intval($args['maxwidth']);
@@ -83,8 +83,8 @@ class Oep extends \Zotlabs\Web\Controller {
$item_normal = item_normal();
- $p = q("select * from item where mid like '%s' limit 1",
- dbesc($res . '%')
+ $p = q("select * from item where mid = '%s' limit 1",
+ dbesc($res)
);
if(! $p)
@@ -92,7 +92,7 @@ class Oep extends \Zotlabs\Web\Controller {
$c = channelx_by_n($p[0]['uid']);
-
+
if(! ($c && $res))
return;
@@ -100,27 +100,27 @@ class Oep extends \Zotlabs\Web\Controller {
return;
$sql_extra = item_permissions_sql($c['channel_id']);
-
- $p = q("select * from item where mid like '%s' and uid = %d $sql_extra $item_normal limit 1",
- dbesc($res . '%'),
+
+ $p = q("select * from item where mid = '%s' and uid = %d $sql_extra $item_normal limit 1",
+ dbesc($res),
intval($c['channel_id'])
);
if(! $p)
return;
-
+
xchan_query($p,true);
$p = fetch_post_tags($p,true);
// This function can get tripped up if the item is already a reshare
- // (the multiple share declarations do not parse cleanly if nested)
+ // (the multiple share declarations do not parse cleanly if nested)
// So build a template with a known nonsense string as the content, and then
// replace that known string with the actual rendered content, sending
// each content layer through bbcode() separately.
$x = '2eGriplW^*Jmf4';
-
+
$o = "[share author='".urlencode($p[0]['author']['xchan_name']).
"' profile='".$p[0]['author']['xchan_url'] .
"' avatar='".$p[0]['author']['xchan_photo_s'].
@@ -131,29 +131,29 @@ class Oep extends \Zotlabs\Web\Controller {
if($p[0]['title'])
$o .= '[b]'.$p[0]['title'].'[/b]'."\r\n";
- $o .= $x;
+ $o .= $x;
$o .= "[/share]";
$o = bbcode($o);
-
+
$o = str_replace($x,bbcode($p[0]['body']),$o);
-
+
$ret['type'] = 'rich';
-
+
$w = (($maxwidth) ? $maxwidth : 640);
$h = (($maxheight) ? $maxheight : intval($w * 2 / 3));
-
+
$ret['html'] = '<div style="width: ' . $w . '; height: ' . $h . '; font-family: sans-serif,arial,freesans;" >' . $o . '</div>';
-
+
$ret['width'] = $w;
$ret['height'] = $h;
-
+
return $ret;
-
+
}
function oep_cards_reply($args) {
-
+
$ret = [];
$url = $args['url'];
$maxwidth = intval($args['maxwidth']);
@@ -164,7 +164,7 @@ class Oep extends \Zotlabs\Web\Controller {
$res = $matches[3];
}
if(! ($nick && $res))
- return $ret;
+ return $ret;
$channel = channelx_by_nick($nick);
@@ -187,8 +187,8 @@ class Oep extends \Zotlabs\Web\Controller {
return $ret;
}
- $r = q("select * from item
- where item.uid = %d and item_type = %d
+ $r = q("select * from item
+ where item.uid = %d and item_type = %d
$sql_extra order by item.created desc",
intval($channel['channel_id']),
intval(ITEM_TYPE_CARD)
@@ -208,7 +208,7 @@ class Oep extends \Zotlabs\Web\Controller {
$x = '2eGriplW^*Jmf4';
-
+
$o = "[share author='".urlencode($p[0]['author']['xchan_name']).
"' profile='".$p[0]['author']['xchan_url'] .
"' avatar='".$p[0]['author']['xchan_photo_s'].
@@ -219,28 +219,28 @@ class Oep extends \Zotlabs\Web\Controller {
if($p[0]['title'])
$o .= '[b]'.$p[0]['title'].'[/b]'."\r\n";
- $o .= $x;
+ $o .= $x;
$o .= "[/share]";
$o = bbcode($o);
-
+
$o = str_replace($x,bbcode($p[0]['body']),$o);
-
+
$ret['type'] = 'rich';
-
+
$w = (($maxwidth) ? $maxwidth : 640);
$h = (($maxheight) ? $maxheight : intval($w * 2 / 3));
-
+
$ret['html'] = '<div style="width: ' . $w . '; height: ' . $h . '; font-family: sans-serif,arial,freesans;" >' . $o . '</div>';
-
+
$ret['width'] = $w;
$ret['height'] = $h;
-
+
return $ret;
-
+
}
function oep_articles_reply($args) {
-
+
$ret = [];
$url = $args['url'];
$maxwidth = intval($args['maxwidth']);
@@ -251,7 +251,7 @@ class Oep extends \Zotlabs\Web\Controller {
$res = $matches[3];
}
if(! ($nick && $res))
- return $ret;
+ return $ret;
$channel = channelx_by_nick($nick);
@@ -273,8 +273,8 @@ class Oep extends \Zotlabs\Web\Controller {
return $ret;
}
- $r = q("select * from item
- where item.uid = %d and item_type = %d
+ $r = q("select * from item
+ where item.uid = %d and item_type = %d
$sql_extra order by item.created desc",
intval($channel['channel_id']),
intval(ITEM_TYPE_ARTICLE)
@@ -294,7 +294,7 @@ class Oep extends \Zotlabs\Web\Controller {
$x = '2eGriplW^*Jmf4';
-
+
$o = "[share author='".urlencode($p[0]['author']['xchan_name']).
"' profile='".$p[0]['author']['xchan_url'] .
"' avatar='".$p[0]['author']['xchan_photo_s'].
@@ -305,71 +305,71 @@ class Oep extends \Zotlabs\Web\Controller {
if($p[0]['title'])
$o .= '[b]'.$p[0]['title'].'[/b]'."\r\n";
- $o .= $x;
+ $o .= $x;
$o .= "[/share]";
$o = bbcode($o);
-
+
$o = str_replace($x,bbcode($p[0]['body']),$o);
-
+
$ret['type'] = 'rich';
-
+
$w = (($maxwidth) ? $maxwidth : 640);
$h = (($maxheight) ? $maxheight : intval($w * 2 / 3));
-
+
$ret['html'] = '<div style="width: ' . $w . '; height: ' . $h . '; font-family: sans-serif,arial,freesans;" >' . $o . '</div>';
-
+
$ret['width'] = $w;
$ret['height'] = $h;
-
+
return $ret;
-
+
}
-
+
function oep_mid_reply($args) {
-
+
$ret = array();
$url = $args['url'];
$maxwidth = intval($args['maxwidth']);
$maxheight = intval($args['maxheight']);
-
+
if(preg_match('#//(.*?)/(.*?)/(.*?)/(.*?)mid\=(.*?)(&|$)#',$url,$matches)) {
$chn = $matches[3];
$res = $matches[5];
}
-
+
if(! ($chn && $res))
return;
$c = q("select * from channel where channel_address = '%s' limit 1",
dbesc($chn)
);
-
+
if(! $c)
return;
if(! perm_is_allowed($c[0]['channel_id'],get_observer_hash(),'view_stream'))
return;
-
+
$sql_extra = item_permissions_sql($c[0]['channel_id']);
-
+
$p = q("select * from item where mid = '%s' and uid = %d $sql_extra limit 1",
dbesc($res),
intval($c[0]['channel_id'])
);
if(! $p)
return;
-
+
xchan_query($p,true);
$p = fetch_post_tags($p,true);
// This function can get tripped up if the item is already a reshare
- // (the multiple share declarations do not parse cleanly if nested)
+ // (the multiple share declarations do not parse cleanly if nested)
// So build a template with a known nonsense string as the content, and then
// replace that known string with the actual rendered content, sending
// each content layer through bbcode() separately.
$x = '2eGriplW^*Jmf4';
-
+
$o = "[share author='".urlencode($p[0]['author']['xchan_name']).
"' profile='".$p[0]['author']['xchan_url'] .
"' avatar='".$p[0]['author']['xchan_photo_s'].
@@ -379,52 +379,52 @@ class Oep extends \Zotlabs\Web\Controller {
"' message_id='".$p[0]['mid']."']";
if($p[0]['title'])
$o .= '[b]'.$p[0]['title'].'[/b]'."\r\n";
- $o .= $x;
+ $o .= $x;
$o .= "[/share]";
$o = bbcode($o);
-
+
$o = str_replace($x,bbcode($p[0]['body']),$o);
$ret['type'] = 'rich';
-
+
$w = (($maxwidth) ? $maxwidth : 640);
$h = (($maxheight) ? $maxheight : intval($w * 2 / 3));
-
+
$ret['html'] = '<div style="width: ' . $w . '; height: ' . $h . '; font-family: sans-serif,arial,freesans;" >' . $o . '</div>';
-
+
$ret['width'] = $w;
$ret['height'] = $h;
-
+
return $ret;
-
+
}
-
+
function oep_profile_reply($args) {
-
-
+
+
require_once('include/channel.php');
$url = $args['url'];
-
+
if(preg_match('#//(.*?)/(.*?)/(.*?)(/|\?|&|$)#',$url,$matches)) {
$chn = $matches[3];
}
-
+
if(! $chn)
return;
-
+
$c = channelx_by_nick($chn);
-
+
if(! $c)
return;
-
-
+
+
$maxwidth = intval($args['maxwidth']);
$maxheight = intval($args['maxheight']);
-
+
$width = 800;
$height = 375;
-
+
if($maxwidth) {
$width = $maxwidth;
$height = (375 / 800) * $width;
@@ -434,59 +434,59 @@ class Oep extends \Zotlabs\Web\Controller {
$width = (800 / 375) * $maxheight;
$height = $maxheight;
}
- }
+ }
$ret = array();
-
+
$ret['type'] = 'rich';
$ret['width'] = intval($width);
$ret['height'] = intval($height);
-
+
$ret['html'] = get_zcard_embed($c,get_observer_hash(),array('width' => $width, 'height' => $height));
-
+
return $ret;
-
+
}
-
+
function oep_album_reply($args) {
-
+
$ret = array();
$url = $args['url'];
$maxwidth = intval($args['maxwidth']);
$maxheight = intval($args['maxheight']);
-
+
if(preg_match('|//(.*?)/(.*?)/(.*?)/album/|',$url,$matches)) {
$chn = $matches[3];
$res = basename($url);
}
-
+
if(! ($chn && $res))
return;
$c = q("select * from channel where channel_address = '%s' limit 1",
dbesc($chn)
);
-
+
if(! $c)
return;
-
+
if(! perm_is_allowed($c[0]['channel_id'],get_observer_hash(),'view_files'))
return;
$sql_extra = permissions_sql($c[0]['channel_id']);
-
+
$p = q("select resource_id from photo where album = '%s' and uid = %d and imgscale = 0 $sql_extra order by created desc limit 1",
dbesc($res),
intval($c[0]['channel_id'])
);
if(! $p)
return;
-
+
$res = $p[0]['resource_id'];
-
+
$r = q("select height, width, imgscale, resource_id from photo where uid = %d and resource_id = '%s' $sql_extra order by imgscale asc",
intval($c[0]['channel_id']),
dbesc($res)
);
-
+
if($r) {
foreach($r as $rr) {
$foundres = false;
@@ -494,62 +494,62 @@ class Oep extends \Zotlabs\Web\Controller {
continue;
if($maxwidth && $rr['width'] > $maxwidth)
continue;
- $foundres = true;
+ $foundres = true;
break;
}
-
+
if($foundres) {
$ret['type'] = 'link';
$ret['thumbnail_url'] = z_root() . '/photo/' . '/' . $rr['resource_id'] . '-' . $rr['imgscale'];
$ret['thumbnail_width'] = $rr['width'];
$ret['thumbnail_height'] = $rr['height'];
}
-
-
+
+
}
return $ret;
-
+
}
-
-
+
+
function oep_phototop_reply($args) {
-
+
$ret = array();
$url = $args['url'];
$maxwidth = intval($args['maxwidth']);
$maxheight = intval($args['maxheight']);
-
+
if(preg_match('|//(.*?)/(.*?)/(.*?)$|',$url,$matches)) {
$chn = $matches[3];
}
-
+
if(! $chn)
return;
$c = q("select * from channel where channel_address = '%s' limit 1",
dbesc($chn)
);
-
+
if(! $c)
return;
-
+
if(! perm_is_allowed($c[0]['channel_id'],get_observer_hash(),'view_files'))
return;
$sql_extra = permissions_sql($c[0]['channel_id']);
-
+
$p = q("select resource_id from photo where uid = %d and imgscale = 0 $sql_extra order by created desc limit 1",
intval($c[0]['channel_id'])
);
if(! $p)
return;
-
+
$res = $p[0]['resource_id'];
-
+
$r = q("select height, width, imgscale, resource_id from photo where uid = %d and resource_id = '%s' $sql_extra order by imgscale asc",
intval($c[0]['channel_id']),
dbesc($res)
);
-
+
if($r) {
foreach($r as $rr) {
$foundres = false;
@@ -557,42 +557,42 @@ class Oep extends \Zotlabs\Web\Controller {
continue;
if($maxwidth && $rr['width'] > $maxwidth)
continue;
- $foundres = true;
+ $foundres = true;
break;
}
-
+
if($foundres) {
$ret['type'] = 'link';
$ret['thumbnail_url'] = z_root() . '/photo/' . '/' . $rr['resource_id'] . '-' . $rr['imgscale'];
$ret['thumbnail_width'] = $rr['width'];
$ret['thumbnail_height'] = $rr['height'];
}
-
-
+
+
}
return $ret;
-
+
}
-
-
+
+
function oep_photo_reply($args) {
-
+
$ret = array();
$url = $args['url'];
$maxwidth = intval($args['maxwidth']);
$maxheight = intval($args['maxheight']);
-
+
if(preg_match('|//(.*?)/(.*?)/(.*?)/image/|',$url,$matches)) {
$chn = $matches[3];
$res = basename($url);
}
-
+
if(! ($chn && $res))
return;
$c = q("select * from channel where channel_address = '%s' limit 1",
dbesc($chn)
);
-
+
if(! $c)
return;
@@ -600,13 +600,13 @@ class Oep extends \Zotlabs\Web\Controller {
return;
$sql_extra = permissions_sql($c[0]['channel_id']);
-
-
+
+
$r = q("select height, width, imgscale, resource_id from photo where uid = %d and resource_id = '%s' $sql_extra order by imgscale asc",
intval($c[0]['channel_id']),
dbesc($res)
);
-
+
if($r) {
foreach($r as $rr) {
$foundres = false;
@@ -614,20 +614,20 @@ class Oep extends \Zotlabs\Web\Controller {
continue;
if($maxwidth && $rr['width'] > $maxwidth)
continue;
- $foundres = true;
+ $foundres = true;
break;
}
-
+
if($foundres) {
$ret['type'] = 'link';
$ret['thumbnail_url'] = z_root() . '/photo/' . '/' . $rr['resource_id'] . '-' . $rr['imgscale'];
$ret['thumbnail_width'] = $rr['width'];
$ret['thumbnail_height'] = $rr['height'];
}
-
-
+
+
}
return $ret;
-
+
}
}
diff --git a/Zotlabs/Module/Regate.php b/Zotlabs/Module/Regate.php
index 155f818ef..379195461 100644
--- a/Zotlabs/Module/Regate.php
+++ b/Zotlabs/Module/Regate.php
@@ -102,9 +102,10 @@ class Regate extends \Zotlabs\Web\Controller {
if (($flags & ACCOUNT_UNVERIFIED) == ACCOUNT_UNVERIFIED) {
// verification success
- $msg = 'ZAR1237I' . ' ' . t('Verify successfull');
+ $msg_code = 'ZAR1237I';
+ $msg = t('Verification successful');
$reonar = json_decode( $r['reg_stuff'], true);
- $reonar['valid'] = $now . ',' . $ip . ' ' . $did2 . ' ' . $msg;
+ $reonar['valid'] = $now . ',' . $ip . ' ' . $did2 . ' ' . $msg_code . ' ' . $msg;
// clear flag
$flags &= $flags ^ ACCOUNT_UNVERIFIED;
@@ -289,6 +290,7 @@ class Regate extends \Zotlabs\Web\Controller {
'$strings' => [
t('Hold on, you can start verification in'),
t('Please remember your verification token for ID'),
+ '',
t('Token validity')
]
]);
@@ -325,7 +327,7 @@ class Regate extends \Zotlabs\Web\Controller {
$r = $r[0];
// provide a button in case
- $resend = ($r['reg_didx'] == 'e') ? t('Resend') : false;
+ $resend = (($r['reg_didx'] == 'e') ? t('Resend email') : '');
// is still only instance admins intervention required?
if ($r['reg_flags'] == ACCOUNT_PENDING) {
@@ -373,6 +375,7 @@ class Regate extends \Zotlabs\Web\Controller {
'$form_security_token' => get_form_security_token("regate"),
'$title' => t('Registration verification'),
'$desc' => t('Please enter your verification token for ID'),
+ '$email_extra' => (($didx === 'e') ? t('Please check your email!') : ''),
'$id' => $did2,
// we might consider to not provide $pin if a registration delay is configured
// and the pin turns out to be readable by bots
@@ -399,6 +402,8 @@ class Regate extends \Zotlabs\Web\Controller {
return $o;
}
+ $email_extra = (($didx === 'e') ? t('Please check your email!') : '');
+
$o = replace_macros(get_markup_template('regate_pre.tpl'), [
'$title' => t('Registration verification'),
'$now' => $nowfmt,
@@ -406,7 +411,8 @@ class Regate extends \Zotlabs\Web\Controller {
'$countdown' => datetime_convert('UTC', 'UTC', $r['reg_startup'], 'c'),
'$strings' => [
t('Hold on, you can start verification in'),
- t('You will require the verification token for ID')
+ t('You will require the verification token for ID'),
+ $email_extra
]
]);
}
diff --git a/Zotlabs/Module/Register.php b/Zotlabs/Module/Register.php
index 17280c474..683fcdc36 100644
--- a/Zotlabs/Module/Register.php
+++ b/Zotlabs/Module/Register.php
@@ -116,9 +116,12 @@ class Register extends Controller {
if ($email) {
$email_result = check_account_email($email);
if ($email_result['error']) {
- notice($email_result['message'] . EOL);
+ if ($email_result['email_unverified']) {
+ goaway(z_root() . '/regate/' . bin2hex($email) . 'e');
+ }
return;
}
+
}
// case when an invited prepares the own account by supply own pw, accept tos, prepage channel (if auto)
@@ -280,44 +283,17 @@ class Register extends Controller {
return;
}
- } else {
-
- // no ivc entered
+ }
+ else {
if (!$invonly) {
- // possibly the email is just in use ?
- $reg = q("SELECT * from register WHERE reg_vital = 1 AND reg_email = '%s'",
- dbesc($email)
- );
-
- if (!$reg) {
- $act = q("SELECT * from account WHERE account_email = '%s'",
- dbesc($email)
- );
- }
-
- // in case an invitation was made but the invitecode was not entered, better ignore.
- // goaway(z_root() . '/regate/' . bin2hex($reg['email']));
-
- if (! $reg && !$act) {
- // email useable
- $well = true;
- } else {
- $msg = t('Email address already in use') . EOL;
- notice($msg);
- // problem, the msg tells to anonymous about existant email addrs
- // use another msg instead ? TODO ?
- // on the other hand can play the fail2ban game
- zar_log('ZAR0237E ' . $msg . ' (' . $email . ')');
- return;
- }
-
- } else {
+ $well = true;
+ }
+ else {
$msg = t('Registration on this hub is by invitation only') . EOL;
notice($msg);
zar_log('ZAR0233E ' . $msg);
return;
}
-
}
// check max daily registrations after we have dealt with the invitecode
@@ -346,7 +322,7 @@ class Register extends Controller {
$did2 = $email;
$didx = 'e';
- push_lang(($reg['lang']) ? $reg['lang'] : 'en');
+ push_lang(($reg['lang']) ? $reg['lang'] : App::$language);
$reonar['from'] = get_config('system', 'from_email');
$reonar['to'] = $email;
$reonar['subject'] = sprintf( t('Registration confirmation for %s'), get_config('system','sitename'));
@@ -399,7 +375,7 @@ class Register extends Controller {
dbesc($regexpire),
dbesc($email),
dbesc($password),
- dbesc(substr(get_best_language(),0,2)),
+ dbesc(App::$language),
dbesc($ip),
dbesc(json_encode($reonar))
);
diff --git a/Zotlabs/Update/_1245.php b/Zotlabs/Update/_1245.php
new file mode 100644
index 000000000..8212fde08
--- /dev/null
+++ b/Zotlabs/Update/_1245.php
@@ -0,0 +1,29 @@
+<?php
+
+namespace Zotlabs\Update;
+
+class _1245 {
+
+ function run() {
+
+ if(ACTIVE_DBTYPE == DBTYPE_MYSQL) {
+ return UPDATE_SUCCESS;
+ }
+
+ if(ACTIVE_DBTYPE == DBTYPE_POSTGRES) {
+ q("START TRANSACTION");
+
+ $r = dbq("create index hubloc_hash on hubloc (hubloc_hash)");
+
+ if($r) {
+ q("COMMIT");
+ return UPDATE_SUCCESS;
+ }
+
+ q("ROLLBACK");
+ return UPDATE_FAILED;
+ }
+
+ }
+
+}