Just to be safe, can you surround the whole expression with parentheses and put the `not` in front of that? Right now, it's a bit ambiguous if the `not` applies to just the first test or to the whole expression. Alternatively, use `not` in front of each with `or`. I would suggest:
```python
tos_required = (
    not settings.FEATURES.get("AUTH_USE_SHIB") or
    not settings.FEATURES.get("SHIB_DISABLE_TOS") or
    not DoExternalAuth or
    not eamap.external_domain.startswith(
        external_auth.views.SHIBBOLETH_DOMAIN_PREFIX
    )
)