<feed xmlns='http://www.w3.org/2005/Atom'>
<title>jellyfin/Jellyfin.Server.Implementations/Users/UserManager.cs, branch v12.0-rc3</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://git.b0n.dev/jellyfin/atom?h=v12.0-rc3</id>
<link rel='self' href='https://git.b0n.dev/jellyfin/atom?h=v12.0-rc3'/>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/'/>
<updated>2026-07-21T12:30:55Z</updated>
<entry>
<title>Apply review suggestions</title>
<updated>2026-07-21T12:30:55Z</updated>
<author>
<name>Shadowghost</name>
<email>Ghost_of_Stone@web.de</email>
</author>
<published>2026-07-21T12:30:55Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=4cc69f4be0a568ebc8c922dcf1f855458755ad85'/>
<id>urn:sha1:4cc69f4be0a568ebc8c922dcf1f855458755ad85</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'upstream/master' into security-path-traversal-fixes</title>
<updated>2026-07-21T05:14:47Z</updated>
<author>
<name>Shadowghost</name>
<email>Ghost_of_Stone@web.de</email>
</author>
<published>2026-07-21T05:14:47Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=b99703301f43927f632bbc49d040a32824d43cb3'/>
<id>urn:sha1:b99703301f43927f632bbc49d040a32824d43cb3</id>
<content type='text'>
# Conflicts:
#	Jellyfin.Api/Controllers/HlsSegmentController.cs
#	Jellyfin.Api/Controllers/PluginsController.cs
</content>
</entry>
<entry>
<title>Merge pull request #17282 from TowyTowy/fix/13137-clear-profile-image</title>
<updated>2026-07-20T23:58:43Z</updated>
<author>
<name>Cody Robibero</name>
<email>cody@robibe.ro</email>
</author>
<published>2026-07-20T23:58:43Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=23fa02eb59519cdc4c2b15b9778ef006b5e85341'/>
<id>urn:sha1:23fa02eb59519cdc4c2b15b9778ef006b5e85341</id>
<content type='text'>
Fix profile image being impossible to clear when its in-memory key is temporary</content>
</entry>
<entry>
<title>Merge pull request #17302 from ElianCodes/fix/lastlogindate-stale-entity</title>
<updated>2026-07-20T06:36:53Z</updated>
<author>
<name>Bond-009</name>
<email>bond.009@outlook.com</email>
</author>
<published>2026-07-20T06:36:53Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=aead9c0e229534296c7cc61d0b1850e602189178'/>
<id>urn:sha1:aead9c0e229534296c7cc61d0b1850e602189178</id>
<content type='text'>
Keep authenticated user entity in sync with persisted login timestamps</content>
</entry>
<entry>
<title>Harden remaining path-construction sinks against traversal</title>
<updated>2026-07-17T15:08:59Z</updated>
<author>
<name>Shadowghost</name>
<email>Ghost_of_Stone@web.de</email>
</author>
<published>2026-07-17T14:51:19Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=21801e8ba138af71c4c58489ea33534adf7426c5'/>
<id>urn:sha1:21801e8ba138af71c4c58489ea33534adf7426c5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Keep authenticated user entity in sync with persisted login timestamps</title>
<updated>2026-07-11T12:04:07Z</updated>
<author>
<name>Elian Van Cutsem</name>
<email>hello@elian.codes</email>
</author>
<published>2026-07-11T12:04:07Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=47f567b6f1ad9729ad3721a5798cab03978300f5'/>
<id>urn:sha1:47f567b6f1ad9729ad3721a5798cab03978300f5</id>
<content type='text'>
ExecuteUpdateAsync bypasses the EF change tracker, so the user entity
returned by AuthenticateUser still carried the old LastLoginDate and
LastActivityDate. SessionManager.LogSessionActivity then saved that
stale entity in full, reverting LastLoginDate (usually to null)
milliseconds after every login. Setting the properties on the entity
keeps the follow-up save consistent and lets the 60-second activity
guard skip the redundant write during login.

Fixes #17301
</content>
</entry>
<entry>
<title>Fix profile image being impossible to clear when its in-memory key is temporary</title>
<updated>2026-07-09T11:39:09Z</updated>
<author>
<name>TowyTowy</name>
<email>towy@airreps.link</email>
</author>
<published>2026-07-09T11:39:09Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=2326ecdedc042f7f1c2ce2a5da409377c09778d7'/>
<id>urn:sha1:2326ecdedc042f7f1c2ce2a5da409377c09778d7</id>
<content type='text'>
ClearProfileImageAsync removed the ProfileImage instance attached to the
passed-in User, but that instance can carry a stale, never-persisted
(temporary) key because UpdateUserAsync creates the persisted image on a
separately loaded entity and never copies the generated key back.
Removing that detached entity on a fresh DbContext made EF Core throw
InvalidOperationException ('ImageInfo.Id has a temporary value'), leaving
the profile image impossible to delete or replace.

Load the tracked, persisted user and remove its actual ProfileImage,
matching the removal pattern already used in UpdateUserAsync. Adds
regression tests covering the temporary-key case and the no-image no-op
(the first fails before this change and passes after).

Fixes #13137

Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Fix max login attempts</title>
<updated>2026-07-09T03:07:57Z</updated>
<author>
<name>theguymadmax</name>
<email>theguymadmax@proton.me</email>
</author>
<published>2026-07-09T03:07:57Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=8b826d981bcfec22063d6008e38016f4b77790d0'/>
<id>urn:sha1:8b826d981bcfec22063d6008e38016f4b77790d0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Allow changing capitalization of usernames</title>
<updated>2026-07-03T16:33:10Z</updated>
<author>
<name>Bond_009</name>
<email>bond.009@outlook.com</email>
</author>
<published>2026-07-03T16:33:10Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=482cf4b8c3e78463b61cac01c0f3a38fe2045a5c'/>
<id>urn:sha1:482cf4b8c3e78463b61cac01c0f3a38fe2045a5c</id>
<content type='text'>
Fixes #17195
Adds a regression test
</content>
</entry>
<entry>
<title>Backport pull request #16944 from jellyfin/release-10.11.z</title>
<updated>2026-06-07T18:29:36Z</updated>
<author>
<name>JPVenson</name>
<email>github@jpb.email</email>
</author>
<published>2026-06-07T18:29:36Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=6ccdaad0a47351d30cfde39c7470ae26bb6f7567'/>
<id>urn:sha1:6ccdaad0a47351d30cfde39c7470ae26bb6f7567</id>
<content type='text'>
Add lockhelper for UserManager

Original-merge: 39958ad9e51f83f520803aa9bc5e70e58f3a0836

Merged-by: Bond-009 &lt;bond.009@outlook.com&gt;

Backported-by: Bond_009 &lt;bond.009@outlook.com&gt;
</content>
</entry>
</feed>
