Added OS field 'readonly' in playlist responses

This commit is contained in:
emeric
2026-02-22 22:19:46 +01:00
parent 7d82559833
commit 22de74430f
2 changed files with 12 additions and 2 deletions
+2
View File
@@ -61,6 +61,8 @@ The following extra fields are implemented:
* `musicBrainzId`
* `sortName`
* `roles`
* `Playlist` response:
* `readonly`
## Supported extensions
* [API Key Authentication](https://opensubsonic.netlify.app/docs/extensions/apikeyauth/)
+10 -2
View File
@@ -43,8 +43,10 @@ namespace lms::api::subsonic
playlistNode.setAttribute("public", tracklist->getVisibility() == db::TrackList::Visibility::Public);
playlistNode.setAttribute("changed", core::stringUtils::toISO8601String(tracklist->getLastModifiedDateTime()));
playlistNode.setAttribute("created", core::stringUtils::toISO8601String(tracklist->getCreationDateTime()));
if (const db::User::pointer user{ tracklist->getUser() })
playlistNode.setAttribute("owner", user->getLoginName());
const db::User::pointer trackListUser{ tracklist->getUser() };
if (trackListUser)
playlistNode.setAttribute("owner", trackListUser->getLoginName());
if (const db::ArtworkId artworkId{ core::Service<artwork::IArtworkService>::get()->findTrackListImage(tracklist->getId()) }; artworkId.isValid())
{
@@ -55,6 +57,12 @@ namespace lms::api::subsonic
}
}
if (context.isOpenSubsonicEnabled())
{
// A playlist with no owner is always read only, and only the owner of a tracklist can modify it
playlistNode.setAttribute("readonly", !trackListUser || trackListUser != context.getUser());
}
return playlistNode;
}
} // namespace lms::api::subsonic