Compare commits

...

115 Commits
4.7.2 ... 4.0.3

Author SHA1 Message Date
Mario
f6a4084f81 bump version 2019-04-26 11:30:23 +02:00
Mario Vavti
d5f89c165a update changelog
(cherry picked from commit a518471a27)
2019-04-26 11:29:01 +02:00
zotlabs
dce5080e53 permissions cleanup
(cherry picked from commit 2d886b65ce)
2019-04-26 10:52:35 +02:00
zotlabs
2221d4d612 add attachments to zot6 event objects, add zot6 to federated transports (webfinger)
(cherry picked from commit 0615709a7a)
2019-04-26 10:43:56 +02:00
Zot
5f73a46c05 import/export zot6 hublocs+xchans
(cherry picked from commit e2dfa1d72f)
2019-04-26 10:42:09 +02:00
Zot
b782c6bd16 update fix_system_urls() to handle zot6 hublocs (recommend cherry-pick to master)
(cherry picked from commit f8c583636c)
2019-04-26 10:41:52 +02:00
Zot
ab8d8aa552 hubloc confusion in magic auth
(cherry picked from commit 3c8f8b76aa)
2019-04-26 10:41:35 +02:00
Daniel Lowe
f955276694 Fix infinite loop using postgres as backend
unescapebin is handed a string in some cases, and it causes an infinite
loop when it does.  This ensures that the argument is a resource before
loading its contents.


(cherry picked from commit 9a6531e2a2)
2019-04-26 10:41:04 +02:00
zotlabs
77cc60faf2 required php version not available but allowed to continue
(cherry picked from commit 6feddcbced)
2019-04-26 10:40:02 +02:00
Mario Vavti
dcd8a05809 version bump 2019-04-08 11:12:02 +02:00
Mario Vavti
62e466f774 Merge branch 'dev' 2019-04-08 11:10:10 +02:00
Mario Vavti
70777a047d Merge branch 'master' of https://framagit.org/hubzilla/core 2019-04-08 11:09:55 +02:00
zotlabs
a93bd8d944 security: perms_pending not evaluated correctly
(cherry picked from commit 5a46f1229d)
2019-04-06 10:30:32 +02:00
Mario Vavti
28c3259449 Revert "item_store(): deduplicate by mid OR uuid"
This reverts commit 0d0ede7b14.
2019-03-24 15:49:03 +01:00
Mario Vavti
0d0ede7b14 item_store(): deduplicate by mid OR uuid 2019-03-24 15:47:57 +01:00
Mario Vavti
33ac85f637 bump version 2019-03-21 11:16:35 +01:00
Mario Vavti
efd9421dc9 Merge branch 'dev' 2019-03-21 11:13:54 +01:00
Mario Vavti
578230e32c fix typos
(cherry picked from commit d486b03089)
2019-03-18 21:59:09 +01:00
Mario Vavti
8559334339 some more xss prevention
(cherry picked from commit 968c6ed8be)
2019-03-18 21:37:02 +01:00
Mario Vavti
8893d9edc4 use urlencode
(cherry picked from commit 2ec3e4a912)
2019-03-18 13:31:25 +01:00
Mario Vavti
43753ec113 ENT_COMPAT will only take care of double-quotes. Use double-quotes here to prevent XSS
(cherry picked from commit a086745ec0)
2019-03-18 13:31:03 +01:00
Mario Vavti
f1fee1239b Merge branch 'dev' 2019-03-14 09:40:26 +01:00
Mario Vavti
9772726065 merge text.php and hmessages.po 2019-03-08 12:32:20 +01:00
Mario Vavti
8ecdde6cb5 Merge branch '4.0RC' 2019-03-08 11:52:57 +01:00
Mario Vavti
5b3824917d update changelog 2019-03-08 11:48:01 +01:00
Mario Vavti
ca4f10dc5e bump version 2019-03-08 11:46:36 +01:00
Mario
853fb33913 $sender is supposed to be string in libzot
(cherry picked from commit 507c71f64c)
2019-03-08 09:45:15 +01:00
zotlabs
e352cfc861 fetch private objects using delivery channel credentials
(cherry picked from commit 1f7622e4c4)
2019-03-08 09:35:04 +01:00
Mario Vavti
b019ca0746 update changelog
(cherry picked from commit 04fe7e61de)
2019-03-07 09:32:39 +01:00
zotlabs
beb4e00afb guest access tokens: xchan record not created on URL login
(cherry picked from commit 0b2213dd41)
2019-03-07 09:30:38 +01:00
Mario Vavti
9450305568 changelog
(cherry picked from commit 08725c44c6)
2019-03-06 21:10:51 +01:00
Mario Vavti
e18c64c9d9 bump version 2019-03-06 10:02:33 +01:00
Mario Vavti
7b018c60cb while in legacy zot $sender is expected to be an array, in zot6 $sender is expected to be a string (xchan_hash)
(cherry picked from commit 117a8cafca)
2019-03-06 09:58:11 +01:00
M. Dent
a81286c795 Add CURLOPT_CONNECTTIMEOUT
(cherry picked from commit 0c05e6593e)
2019-03-06 09:56:01 +01:00
zotlabs
571e9bf26a channel_type is not integer
(cherry picked from commit 26e7da0b96)
2019-03-06 09:49:40 +01:00
zotlabs
c4714e95b6 maintain compatibility with recent zot6 changes
(cherry picked from commit 98b1c7a38c)
2019-03-06 09:49:18 +01:00
zotlabs
d407e5556e api_router - allow parameters as final path argument
(cherry picked from commit 47001c3303)
2019-03-05 09:44:36 +01:00
zotlabs
6a3cfe54af remove clones from delivery recipients for top-level posts - they will get the post via clone sync
(cherry picked from commit 8e50fecccc)
2019-03-05 09:43:51 +01:00
zotlabs
a0bffe4a78 mod_oep: photos/album/xxxxx is no longer hex2bin/bin2hex but the album hash and is throwing php warnings when trying to decode
(cherry picked from commit 938fcdd1a6)
2019-03-05 09:43:29 +01:00
zotlabs
336c716a44 translate name of content filter (addon) app.
(cherry picked from commit 29cb62af3d)
2019-03-05 09:42:58 +01:00
mike
8810658858 Addressing new 'support@zotadel.net' support forum instead of old 'support@gravizot.de'
(cherry picked from commit e26de9c1d1)
2019-03-04 09:50:47 +01:00
mike
337dfd5ee4 Mention php-zip module dependency in administrator guide
(cherry picked from commit 747ce9b1f1)
2019-03-02 15:37:47 +01:00
DM42.Net (Matt Dent)
e37c9ed0a1 Use sender hash
(cherry picked from commit 5febc3e07d)
2019-03-02 15:37:22 +01:00
Mario Vavti
aa6a31eba5 iron out some kinks with scrollToItem() in combination with collapsed content and images
(cherry picked from commit 2244bf2ba2)
2019-03-02 15:32:36 +01:00
Mario Vavti
6aa041b193 version 2019-02-26 09:30:54 +01:00
Mario Vavti
0fdc0a01d0 Merge branch 'dev' into 4.0RC 2019-02-26 09:29:00 +01:00
Mario Vavti
08cacc4943 Merge branch 'dev' into 4.0RC 2019-02-26 09:06:46 +01:00
Klaus Weidenbach
87482e3746 Update PHP Version check during Setup.
Hubzilla 4.0 requires PHP7. The oldest still supported PHP branch is 7.1.
So check during Setup for PHP >= 7.1.


