8b7da8296c
userCanInstallPython passed null as the token, so anonymous users accessing via a share link got privilege level NONE from the WithoutUser path and allowPythonInstall was always false for them. Read the token from req.session.anonTokenAccess via TokenAccessHandler.getRequestToken and forward it through userCanInstallPython to getPrivilegeLevelForProject. For TOKEN_BASED projects this resolves the anonymous user's access level via getPrivilegeLevelForProjectWithToken, enabling package installation. Also update Quarto Slides badge color to #e4637c. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>