diff options
-rw-r--r-- | Zotlabs/Identity/OAuth2Server.php | 43 | ||||
-rw-r--r-- | Zotlabs/Module/Authorize.php | 45 | ||||
-rw-r--r-- | Zotlabs/Module/Token.php | 9 | ||||
-rw-r--r-- | Zotlabs/Update/_1198.php | 2 | ||||
-rw-r--r-- | Zotlabs/Update/_1200.php | 12 | ||||
-rw-r--r-- | Zotlabs/Update/_1201.php | 20 | ||||
-rw-r--r-- | Zotlabs/Update/_1202.php | 15 | ||||
-rw-r--r-- | include/bbcode.php | 12 | ||||
-rw-r--r-- | include/feedutils.php | 3 | ||||
-rw-r--r-- | view/css/conversation.css | 10 | ||||
-rw-r--r-- | view/css/mod_wiki.css | 21 | ||||
-rw-r--r-- | view/js/main.js | 2 |
12 files changed, 128 insertions, 66 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 ' <form method="post"> <label>Do You Authorize TestClient?</label><br /> <input type="submit" name="authorized" value="yes"> <input type="submit" name="authorized" value="no"> </form>'; - } + } - // 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 +} 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 c12797377..920a7401e 100644 --- a/Zotlabs/Update/_1201.php +++ b/Zotlabs/Update/_1201.php @@ -6,10 +6,22 @@ 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 + 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) + "); - return UPDATE_SUCCESS; + if($r) + return UPDATE_SUCCESS; + return UPDATE_FAILED; + } + else { + return UPDATE_SUCCESS; + } } -}
\ 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 @@ +<?php + +namespace Zotlabs\Update; + +class _1202 { + + 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; + + } +} diff --git a/include/bbcode.php b/include/bbcode.php index 0c85a0a4e..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] . '<div style="display: block;" id="opendiv-' . $rnd2 . '">' . $match[2] . '</div><div style="display: block;" id="opendiv-' . $rnd3 . '" onclick="openClose(\'opendiv-' . $rnd1 . '\'); openClose(\'opendiv-' . $rnd2 . '\'); openClose(\'opendiv-' . $rnd3 . '\'); openClose(\'opendiv-' . $rnd4 . '\'); return false;" class="fakelink">' . t('View article') . '</div><div style="display: none;" id="opendiv-' . $rnd4 . '" onclick="openClose(\'opendiv-' . $rnd1 . '\'); openClose(\'opendiv-' . $rnd2 . '\'); openClose(\'opendiv-' . $rnd3 . '\'); openClose(\'opendiv-' . $rnd4 . '\'); return false;" class="fakelink">' . t('View summary') . '</div><div id="opendiv-' . $rnd1 . '" style="display: none;">' . $match[3] . '</div>'; + return $match[1] . '<div style="display: block;" id="opendiv-' . $rnd2 . '">' . $match[2] . '</div><div style="display: block;" id="opendiv-' . $rnd3 . '" onclick="openClose(\'opendiv-' . $rnd1 . '\'); openClose(\'opendiv-' . $rnd2 . '\'); openClose(\'opendiv-' . $rnd3 . '\'); openClose(\'opendiv-' . $rnd4 . '\'); return false;" class="fakelink view-article">' . t('View article') . '</div><div style="display: none;" id="opendiv-' . $rnd4 . '" onclick="openClose(\'opendiv-' . $rnd1 . '\'); openClose(\'opendiv-' . $rnd2 . '\'); openClose(\'opendiv-' . $rnd3 . '\'); openClose(\'opendiv-' . $rnd4 . '\'); return false;" class="fakelink view-summary">' . t('View summary') . '</div><div id="opendiv-' . $rnd1 . '" style="display: none;">' . $match[3] . '</div>'; } @@ -628,7 +628,7 @@ function bb_code_unprotect_sub($match) { function bb_code($match) { if(strpos($match[0], "<br />")) - return '<code>' . bb_code_protect(trim($match[1])) . '</code>'; + return '<pre><code>' . bb_code_protect(trim($match[1])) . '</code></pre>'; else return '<code class="inline-code">' . bb_code_protect(trim($match[1])) . '</code>'; } @@ -636,15 +636,21 @@ function bb_code($match) { function bb_code_options($match) { if(strpos($match[0], "<br />")) { $class = ""; + $pre = true; } else { $class = "inline-code"; + $pre = false; } if(strpos($match[1], 'nowrap')) { $style = "overflow-x: auto; white-space: pre;"; } else { $style = ""; } - return '<code class="'. $class .'" style="'. $style .'">' . bb_code_protect(trim($match[2])) . '</code>'; + if($pre) { + return '<pre><code class="'. $class .'" style="'. $style .'">' . bb_code_protect(trim($match[2])) . '</code></pre>'; + } else { + return '<code class="'. $class .'" style="'. $style .'">' . bb_code_protect(trim($match[2])) . '</code>'; + } } function bb_highlight($match) { 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; } 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 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); } |