(cherry picked from commit 3f13c85b64)
2019-02-22 12:52:25 +01:00
Manuel Jiménez Friaza
8bb2d29a8d Update Spanish translation
(cherry picked from commit e6f289deb6)

(cherry picked from commit a3a90ea09b)
2019-02-21 12:43:03 +01:00
Mario Vavti
93039081d5 fix summary and use item_normal_search() for viewsrc so we can also view the source for articles, cards, etc.
(cherry picked from commit a0ad110cff)
2019-02-21 12:10:31 +01:00
Max Kostikov
89ee28f858 Update Russian hstrings.php
(cherry picked from commit 3a6ea57d2c)
2019-02-20 09:20:31 +01:00
Max Kostikov
5917786296 Update Russian hmessages.po
(cherry picked from commit e960bcfd1c)
2019-02-20 09:20:09 +01:00
Mario
90fd323ac5 bump version 2019-02-03 15:03:56 +01:00
Mario Vavti
b6c384a0f7 cleanup logging and return if query returns empty result
(cherry picked from commit c657d766cf)
2019-02-03 15:02:06 +01:00
Mario Vavti
cda8a7be38 do not overwrite $sql_extra
(cherry picked from commit 4706ff6938)
2019-02-03 15:01:39 +01:00
Mario Vavti
ddbc35181c fix page jumping when liking a collapsed/expanded post
(cherry picked from commit 54806f6ee8)
2019-01-24 13:39:49 +01:00
zotlabs
57dde3e980 failure to import mail
(cherry picked from commit 7b30fc4b82)
2019-01-11 12:20:50 +01:00
Mario Vavti
3eba0c2297 do not count removed channels
(cherry picked from commit 01f4ce96f1)
2019-01-10 13:36:31 +01:00
Mario
414b7e28d3 bump version 2018-12-22 21:02:49 +01:00
Mario Vavti
fca464071f update changelog
(cherry picked from commit cdb85f1309)
2018-12-22 21:01:50 +01:00
Mario Vavti
4f08f4b84c use count() instead of sizeof()
(cherry picked from commit 774dd6d5e3)
2018-12-22 20:20:58 +01:00
Mario Vavti
1b5175d018 check if we deal with an array before sizeof()
(cherry picked from commit 339c9cceec)
2018-12-22 20:20:13 +01:00
Mario Vavti
0bfda6d4c8 revert padding for text highlight. It is messing with indent punctuation and decreases legibility of the highlighted text.
(cherry picked from commit fac3579fb0)
2018-12-22 20:18:12 +01:00
Mario
880b22604b manualy Fix cURL with HTTP/2 due to merge conflicts 2018-12-22 20:17:20 +01:00
Mario
04a2dc075f manualy remove scale_external_images() due to merge conflicts 2018-12-22 20:08:44 +01:00
Max Kostikov
01448c152c Remove scale_external_images()
(cherry picked from commit 1541f67eab)
2018-12-22 20:04:09 +01:00
Max Kostikov
a09beb3833 Remove scale_external_images()
(cherry picked from commit a2959c6e9e)
2018-12-22 20:03:49 +01:00
phani00
feda1e6d84 remove color from style.css (default) but add a little padding; add color & border radius to dark.css.
(cherry picked from commit 2354bb5427)
2018-12-22 19:54:48 +01:00
phani00
4256bea418 change hl text color to the default text color in non-dark schema. looks good, except in dark, where i can change it in dark.css.
(cherry picked from commit b97143e9db)
2018-12-22 19:54:31 +01:00
phani00
4d47b098e5 remove some fancy formatting.
(cherry picked from commit aaab905e72)
2018-12-22 19:54:11 +01:00
Mario Vavti
163754a46c make mod channel deal with b64 encoded mid\s
;


