"ALTER DEFAULT PRIVILEGES allows you to set the privileges that will be applied to objects created in the future."
You would have to do an initial "GRANT ALL ON ... TO bar" but this can be scripted so you pass the user name as a parameter and loops through all schemata.
Is it as convenient as per-database pg_read_all_data? No. But the inconvenience can be mitigated.
Not only that, you have to tailor the command to each new schema, etc.
This makes shared privs much more streamlined and removes the chance that a user will forget to assign privs to objects that they create.