mirror of
https://git.tt-rss.org/git/tt-rss.git
synced 2025-12-22 03:11:28 +00:00
support for feed http auth
This commit is contained in:
38
backend.php
38
backend.php
@@ -1425,8 +1425,8 @@
|
||||
|
||||
if ($op == "pref-feeds") {
|
||||
|
||||
$subop = $_GET["subop"];
|
||||
$quiet = $_GET["quiet"];
|
||||
$subop = $_REQUEST["subop"];
|
||||
$quiet = $_REQUEST["quiet"];
|
||||
|
||||
if ($subop == "editfeed") {
|
||||
$feed_id = db_escape_string($_GET["id"]);
|
||||
@@ -1513,6 +1513,22 @@
|
||||
print "<td><input id=\"iedit_purgintl\"
|
||||
value=\"$purge_interval\"></td></tr>";
|
||||
|
||||
// print "<tr><td colspan=\"2\"><b>Authentication</b></td></tr>";
|
||||
|
||||
$row_class = toggleEvenOdd($row_class);
|
||||
$auth_login = db_fetch_result($result, 0, "auth_login");
|
||||
|
||||
print "<tr class='$row_class'><td>Login:</td>";
|
||||
print "<td><input id=\"iedit_login\"
|
||||
value=\"$auth_login\"></td></tr>";
|
||||
|
||||
$row_class = toggleEvenOdd($row_class);
|
||||
$auth_pass = db_fetch_result($result, 0, "auth_pass");
|
||||
|
||||
print "<tr class='$row_class'><td>Password:</td>";
|
||||
print "<td><input type=\"password\" id=\"iedit_pass\"
|
||||
value=\"$auth_pass\"></td></tr>";
|
||||
|
||||
print "</table>";
|
||||
print "</div>";
|
||||
|
||||
@@ -1525,12 +1541,14 @@
|
||||
}
|
||||
|
||||
if ($subop == "editSave") {
|
||||
$feed_title = db_escape_string($_GET["t"]);
|
||||
$feed_link = db_escape_string($_GET["l"]);
|
||||
$upd_intl = db_escape_string($_GET["ui"]);
|
||||
$purge_intl = db_escape_string($_GET["pi"]);
|
||||
$feed_id = db_escape_string($_GET["id"]);
|
||||
$cat_id = db_escape_string($_GET["catid"]);
|
||||
$feed_title = db_escape_string($_POST["t"]);
|
||||
$feed_link = db_escape_string($_POST["l"]);
|
||||
$upd_intl = db_escape_string($_POST["ui"]);
|
||||
$purge_intl = db_escape_string($_POST["pi"]);
|
||||
$feed_id = db_escape_string($_POST["id"]);
|
||||
$cat_id = db_escape_string($_POST["catid"]);
|
||||
$auth_login = db_escape_string($_POST["login"]);
|
||||
$auth_pass = db_escape_string($_POST["pass"]);
|
||||
|
||||
if (strtoupper($upd_intl) == "DEFAULT")
|
||||
$upd_intl = 0;
|
||||
@@ -1554,7 +1572,9 @@
|
||||
$category_qpart,
|
||||
title = '$feed_title', feed_url = '$feed_link',
|
||||
update_interval = '$upd_intl',
|
||||
purge_interval = '$purge_intl'
|
||||
purge_interval = '$purge_intl',
|
||||
auth_login = '$auth_login',
|
||||
auth_pass = '$auth_pass'
|
||||
WHERE id = '$feed_id' AND owner_uid = " . $_SESSION["uid"]);
|
||||
}
|
||||
|
||||
|
||||
@@ -169,17 +169,31 @@
|
||||
return;
|
||||
}
|
||||
|
||||
$result = db_query($link, "SELECT update_interval
|
||||
$result = db_query($link, "SELECT update_interval,auth_login,auth_pass
|
||||
FROM ttrss_feeds WHERE id = '$feed'");
|
||||
|
||||
$auth_login = db_fetch_result($result, 0, "auth_login");
|
||||
$auth_pass = db_fetch_result($result, 0, "auth_pass");
|
||||
|
||||
$update_interval = db_fetch_result($result, 0, "update_interval");
|
||||
|
||||
if ($update_interval < 0) { return; }
|
||||
|
||||
$feed = db_escape_string($feed);
|
||||
|
||||
$fetch_url = $feed_url;
|
||||
|
||||
if ($auth_login && $auth_pass) {
|
||||
$url_parts = array();
|
||||
preg_match("/(^[^:]*):\/\/(.*)/", $fetch_url, $url_parts);
|
||||
|
||||
if ($url_parts[1] && $url_parts[2]) {
|
||||
$fetch_url = $url_parts[1] . "://$auth_login:$auth_pass@" . $url_parts[2];
|
||||
}
|
||||
|
||||
}
|
||||
error_reporting(0);
|
||||
$rss = fetch_rss($feed_url);
|
||||
$rss = fetch_rss($fetch_url);
|
||||
|
||||
error_reporting (DEFAULT_ERROR_LEVEL);
|
||||
|
||||
|
||||
24
prefs.js
24
prefs.js
@@ -29,6 +29,7 @@ if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
|
||||
|
||||
function feedlist_callback() {
|
||||
if (xmlhttp.readyState == 4) {
|
||||
try {
|
||||
var container = document.getElementById('prefContent');
|
||||
container.innerHTML=xmlhttp.responseText;
|
||||
if (active_feed) {
|
||||
@@ -44,6 +45,9 @@ function feedlist_callback() {
|
||||
}
|
||||
}
|
||||
p_notify("");
|
||||
} catch (e) {
|
||||
exception_error("feedlist_callback", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -654,6 +658,8 @@ function feedCatEditCancel() {
|
||||
|
||||
function feedEditSave() {
|
||||
|
||||
try {
|
||||
|
||||
var feed = active_feed;
|
||||
|
||||
if (!xmlhttp_ready(xmlhttp)) {
|
||||
@@ -691,17 +697,27 @@ function feedEditSave() {
|
||||
return;
|
||||
}
|
||||
|
||||
var auth_login = document.getElementById("iedit_login").value;
|
||||
var auth_pass = document.getElementById("iedit_pass").value;
|
||||
|
||||
active_feed = false;
|
||||
|
||||
notify("Saving feed...");
|
||||
|
||||
xmlhttp.open("GET", "backend.php?op=pref-feeds&subop=editSave&id=" +
|
||||
var query = "op=pref-feeds&subop=editSave&id=" +
|
||||
feed + "&l=" + param_escape(link) + "&t=" + param_escape(title) +
|
||||
"&ui=" + param_escape(upd_intl) + "&pi=" + param_escape(purge_intl) +
|
||||
"&catid=" + param_escape(fcat_id), true);
|
||||
xmlhttp.onreadystatechange=feedlist_callback;
|
||||
xmlhttp.send(null);
|
||||
"&catid=" + param_escape(fcat_id) + "&login=" + param_escape(auth_login) +
|
||||
"&pass=" + param_escape(auth_pass);
|
||||
|
||||
xmlhttp.open("POST", "backend.php", true);
|
||||
xmlhttp.onreadystatechange=feedlist_callback;
|
||||
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
|
||||
xmlhttp.send(query);
|
||||
|
||||
} catch (e) {
|
||||
exception_error("feedEditSave", e);
|
||||
}
|
||||
}
|
||||
|
||||
function feedCatEditSave() {
|
||||
|
||||
@@ -311,7 +311,7 @@ a:hover {
|
||||
|
||||
#iedit_title, #iedit_link, #iedit_regexp, #iedit_descr, #iedit_expr, #iedit_updintl,
|
||||
#iedit_purgintl, #iedit_ulogin, #iedit_ulevel, #iedit_match, #iedit_feed,
|
||||
#iedit_fcat, #iedit_filter_action {
|
||||
#iedit_fcat, #iedit_filter_action, #iedit_login, #iedit_pass {
|
||||
width : 100%;
|
||||
padding-left : 2px;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user