(cherry picked from commit bc6d384ca9)
2018-12-22 19:53:37 +01:00
phani00
66b56416b6 new fix for dark theme
change implementation of hl-tags in include/bbcode.php
insert class='default-highlight' instead of background-color: 'yellow' into span
add span.default-highlight definition to view/theme/redbasic/css/style.css

this works for all schemas incl. dark.


(cherry picked from commit aace8a14ce)
2018-12-22 19:52:39 +01:00
phani00
c855346358 remove my dark theme fixes.
(cherry picked from commit 70a7661711)
2018-12-22 19:52:09 +01:00
Pascal Deklerck
0e32c86c3d Update OAuth2Storage.php - fix email retrieval in getUser
(cherry picked from commit 6a825cc504)
2018-12-22 19:51:16 +01:00
M. Dent
19952264c8 Add reload to util/addons
(cherry picked from commit 0e5d76e735)
2018-12-22 19:43:16 +01:00
Mario Vavti
5ec1e97cae do not add timestamp to the photo src. caching is handled in mod photo now.
(cherry picked from commit e34853e19e)
2018-12-21 21:45:33 +01:00
zotlabs
5f5746a2f6 like permission issue
(cherry picked from commit 389b4beba4)
2018-12-21 21:44:33 +01:00
Mario Vavti
d0ee6d1ad2 missing observer check
(cherry picked from commit ec769bc9f9)
2018-12-20 19:45:59 +01:00
zotlabs
06c71eec65 default curl to http/1.1
(cherry picked from commit 04a45a407e)
2018-12-17 12:17:44 +01:00
DM42.Net (Matt Dent)
aabc6c2825 Add return if no local_channel()
(cherry picked from commit 5bcc379530)
2018-12-17 10:46:43 +01:00
DM42.Net (Matt Dent)
8323458da9 ARTICLES MODULE: Default to local_channel() user when no argv(1) is passed.
(cherry picked from commit 3f06a857c2)
2018-12-17 10:46:24 +01:00
Mario Vavti
d7c7ff1c12 fix wiki preview issue with hyperlinks
(cherry picked from commit 919ea9f750)
2018-12-15 18:20:21 +01:00
Mario Vavti
d77c7d51e3 update changelog
(cherry picked from commit 4ff3c57976)
2018-12-14 21:47:20 +01:00
Mario Vavti
d51d0160d3 fix issue with linkdropper
(cherry picked from commit f81a3ba45d)
2018-12-14 21:32:23 +01:00
zotlabs
c2ad9d4996 regression: the ability to order apps messed up since adding pinned apps to the ordering
(cherry picked from commit 6464099364)
2018-12-14 21:31:02 +01:00
Mario
79f828125d version bump 2018-12-14 11:47:02 +01:00
Mario Vavti
ad4b18cbbe return on readImageBlob() exception
(cherry picked from commit 993db01400)
2018-12-14 11:31:11 +01:00
Mario Vavti
1bd49671b7 add photo_view_filter hook and fix minor issue with unset auto_save_draft variable which resultet in a javascript error
(cherry picked from commit 7894fed741)
2018-12-14 11:30:57 +01:00
zotlabs
9896057549 home notifications won't expand if there are more than 300 unseen network notifications ahead of them.
(cherry picked from commit 30efeb5bec)
2018-12-14 11:30:25 +01:00
phani00
44832bbacb change redbasic dark schema to make categories and highlights readable
additions to /view/theme/redbasic/schema/dark.css to change the appearance of category
badges and highlighted text ([hl]...[/hl]).

