Move the userDetails caching into the user details service as some callers may otherwise bypass the cache