From 4a5d1076eda66f4d562219468b84dff2bd8de86b Mon Sep 17 00:00:00 2001 From: Klaus Weidenbach Date: Sat, 17 Feb 2018 01:49:01 +0100 Subject: Refactor OAuth2Server a bit. --- Zotlabs/Identity/OAuth2Server.php | 43 +++++++++++++++---------------------- Zotlabs/Module/Authorize.php | 45 +++++++++++++++++++-------------------- Zotlabs/Module/Token.php | 9 ++++---- 3 files changed, 44 insertions(+), 53 deletions(-) diff --git a/Zotlabs/Identity/OAuth2Server.php b/Zotlabs/Identity/OAuth2Server.php index 3d7d5efb2..cbb4748fe 100644 --- a/Zotlabs/Identity/OAuth2Server.php +++ b/Zotlabs/Identity/OAuth2Server.php @@ -2,42 +2,33 @@ namespace Zotlabs\Identity; -class OAuth2Server { +class OAuth2Server extends \OAuth2\Server { - public $server; + public function __construct(OAuth2Storage $storage, $config = []) { - public function __construct() { + if(! is_array($config)) { + $config = [ + 'use_openid_connect' => true, + 'issuer' => \Zotlabs\Lib\System::get_site_name() + ]; + } - $storage = new OAuth2Storage(\DBA::$dba->db); - - $config = [ - 'use_openid_connect' => true, - 'issuer' => \Zotlabs\Lib\System::get_site_name() - ]; - - // Pass a storage object or array of storage objects to the OAuth2 server class - $this->server = new \OAuth2\Server($storage,$config); + parent::__construct($storage, $config); // Add the "Client Credentials" grant type (it is the simplest of the grant types) - $this->server->addGrantType(new \OAuth2\GrantType\ClientCredentials($storage)); + $this->addGrantType(new \OAuth2\GrantType\ClientCredentials($storage)); // Add the "Authorization Code" grant type (this is where the oauth magic happens) - $this->server->addGrantType(new \OAuth2\GrantType\AuthorizationCode($storage)); + $this->addGrantType(new \OAuth2\GrantType\AuthorizationCode($storage)); - $keyStorage = new \OAuth2\Storage\Memory( [ - 'keys' => [ - 'public_key' => get_config('system','pubkey'), - 'private_key' => get_config('system','prvkey') + $keyStorage = new \OAuth2\Storage\Memory( [ + 'keys' => [ + 'public_key' => get_config('system', 'pubkey'), + 'private_key' => get_config('system', 'prvkey') ] ]); - $this->server->addStorage($keyStorage,'public_key'); - + $this->addStorage($keyStorage, 'public_key'); } - public function get_server() { - return $this->server; - } - - -} \ No newline at end of file +} diff --git a/Zotlabs/Module/Authorize.php b/Zotlabs/Module/Authorize.php index 7676b0855..254700b4e 100644 --- a/Zotlabs/Module/Authorize.php +++ b/Zotlabs/Module/Authorize.php @@ -2,13 +2,13 @@ namespace Zotlabs\Module; +use Zotlabs\Identity\OAuth2Storage; -class Authorize extends \Zotlabs\Web\Controller { +class Authorize extends \Zotlabs\Web\Controller { function init() { - // workaround for HTTP-auth in CGI mode if (x($_SERVER, 'REDIRECT_REMOTE_USER')) { $userpass = base64_decode(substr($_SERVER["REDIRECT_REMOTE_USER"], 6)) ; @@ -28,41 +28,40 @@ class Authorize extends \Zotlabs\Web\Controller { } } - $s = new \Zotlabs\Identity\OAuth2Server(); + $s = new \Zotlabs\Identity\OAuth2Server(new OAuth2Storage(\DBA::$dba->db)); $request = \OAuth2\Request::createFromGlobals(); $response = new \OAuth2\Response(); // validate the authorize request - if (! $s->server->validateAuthorizeRequest($request, $response)) { - $response->send(); - killme(); + if (! $s->validateAuthorizeRequest($request, $response)) { + $response->send(); + killme(); } - // display an authorization form - if (empty($_POST)) { + // display an authorization form + if (empty($_POST)) { - return ' + return '

'; - } + } - // print the authorization code if the user has authorized your client - $is_authorized = ($_POST['authorized'] === 'yes'); - $s->server->handleAuthorizeRequest($request, $response, $is_authorized, local_channel()); - if ($is_authorized) { - // this is only here so that you get to see your code in the cURL request. Otherwise, - // we'd redirect back to the client - $code = substr($response->getHttpHeader('Location'), strpos($response->getHttpHeader('Location'), 'code=')+5, 40); - echo("SUCCESS! Authorization Code: $code"); - - } + // print the authorization code if the user has authorized your client + $is_authorized = ($_POST['authorized'] === 'yes'); + $s->handleAuthorizeRequest($request, $response, $is_authorized, local_channel()); + if ($is_authorized) { + // this is only here so that you get to see your code in the cURL request. Otherwise, + // we'd redirect back to the client + $code = substr($response->getHttpHeader('Location'), strpos($response->getHttpHeader('Location'), 'code=')+5, 40); + echo("SUCCESS! Authorization Code: $code"); + } - $response->send(); - killme(); + $response->send(); + killme(); } -} \ No newline at end of file +} diff --git a/Zotlabs/Module/Token.php b/Zotlabs/Module/Token.php index 5cde58895..f7c074233 100644 --- a/Zotlabs/Module/Token.php +++ b/Zotlabs/Module/Token.php @@ -2,6 +2,8 @@ namespace Zotlabs\Module; +use Zotlabs\Identity\OAuth2Storage; + class Token extends \Zotlabs\Web\Controller { @@ -26,11 +28,10 @@ class Token extends \Zotlabs\Web\Controller { } } - - $s = new \Zotlabs\Identity\OAuth2Server(); - $s->server->handleTokenRequest(\OAuth2\Request::createFromGlobals())->send(); + $s = new \Zotlabs\Identity\OAuth2Server(new OAuth2Storage(\DBA::$dba->db)); + $s->handleTokenRequest(\OAuth2\Request::createFromGlobals())->send(); killme(); } -} \ No newline at end of file +} -- cgit v1.2.3 From c444e40c016c0faaec604335093b19661b3585b7 Mon Sep 17 00:00:00 2001 From: Andrew Manning Date: Sun, 18 Feb 2018 10:09:05 -0500 Subject: Update code tag styling so bbcode [code] blocks and wiki markdown inline code render nicely. --- include/bbcode.php | 10 ++++++++-- view/css/mod_wiki.css | 21 +++++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/include/bbcode.php b/include/bbcode.php index 0c85a0a4e..86fd24696 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -628,7 +628,7 @@ function bb_code_unprotect_sub($match) { function bb_code($match) { if(strpos($match[0], "
")) - return '' . bb_code_protect(trim($match[1])) . ''; + return '
' . bb_code_protect(trim($match[1])) . '
'; else return '' . bb_code_protect(trim($match[1])) . ''; } @@ -636,15 +636,21 @@ function bb_code($match) { function bb_code_options($match) { if(strpos($match[0], "
")) { $class = ""; + $pre = true; } else { $class = "inline-code"; + $pre = false; } if(strpos($match[1], 'nowrap')) { $style = "overflow-x: auto; white-space: pre;"; } else { $style = ""; } - return '' . bb_code_protect(trim($match[2])) . ''; + if($pre) { + return '
' . bb_code_protect(trim($match[2])) . '
'; + } else { + return '' . bb_code_protect(trim($match[2])) . ''; + } } function bb_highlight($match) { diff --git a/view/css/mod_wiki.css b/view/css/mod_wiki.css index 4e4c71e1d..e0b02b414 100644 --- a/view/css/mod_wiki.css +++ b/view/css/mod_wiki.css @@ -48,3 +48,24 @@ td i { padding-right: 10px; } +pre code { + background: #F5F5F5; + font-family: Courier, monospace; + font-size: 1em; + padding: 1em 1.5em; + display: block; + white-space: pre-wrap; +} + +code { + background: #F5F5F5; + font-family: Courier, monospace; + font-size: 1em; + display: inline; + padding: 0.2em 0.2em; + white-space: pre-wrap; +} + +#wiki-content-container code { + background: #F5F5F5; +} \ No newline at end of file -- cgit v1.2.3 From 1732ffed7a3a9c1ab8811baef3a36f70a64bce7a Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Mon, 19 Feb 2018 10:59:21 +0100 Subject: backport update 1201 to the new update system and move dummy update to 1202 --- Zotlabs/Update/_1201.php | 18 +++++++++++++----- Zotlabs/Update/_1202.php | 15 +++++++++++++++ 2 files changed, 28 insertions(+), 5 deletions(-) create mode 100644 Zotlabs/Update/_1202.php diff --git a/Zotlabs/Update/_1201.php b/Zotlabs/Update/_1201.php index c12797377..416d35ad6 100644 --- a/Zotlabs/Update/_1201.php +++ b/Zotlabs/Update/_1201.php @@ -6,10 +6,18 @@ class _1201 { function run() { - // empty update in order to make the DB_UPDATE_VERSION equal to the current maximum update function - // rather than being one greater than the last known update - - return UPDATE_SUCCESS; + if(ACTIVE_DBTYPE == DBTYPE_MYSQL) { + $r = q("ALTER TABLE item + DROP INDEX item_thread_top, + ADD INDEX uid_item_thread_top (uid, item_thread_top), + ADD INDEX uid_item_blocked (uid, item_blocked), + ADD INDEX item_deleted_pending_remove_changed (item_deleted, item_pending_remove, changed) + "); + } + if($r) + return UPDATE_SUCCESS; + return UPDATE_FAILED; } -} \ No newline at end of file + +} diff --git a/Zotlabs/Update/_1202.php b/Zotlabs/Update/_1202.php new file mode 100644 index 000000000..c9ccd157b --- /dev/null +++ b/Zotlabs/Update/_1202.php @@ -0,0 +1,15 @@ + Date: Mon, 19 Feb 2018 14:11:58 +0100 Subject: do not show summary if it is equal to body and some styling for the summary/article toggle links --- include/bbcode.php | 2 +- include/feedutils.php | 3 +++ view/css/conversation.css | 10 +++++++++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/include/bbcode.php b/include/bbcode.php index 86fd24696..03a46444b 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -438,7 +438,7 @@ function bb_summary($match) { $rnd3 = mt_rand(); $rnd4 = mt_rand(); - return $match[1] . '
' . $match[2] . '
'; + return $match[1] . '
' . $match[2] . '
' . t('View article') . '
'; } diff --git a/include/feedutils.php b/include/feedutils.php index c4e9790de..369193fce 100644 --- a/include/feedutils.php +++ b/include/feedutils.php @@ -436,6 +436,9 @@ function get_atom_elements($feed, $item) { $summary = unxmlify($item->get_description(true)); + if($summary === $res['body']) + $summary = ''; + if(($summary) && ((strpos($summary,'<') !== false) || (strpos($summary,'>') !== false))) { $summary = purify_html($summary); $summary = html2bbcode($summary); diff --git a/view/css/conversation.css b/view/css/conversation.css index 77a600deb..f7ab3dcdd 100644 --- a/view/css/conversation.css +++ b/view/css/conversation.css @@ -286,7 +286,6 @@ img.smiley.emoji:hover { height: 32px; } - .checklist input { margin: 0px; vertical-align: middle; @@ -296,6 +295,15 @@ img.smiley.emoji:hover { padding: 15px; } +.view-summary { + margin-bottom: 1rem; +} + +.view-article { + margin-top: 1rem; +} + + #filer_save { margin-left: 15px; } -- cgit v1.2.3 From 2047801b858d56ba72da0a430903890bea0130cd Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Mon, 19 Feb 2018 20:23:13 +0100 Subject: updates 1201 and 1200 should return success for postgres. notifications: remove class show and session storage entry when we mark all notifications seen --- Zotlabs/Update/_1198.php | 2 +- Zotlabs/Update/_1200.php | 12 ++++++++---- Zotlabs/Update/_1201.php | 10 +++++++--- view/js/main.js | 2 ++ 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/Zotlabs/Update/_1198.php b/Zotlabs/Update/_1198.php index 0713bb6ce..d188c94f6 100644 --- a/Zotlabs/Update/_1198.php +++ b/Zotlabs/Update/_1198.php @@ -21,4 +21,4 @@ function run() { } -} \ No newline at end of file +} diff --git a/Zotlabs/Update/_1200.php b/Zotlabs/Update/_1200.php index 00c742593..9f7bfb152 100644 --- a/Zotlabs/Update/_1200.php +++ b/Zotlabs/Update/_1200.php @@ -10,11 +10,15 @@ function run() { DROP INDEX item_type, ADD INDEX uid_item_type (uid, item_type) "); - } - if($r) + if($r) + return UPDATE_SUCCESS; + return UPDATE_FAILED; + } + else { return UPDATE_SUCCESS; - return UPDATE_FAILED; + } + } -} \ No newline at end of file +} diff --git a/Zotlabs/Update/_1201.php b/Zotlabs/Update/_1201.php index 416d35ad6..920a7401e 100644 --- a/Zotlabs/Update/_1201.php +++ b/Zotlabs/Update/_1201.php @@ -13,11 +13,15 @@ class _1201 { ADD INDEX uid_item_blocked (uid, item_blocked), ADD INDEX item_deleted_pending_remove_changed (item_deleted, item_pending_remove, changed) "); - } - if($r) + if($r) + return UPDATE_SUCCESS; + return UPDATE_FAILED; + } + else { return UPDATE_SUCCESS; - return UPDATE_FAILED; + } + } } diff --git a/view/js/main.js b/view/js/main.js index 4a2bae802..f6fe475d8 100644 --- a/view/js/main.js +++ b/view/js/main.js @@ -357,7 +357,9 @@ function closeMenu(theID) { function markRead(notifType) { $.get('ping?f=&markRead='+notifType); $('.' + notifType + '-button').hide(); + $('#nav-' + notifType + '-sub').removeClass('show'); sessionStorage.removeItem(notifType + '_notifications_cache'); + sessionStorage.removeItem('notification_open'); if(timer) clearTimeout(timer); timer = setTimeout(updateInit,2000); } -- cgit v1.2.3