The proposed patch is as simple as it is due to these reasons:
- How many unique visitors would have to log in to run this map out of memory? Let's say one user entry costs 128 bytes. It's probably less, because username + one or two organizations (most likely zero for most users). 1 Mb of RAM gives you ~8000 users. If you have more people working at your organization, you must be able to spare a few more megabytes of RAM. :)
- How often do users leave / join organization? Catche will reset once a day and invalidate itself. And if you really want to cut someone off very quickly, restarting Jenkins is pretty easy.

Depends on what the use cases are, this solution will most likely work perfectly an no overengineering with full blown cache is required.