diff options
author | Erik Verbruggen <erik@verbruggen.consulting> | 2021-10-06 18:52:18 +0300 |
---|---|---|
committer | Hannah von Reth <vonreth@kde.org> | 2021-10-07 17:29:54 +0300 |
commit | 88c4661d7d8beaa39b2d37636d14fd179c721507 (patch) | |
tree | e52e95b311c102158a850d0b3e11cfcaf274117d /src/libsync | |
parent | 35d059e2875732696b0bc6a164cb90f45c56e40a (diff) |
Do not try to (repeatedly) fetch profile pictures when not available
The server has a capability to indicate that profile pictures (avatars)
are not available. Previously, the client would try to fetch them no
matter what, and even retry when the server responded with a 404. Now
we take the server capability into account, and do not try to fetch
those when not available.
Fixes: #8758
Diffstat (limited to 'src/libsync')
-rw-r--r-- | src/libsync/capabilities.cpp | 10 | ||||
-rw-r--r-- | src/libsync/capabilities.h | 3 |
2 files changed, 12 insertions, 1 deletions
diff --git a/src/libsync/capabilities.cpp b/src/libsync/capabilities.cpp index 6eec82b59..6eed99bd5 100644 --- a/src/libsync/capabilities.cpp +++ b/src/libsync/capabilities.cpp @@ -222,6 +222,13 @@ bool Capabilities::versioningEnabled() const return _capabilities.value(QStringLiteral("files")).toMap().value(QStringLiteral("versioning")).toBool(); } +bool Capabilities::avatarsAvailable() const +{ + auto userCaps = _fileSharingCapabilities.value(QStringLiteral("user")).toMap(); + // true by default for older servers, because turning off profile pictures was introduced in later versions + return userCaps.value(QStringLiteral("profile_picture"), true).toBool(); +} + QStringList Capabilities::blacklistedFiles() const { return _capabilities.value(QStringLiteral("files")).toMap().value(QStringLiteral("blacklisted_files")).toStringList(); @@ -243,4 +250,5 @@ bool TusSupport::isValid() const { return !version.isNull(); } -} + +} // namespace OCC diff --git a/src/libsync/capabilities.h b/src/libsync/capabilities.h index a5a538ad3..08e9ab4ff 100644 --- a/src/libsync/capabilities.h +++ b/src/libsync/capabilities.h @@ -180,6 +180,9 @@ public: /** Is versioning available? */ bool versioningEnabled() const; + /** Are avatars (profile pictures) available? */ + bool avatarsAvailable() const; + private: QVariantMap _capabilities; QVariantMap _fileSharingCapabilities; |