Skip to content

Commit

Permalink
Fix OPML export regression and add token in RSS link
Browse files Browse the repository at this point in the history
* OPML regression due to *shared user queries* (the XPath attributes were not exported anymore) FreshRSS#6052
* Add master token to HTML Meta RSS link and OPML link FreshRSS#6159 (reply in thread)
  • Loading branch information
Alkarex committed Mar 5, 2024
1 parent da43fff commit 2a8d083
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 4 deletions.
6 changes: 3 additions & 3 deletions app/Models/CategoryDAO.php
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,7 @@ public function listSortedCategories(bool $prePopulateFeeds = true, bool $detail
public function listCategories(bool $prePopulateFeeds = true, bool $details = false): array {
if ($prePopulateFeeds) {
$sql = 'SELECT c.id AS c_id, c.name AS c_name, c.kind AS c_kind, c.`lastUpdate` AS c_last_update, c.error AS c_error, c.attributes AS c_attributes, '
. ($details ? 'f.* ' : 'f.id, f.name, f.url, f.kind, f.website, f.priority, f.error, f.`cache_nbEntries`, f.`cache_nbUnreads`, f.ttl ')
. ($details ? 'f.* ' : 'f.id, f.name, f.url, f.kind, f.website, f.priority, f.error, f.attributes, f.`cache_nbEntries`, f.`cache_nbUnreads`, f.ttl ')
. 'FROM `_category` c '
. 'LEFT OUTER JOIN `_feed` f ON f.category=c.id '
. 'WHERE f.priority >= :priority '
Expand All @@ -292,7 +292,7 @@ public function listCategories(bool $prePopulateFeeds = true, bool $details = fa
if ($stm !== false && $stm->execute($values)) {
$res = $stm->fetchAll(PDO::FETCH_ASSOC) ?: [];
/** @var array<array{'c_name':string,'c_id':int,'c_kind':int,'c_last_update':int,'c_error':int|bool,'c_attributes'?:string,
* 'id'?:int,'name'?:string,'url'?:string,'kind'?:int,'category'?:int,'website'?:string,'priority'?:int,'error'?:int|bool,'cache_nbEntries'?:int,'cache_nbUnreads'?:int,'ttl'?:int}> $res */
* 'id'?:int,'name'?:string,'url'?:string,'kind'?:int,'category'?:int,'website'?:string,'priority'?:int,'error'?:int|bool,'attributes'?:string,'cache_nbEntries'?:int,'cache_nbUnreads'?:int,'ttl'?:int}> $res */
return self::daoToCategoriesPrepopulated($res);
} else {
$info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo();
Expand Down Expand Up @@ -397,7 +397,7 @@ public function countNotRead(int $id): int {
/**
* @param array<array{'c_name':string,'c_id':int,'c_kind':int,'c_last_update':int,'c_error':int|bool,'c_attributes'?:string,
* 'id'?:int,'name'?:string,'url'?:string,'kind'?:int,'website'?:string,'priority'?:int,
* 'error'?:int|bool,'cache_nbEntries'?:int,'cache_nbUnreads'?:int,'ttl'?:int}> $listDAO
* 'error'?:int|bool,'attributes'?:string,'cache_nbEntries'?:int,'cache_nbUnreads'?:int,'ttl'?:int}> $listDAO
* @return array<int,FreshRSS_Category>
*/
private static function daoToCategoriesPrepopulated(array $listDAO): array {
Expand Down
4 changes: 4 additions & 0 deletions app/layout/layout.phtml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@
if ($this->rss_title != '') {
$url_rss = $url_base;
$url_rss['a'] = 'rss';
$url_rss['params']['user'] = Minz_User::name();
$url_rss['params']['token'] = FreshRSS_Context::userConf()->token ?: null;
unset($url_rss['params']['rid']);
if (FreshRSS_Context::userConf()->since_hours_posts_per_rss) {
$url_rss['params']['hours'] = FreshRSS_Context::userConf()->since_hours_posts_per_rss;
Expand All @@ -49,6 +51,8 @@
<?php } if (FreshRSS_Context::isAll() || FreshRSS_Context::isCategory() || FreshRSS_Context::isFeed()) {
$opml_rss = $url_base;
$opml_rss['a'] = 'opml';
$opml_rss['params']['user'] = Minz_User::name();
$opml_rss['params']['token'] = FreshRSS_Context::userConf()->token ?: null;
unset($opml_rss['params']['rid']);
?>
<link rel="outline" type="text/x-opml" title="OPML" href="<?= Minz_Url::display($opml_rss) ?>" />
Expand Down
2 changes: 1 addition & 1 deletion docs/en/users/user_queries.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ Some parameters can be manually added to the URL:
## Sharing with a master token (deprecated)

Before FreshRSS 1.24, the only option to reshare an RSS output was by using a master token,
like `https://freshrss.example.net/?a=rss&user=alice&token1234`
like `https://freshrss.example.net/?a=rss&user=alice&token=abc123`

This was mostly intended for sharing between systems controlled by the same user, and not for sharing publicly.

Expand Down

0 comments on commit 2a8d083

Please sign in to comment.