hl text changed from master: it's not 'strong' anymore. commented out the pseudo-class
selector that works in master but not in dev anymore.


(cherry picked from commit 18caf0273f)
2018-12-14 11:30:05 +01:00
zotlabs
f20a923dd7 total_identities restriction off by one
(cherry picked from commit e60fb17524)
2018-12-14 11:29:33 +01:00
zotlabs
30403da326 reset page title if article has no title.
(cherry picked from commit 8ab1f31058)
2018-12-14 11:29:06 +01:00
Mario Vavti
6b68a76bbe quickfix for es-es language 2018-12-03 21:22:02 +01:00
Mario Vavti
8f10b58cb1 version 3.8.6 2018-12-03 12:23:55 +01:00
Mario Vavti
f8bc408abc update strings 2018-12-03 12:07:56 +01:00
Mario Vavti
f581f6163a optimize autoload cache 2018-12-03 11:52:38 +01:00
Mario Vavti
88486a1278 changelog 2018-12-03 11:47:28 +01:00
Mario Vavti
9fcadc2d7c prevent incompatible export files (osada/zap) from being imported (manual patch from dev) 2018-12-03 11:08:39 +01:00
Mario Vavti
9ef6c57ca5 more notifications fixes 2018-12-03 10:46:49 +01:00
Mario Vavti
443d7684db catch exception if readImageBlob() receives bogus data 2018-12-03 10:45:43 +01:00
Mario Vavti
a3ba7f0788 fallback to url if we have not got an addr 2018-12-02 11:38:13 +01:00
Mario Vavti
f083c0cba1 fix filtering by addr in handleNotificationsItems() 2018-12-02 10:58:54 +01:00
Mario Vavti
defa2d9df1 make pdf preview 100% width and 300px height to match it openstreetmaps preview
(cherry picked from commit df84352385)
2018-12-02 10:18:37 +01:00
Mario Vavti
05c422ef23 redbasic sticky aside fixes
(cherry picked from commit 8d4f6a7865)
2018-12-02 10:18:20 +01:00
zotlabs
51d274961b typo
(cherry picked from commit 6f22e47feb)
2018-12-02 10:18:05 +01:00
zotlabs
4b4cc04897 allow notification filtering by name or addr
(cherry picked from commit c6acb6191c)
2018-12-02 10:17:45 +01:00
zotlabs
4bf3d4d87a attached photo permissions regression
(cherry picked from commit 6cade7d935)
2018-12-02 10:17:29 +01:00
Manuel Jiménez Friaza
71cc980e96 Revision 1 doc/es-es/about/about.bb
(cherry picked from commit 5ac08ec3aa)

(cherry picked from commit 37d563c30e)
2018-12-02 10:16:50 +01:00
Mario
58c0b81908 use flex for the default template
(cherry picked from commit 3775be4ce9)
2018-12-02 10:16:24 +01:00
M. Dent
3b42bd43ab Do not store serialized pconfig value received via to Module/Pconfig.php
(cherry picked from commit 6b02c664fb)
2018-12-02 10:15:55 +01:00
Mario
a151532ffa update jquery-file-upload and psr-log via composer
(cherry picked from commit c7ae3fdc9a)
2018-12-02 10:14:58 +01:00
Mario
a0d1ce77dc update imagesloaded to version 4.1.4 via composer
(cherry picked from commit c667572d3e)
2018-12-02 10:14:37 +01:00
Manuel Jiménez Friaza
863cae1bab Update es-es
(cherry picked from commit ca98a566ee)
2018-12-02 10:13:43 +01:00
zotlabs
4010ea814a fix mastodon tag notifications (again)
(cherry picked from commit 8e71324514)
2018-12-02 10:13:12 +01:00
zotlabs
8e25c091f4 no mention notifications from mastodon (and pleroma)
(cherry picked from commit ea235c0c67)
2018-12-02 10:12:44 +01:00
14 changed files with 179 additions and 57 deletions

View File

@@ -1,3 +1,14 @@
Hubzilla 4.0.3 (2019-04-26)
- Add attachments to zot6 event objects
- Add zot6 to federated transports
- Update import/export to handle zot6 hublocs and xchans
- Update fix_system_urls() to handle zot6 hublocs
- Fix infinite loop using postgres as backend
- Fix magic auth in combination with zot6
- Fix check for required PHP version
- Diaspora: favour diaspora protocol identities over others with same hubloc or xchan address
Hubzilla 4.0.2 (2019-04-08)
- Port cdav calendar to fullcalendar version 4
- Fix perms_pending not evaluated correctly

