Add support for new 'observer' role, which can read everything but cannot modify.