From 8801fb017ccd6e2c052ab449eed3ee1eb5b7e982 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Mon, 8 Nov 2010 13:11:56 +0300 Subject: replace old-style published feed with universal secretkey-based approach used for all feeds; do not allow user/pass handling in generated feed urls; bump schema --- modules/backend-rpc.php | 33 +++++++++++++------------- modules/popup-dialog.php | 60 ++++++++++++++++++++++++++---------------------- modules/pref-feeds.php | 12 +++++----- 3 files changed, 56 insertions(+), 49 deletions(-) (limited to 'modules') diff --git a/modules/backend-rpc.php b/modules/backend-rpc.php index 4a82a888b..1bf41d299 100644 --- a/modules/backend-rpc.php +++ b/modules/backend-rpc.php @@ -464,25 +464,11 @@ return; } - if ($subop == "regenPubKey") { - - print ""; - - set_pref($link, "_PREFS_PUBLISH_KEY", generate_publish_key(), $_SESSION["uid"]); - - $new_link = article_publish_url($link); - - print ""; - - print ""; - - return; - } - if ($subop == "regenOPMLKey") { print ""; - set_pref($link, " _PREFS_OPML_PUBLISH_KEY", generate_publish_key(), $_SESSION["uid"]); + set_pref($link, " _PREFS_OPML_PUBLISH_KEY", + sha1(uniqid(rand(), true)), $_SESSION["uid"]); $new_link = opml_publish_url($link); print ""; print ""; @@ -1119,6 +1105,21 @@ return; } + if ($subop == "regenFeedKey") { + $feed_id = db_escape_string($_REQUEST['id']); + $is_cat = (bool) db_escape_string($_REQUEST['is_cat']); + + print ""; + + $new_key = update_feed_access_key($link, $feed_id, $is_cat); + + print ""; + + print ""; + + return; + } + print "Unknown method: $subop"; } ?> diff --git a/modules/popup-dialog.php b/modules/popup-dialog.php index 54f4a3e61..61efd4c99 100644 --- a/modules/popup-dialog.php +++ b/modules/popup-dialog.php @@ -158,33 +158,6 @@ return; } - if ($id == "pubUrl") { - - print "
".__('Published Articles')."
"; - print "
"; - - $url_path = article_publish_url($link); - - print __("Your Published articles feed URL is:"); - - print "
"; - print "$url_path"; - print "
"; - - print "
"; - - print " "; - - print ""; - - print "
"; - - return; - } - if ($id == "pubOPMLUrl") { print "
".__('Public OPML URL')."
"; @@ -777,6 +750,39 @@ return; } + if ($id == "generatedFeed") { + + print "
".__('View as RSS')."
"; + print "
"; + + $params = explode(":", $param, 3); + $feed_id = db_escape_string($params[0]); + $is_cat = (bool) $params[1]; + + $key = get_feed_access_key($link, $feed_id, $is_cat); + + $url_path = htmlspecialchars($params[2]) . "&key=" . $key; + + print __("You can view this feed as RSS using the following URL:"); + + print "
"; + print "$url_path"; + print "
"; + + print "
"; + + print " "; + + print ""; + + print "
"; + + return; + } + print "
Internal Error

Unknown dialog $id

diff --git a/modules/pref-feeds.php b/modules/pref-feeds.php index 7a436cfd2..de9166fe4 100644 --- a/modules/pref-feeds.php +++ b/modules/pref-feeds.php @@ -1447,7 +1447,8 @@ __('Export OPML').""; if (!get_pref($link, "_PREFS_OPML_PUBLISH_KEY")){ - set_pref($link, "_PREFS_OPML_PUBLISH_KEY", generate_publish_key()); + set_pref($link, "_PREFS_OPML_PUBLISH_KEY", + sha1(uniqid(rand(), true))); } print "

".__('Your OPML can be published publicly and can be subscribed by anyone who knows the URL below.'); @@ -1489,13 +1490,12 @@ print "

".__("Published articles")."

"; - if (!get_pref($link, "_PREFS_PUBLISH_KEY")) { - set_pref($link, "_PREFS_PUBLISH_KEY", generate_publish_key()); - } - print "

".__('Published articles are exported as a public RSS feed and can be subscribed by anyone who knows the URL specified below.')."

"; - print " "; -- cgit v1.2.3-54-g00ecf