View File

@@ -3107,7 +3107,11 @@ class Libzot {
foreach($arr as $v) {
if($v[$check] === 'zot6') {
return $v;
}
}
foreach($arr as $v) {
if($v[$check] === 'zot') {
return $v;
}
}

View File

@@ -280,8 +280,9 @@ class Import extends \Zotlabs\Web\Controller {
// replace any existing xchan we may have on this site if we're seizing control
$r = q("delete from xchan where xchan_hash = '%s'",
dbesc($channel['channel_hash'])
$r = q("delete from xchan where ( xchan_hash = '%s' or xchan_hash = '%s' ) ",
dbesc($channel['channel_hash']),
dbesc($channel['channel_portable_id'])
);
$r = xchan_store_lowlevel(
@@ -303,6 +304,30 @@ class Import extends \Zotlabs\Web\Controller {
'xchan_name_date' => datetime_convert()
]
);
if($channel['channel_portable_id']) {
$r = xchan_store_lowlevel(
[
'xchan_hash' => \Zotlabs\Lib\Libzot::make_xchan_hash($channel['channel_guid'],$channel['channel_pubkey']),
'xchan_guid' => $channel['channel_guid'],
'xchan_guid_sig' => 'sha256.' . $channel['channel_guid_sig'],
'xchan_pubkey' => $channel['channel_pubkey'],
'xchan_photo_l' => z_root() . "/photo/profile/l/" . $channel['channel_id'],
'xchan_photo_m' => z_root() . "/photo/profile/m/" . $channel['channel_id'],
'xchan_photo_s' => z_root() . "/photo/profile/s/" . $channel['channel_id'],
'xchan_addr' => channel_reddress($channel),
'xchan_url' => z_root() . '/channel/' . $channel['channel_address'],
'xchan_connurl' => z_root() . '/poco/' . $channel['channel_address'],
'xchan_follow' => z_root() . '/follow?f=&url=%s',
'xchan_name' => $channel['channel_name'],
'xchan_network' => 'zot6',
'xchan_photo_date' => datetime_convert(),
'xchan_name_date' => datetime_convert()
]
);
}
}
logger('import step 6');
@@ -312,10 +337,20 @@ class Import extends \Zotlabs\Web\Controller {
if($xchans) {
foreach($xchans as $xchan) {
$hash = make_xchan_hash($xchan['xchan_guid'],$xchan['xchan_guid_sig']);
if($xchan['xchan_network'] === 'zot' && $hash !== $xchan['xchan_hash']) {
logger('forged xchan: ' . print_r($xchan,true));
continue;
if($xchan['xchan_network'] === 'zot') {
$hash = make_xchan_hash($xchan['xchan_guid'],$xchan['xchan_guid_sig']);
if($hash !== $xchan['xchan_hash']) {
logger('forged xchan: ' . print_r($xchan,true));
continue;
}
}
if($xchan['xchan_network'] === 'zot6') {
$zhash = \Zotlabs\Lib\Libzot::make_xchan_hash($xchan['xchan_guid'],$xchan['xchan_pubkey']);
if($zhash !== $xchan['xchan_hash']) {
logger('forged xchan: ' . print_r($xchan,true));
continue;
}
}
if(! array_key_exists('xchan_hidden',$xchan)) {

View File

@@ -169,8 +169,8 @@ class Magic extends \Zotlabs\Web\Controller {
$token = $j['token'];
}
$x = strpbrk($dest,'?&');
$args = (($x) ? '&owt=' . $token : '?f=&owt=' . $token) . (($delegate) ? '&delegate=1' : '');
$strp = strpbrk($dest,'?&');
$args = (($strp) ? '&owt=' . $token : '?f=&owt=' . $token) . (($delegate) ? '&delegate=1' : '');
goaway($dest . $args);
}
}

View File

@@ -30,12 +30,29 @@ class Owa extends \Zotlabs\Web\Controller {
$keyId = $sigblock['keyId'];
if($keyId) {
// Hubzilla connections can have both zot and zot6 hublocs
// The connections will usually be zot so match those first
$r = q("select * from hubloc left join xchan on hubloc_hash = xchan_hash
where ( hubloc_addr = '%s' or hubloc_id_url = '%s' ) ",
where ( hubloc_addr = '%s' or hubloc_id_url = '%s' ) and hubloc_network = 'zot' ",
dbesc(str_replace('acct:','',$keyId)),
dbesc($keyId)
);
if(! $r) {
// If nothing was found, try searching on any network
if (! $r) {
$r = q("select * from hubloc left join xchan on hubloc_hash = xchan_hash
where ( hubloc_addr = '%s' or hubloc_id_url = '%s' )",
dbesc(str_replace('acct:','',$keyId)),
dbesc($keyId)
);
}
// If nothing was found on any network, use network discovery and create a new record
if (! $r) {
$found = discover_by_webbie(str_replace('acct:','',$keyId));
if($found) {
$r = q("select * from hubloc left join xchan on hubloc_hash = xchan_hash
@@ -45,7 +62,8 @@ class Owa extends \Zotlabs\Web\Controller {
);
}
}
if($r) {
if ($r) {
foreach($r as $hubloc) {
$verified = \Zotlabs\Web\HTTPSig::verify(file_get_contents('php://input'),$hubloc['xchan_pubkey']);
if($verified && $verified['header_signed'] && $verified['header_valid']) {
@@ -53,7 +71,7 @@ class Owa extends \Zotlabs\Web\Controller {
logger('OWA success: ' . $hubloc['hubloc_addr'],LOGGER_DATA);
$ret['success'] = true;
$token = random_string(32);
\Zotlabs\Lib\Verify::create('owt',0,$token,$hubloc['hubloc_addr']);
\Zotlabs\Lib\Verify::create('owt',0,$token,$hubloc['hubloc_network'] . ',' . $hubloc['hubloc_addr']);
$result = '';
openssl_public_encrypt($token,$result,$hubloc['xchan_pubkey']);
$ret['encrypted_token'] = base64url_encode($result);

View File

@@ -377,7 +377,7 @@ class Setup extends \Zotlabs\Web\Controller {
if(version_compare(PHP_VERSION, '7.1') < 0) {
$help .= t('PHP version 7.1 or greater is required.');
$this->check_add($checks, t('PHP version'), false, false, $help);
$this->check_add($checks, t('PHP version'), false, true, $help);
}
if(strlen($phpath)) {

View File

@@ -128,7 +128,7 @@ class Wfinger extends \Zotlabs\Web\Controller {
'http://webfinger.net/ns/name' => $r[0]['channel_name'],
'http://xmlns.com/foaf/0.1/name' => $r[0]['channel_name'],
'https://w3id.org/security/v1#publicKeyPem' => $r[0]['xchan_pubkey'],
'http://purl.org/zot/federation' => 'zot'
'http://purl.org/zot/federation' => 'zot,zot6'
];
foreach($aliases as $alias)

View File

@@ -50,7 +50,7 @@ require_once('include/attach.php');
require_once('include/bbcode.php');
define ( 'PLATFORM_NAME', 'hubzilla' );
define ( 'STD_VERSION', '4.1.2' );
define ( 'STD_VERSION', '4.0.3' );
define ( 'ZOT_REVISION', '6.0a' );
define ( 'DB_UPDATE_VERSION', 1231 );
@@ -1507,12 +1507,13 @@ function fix_system_urls($oldurl, $newurl) {
dbesc($rv['xchan_hash'])
);
$y = q("update hubloc set hubloc_addr = '%s', hubloc_url = '%s', hubloc_url_sig = '%s', hubloc_host = '%s', hubloc_callback = '%s' where hubloc_hash = '%s' and hubloc_url = '%s'",
$y = q("update hubloc set hubloc_addr = '%s', hubloc_url = '%s', hubloc_id_url = '%s', hubloc_url_sig = '%s', hubloc_host = '%s', hubloc_callback = '%s' where hubloc_hash = '%s' and hubloc_url = '%s'",
dbesc($channel_address . '@' . $rhs),
dbesc($newurl),
dbesc(base64url_encode(rsa_sign($newurl,$c[0]['channel_prvkey']))),
dbesc(str_replace($oldurl,$newurl,$rv['hubloc_id_url'])),
dbesc(($rv['hubloc_network'] === 'zot6') ? \Zotlabs\Lib\Libzot::sign($newurl,$c[0]['channel_prvkey']) : base64url_encode(rsa_sign($newurl,$c[0]['channel_prvkey']))),
dbesc($newhost),
dbesc($newurl . '/post'),
dbesc(($rv['hubloc_network'] === 'zot6') ? $newurl . '/zot' : $newurl . '/post'),
dbesc($rv['xchan_hash']),
dbesc($oldurl)
);

View File

@@ -873,6 +873,13 @@ function identity_basic_export($channel_id, $sections = null) {
$ret['abook'][$x]['abconfig'] = $abconfig;
translate_abook_perms_outbound($ret['abook'][$x]);
}
// pick up the zot6 xchan and hublocs also
if($ret['channel']['channel_portable_id']) {
$xchans[] = $ret['channel']['channel_portable_id'];
}
stringify_array_elms($xchans);
}
@@ -1812,13 +1819,16 @@ function zid_init() {
call_hooks('zid_init', $arr);
if(! local_channel()) {
$r = q("select * from hubloc where hubloc_addr = '%s' order by hubloc_connected desc limit 1",
$r = q("select * from hubloc where hubloc_addr = '%s' order by hubloc_connected desc",
dbesc($tmp_str)
);
if(! $r) {
Master::Summon(array('Gprobe',bin2hex($tmp_str)));
}
if($r && remote_channel() && remote_channel() === $r[0]['hubloc_hash'])
if($r) {
$r = zot_record_preferred($r);
}
if($r && remote_channel() && remote_channel() === $r['hubloc_hash'])
return;
logger('Not authenticated. Invoking reverse magic-auth for ' . $tmp_str);
@@ -1826,8 +1836,8 @@ function zid_init() {
$query = App::$query_string;
$query = str_replace(array('?zid=','&zid='),array('?rzid=','&rzid='),$query);
$dest = '/' . $query;
if($r && ($r[0]['hubloc_url'] != z_root()) && (! strstr($dest,'/magic')) && (! strstr($dest,'/rmagic'))) {
goaway($r[0]['hubloc_url'] . '/magic' . '?f=&rev=1&owa=1&bdest=' . bin2hex(z_root() . $dest));
if($r && ($r['hubloc_url'] != z_root()) && (! strstr($dest,'/magic')) && (! strstr($dest,'/rmagic'))) {
goaway($r['hubloc_url'] . '/magic' . '?f=&rev=1&owa=1&bdest=' . bin2hex(z_root() . $dest));
}
else
logger('No hubloc found.');

View File

@@ -161,23 +161,17 @@ class dba_pdo extends dba_driver {
}
function unescapebin($str) {
if($this->driver_dbtype === 'pgsql' && (! is_null($str))) {
$x = '';
while(! feof($str)) {
$x .= fread($str,8192);
if($this->driver_dbtype === 'pgsql') {
if(gettype($str) === 'resource') {
$str = stream_get_contents($str);
}
if(substr($x,0,2) === '\\x') {
$x = hex2bin(substr($x,2));
if(substr($str,0,2) === '\\x') {
$str = hex2bin(substr($str,2));
}
return $x;
}
else {
return $str;
}
return $str;
}
function getdriver() {
return 'pdo';
}

View File

@@ -4,8 +4,11 @@
* @brief Event related functions.
*/
use Sabre\VObject;
use Zotlabs\Lib\Activity;
use Ramsey\Uuid\Uuid;
use Ramsey\Uuid\Exception\UnsatisfiedDependencyException;
@@ -65,7 +68,7 @@ function format_event_html($ev) {
}
function format_event_obj($jobject) {
$event = array();
$event = [];
$object = json_decode($jobject,true);
@@ -1046,6 +1049,7 @@ function event_store_item($arr, $event) {
'location' => $arr['location'],
'adjust' => $arr['adjust'],
'content' => format_event_bbcode($arr),
'attachment' => Activity::encode_attachment($r[0]),
'author' => array(
'name' => $r[0]['xchan_name'],
'address' => $r[0]['xchan_addr'],
@@ -1200,6 +1204,7 @@ function event_store_item($arr, $event) {
'location' => $arr['location'],
'adjust' => $arr['adjust'],
'content' => format_event_bbcode($arr),
'attachment' => Activity::encode_attachment($item_arr),
'author' => array(
'name' => $x[0]['xchan_name'],
'address' => $x[0]['xchan_addr'],

View File

@@ -157,7 +157,7 @@ function get_all_perms($uid, $observer_xchan, $check_siteblock = true, $default_
// If we're still here, we have an observer, check the network.
if($channel_perm & PERMS_NETWORK) {
if($x && $x[0]['xchan_network'] === 'zot') {
if($x && in_array($x[0]['xchan_network'],[ 'zot','zot6'])) {
$ret[$perm_name] = true;
continue;
}
@@ -321,6 +321,14 @@ function perm_is_allowed($uid, $observer_xchan, $permission, $check_siteblock =
dbesc($observer_xchan)
);
if($y) {
// This requires an explanation and the effects are subtle.
// The following line creates a fake connection, and this allows
// access tokens to have specific permissions even though they are
// not actual connections.
// The existence of this fake entry must be checked when dealing
// with connection related permissions.
$x = array(pseudo_abook($y[0]));
}
}
@@ -349,6 +357,7 @@ function perm_is_allowed($uid, $observer_xchan, $permission, $check_siteblock =
return true;
// If it's an unauthenticated observer, we only need to see if PERMS_PUBLIC is set
// We just did that.
if(! $observer_xchan) {
return false;
@@ -357,7 +366,7 @@ function perm_is_allowed($uid, $observer_xchan, $permission, $check_siteblock =
// If we're still here, we have an observer, check the network.
if($channel_perm & PERMS_NETWORK) {
if (($x && $x[0]['xchan_network'] === 'zot') || ($y && $y[0]['xchan_network'] === 'zot'))
if ($x && in_array($x[0]['xchan_network'], ['zot','zot6']))
return true;
}
@@ -373,8 +382,7 @@ function perm_is_allowed($uid, $observer_xchan, $permission, $check_siteblock =
return false;
}
// From here on we require that the observer be a connection and
// handle whether we're allowing any, approved or specific ones
// From here on we require that the observer be a connection or pseudo connection
if(! $x) {
return false;

View File

@@ -1,5 +1,6 @@
<?php
use Zotlabs\Lib\Verify;
function is_matrix_url($url) {
@@ -270,34 +271,45 @@ function red_zrlify_img_callback($matches) {
*/
function owt_init($token) {
\Zotlabs\Lib\Verify::purge('owt', '3 MINUTE');
Verify::purge('owt', '3 MINUTE');
$ob_hash = \Zotlabs\Lib\Verify::get_meta('owt', 0, $token);
$key = Verify::get_meta('owt', 0, $token);
if($ob_hash === false) {
if($key === false) {
return;
}
$parts = explode(',',$key,2);
if(count($parts) < 2) {
return;
}
$r = q("select * from hubloc left join xchan on xchan_hash = hubloc_hash
where hubloc_addr = '%s' order by hubloc_id desc",
dbesc($ob_hash)
where hubloc_network = '%s' and hubloc_addr = '%s' order by hubloc_id desc",
dbesc($parts[0]),
dbesc($parts[1])
);
if(! $r) {
// finger them if they can't be found.
$j = \Zotlabs\Zot\Finger::run($ob_hash, null);
// @todo check that this is still needed. Discovery should have been performed in the Owa module.
$j = \Zotlabs\Zot\Finger::run($parts[1], null);
if ($j['success']) {
import_xchan($j);
$r = q("select * from hubloc left join xchan on xchan_hash = hubloc_hash
where hubloc_addr = '%s' order by hubloc_id desc",
dbesc($ob_hash)
where hubloc_network = '%s' and hubloc_addr = '%s' order by hubloc_id desc",
dbesc($parts[0]),
dbesc($parts[1])
);
}
}
if(! $r) {
logger('owt: unable to finger ' . $ob_hash);
logger('owt: unable to finger ' . $key);
return;
}
$hubloc = $r[0];
$_SESSION['authenticated'] = 1;
@@ -324,7 +336,7 @@ function owt_init($token) {
if (! $delegate_success) {
// normal visitor (remote_channel) login session credentials
$_SESSION['visitor_id'] = $hubloc['xchan_hash'];
$_SESSION['my_url'] = $hubloc['xchan_url'];
$_SESSION['my_url'] = $hubloc['xchan_url'];
$_SESSION['my_address'] = $hubloc['hubloc_addr'];
$_SESSION['remote_hub'] = $hubloc['hubloc_url'];
$_SESSION['DNT'] = 1;
@@ -332,7 +344,7 @@ function owt_init($token) {
$arr = [
'xchan' => $hubloc,
'url' => \App::$query_string,
'url' => App::$query_string,
'session' => $_SESSION
];
/**
@@ -344,11 +356,11 @@ function owt_init($token) {
*/
call_hooks('magic_auth_success', $arr);
\App::set_observer($hubloc);
App::set_observer($hubloc);
require_once('include/security.php');
\App::set_groups(init_groups_visitor($_SESSION['visitor_id']));
App::set_groups(init_groups_visitor($_SESSION['visitor_id']));
if(! get_config('system', 'hide_owa_greeting'))
info(sprintf( t('OpenWebAuth: %1$s welcomes %2$s'),\App::get_hostname(), $hubloc['xchan_name']));
info(sprintf( t('OpenWebAuth: %1$s welcomes %2$s'),App::get_hostname(), $hubloc['xchan_name']));
logger('OpenWebAuth: auth success from ' . $hubloc['xchan_addr']);
}
@@ -384,7 +396,9 @@ function observer_auth($ob_hash) {
return;
}
$hubloc = $r[0];
// Note: this has no Libzot namespace so prefers zot over zot6
$hubloc = zot_record_preferred($r);
$_SESSION['authenticated'] = 1;
@@ -395,8 +409,8 @@ function observer_auth($ob_hash) {
$_SESSION['remote_hub'] = $hubloc['hubloc_url'];
$_SESSION['DNT'] = 1;
\App::set_observer($hubloc);
App::set_observer($hubloc);
require_once('include/security.php');
\App::set_groups(init_groups_visitor($_SESSION['visitor_id']));
App::set_groups(init_groups_visitor($_SESSION['visitor_id']));
}

View File

@@ -5270,3 +5270,25 @@ function zot_reply_notify($data) {
$ret['success'] = true;
json_return_and_die($ret);
}
function zot_record_preferred($arr, $check = 'hubloc_network') {
if(! $arr) {
return $arr;
}
foreach($arr as $v) {
if($v[$check] === 'zot') {
return $v;
}
}
foreach($arr as $v) {
if($v[$check] === 'zot6') {
return $v;
}
}
return $arr[0];
}