---
title: Resolve internal banner visibility
summary: Centralize the internal/external visibility decision for the display banner.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-08-17
library: SAIF.Presentation.Web.Controls.V2
reference_type: package
operation_id: OP-V2-003
trigger: Read whenever `Render` needs to decide whether to emit the display banner.
---

# Resolve internal banner visibility

Centralize the internal/external visibility decision for the display banner. Read whenever `Render` needs to decide whether to emit the display banner.

| Field | Value |
| --- | --- |
| **Operation ID** | OP-V2-003 |
| **Trigger** | Read whenever `Render` needs to decide whether to emit the display banner. |
| **Inputs** | Insider/external classification, `ShowInternalBanner` `ViewState` entry. |
| **Outputs** | Boolean indicating whether the display banner should render. |
| **Primary components** | `BannerControl.ShowInternalDisplayBanner` |
| **Entry point** | `SAIF.Presentation.Web.Controls.V2/Banner.vb` |

## Steps

1. If the client is external, return `True` unconditionally. ([BR-V2-019](../business-rules.md#br-v2-019-external-clients-always-see-the-internal-banner-as-shown))
2. Otherwise return the `ShowInternalBanner` `ViewState` entry, defaulting to `False` when unset. ([BR-V2-020](../business-rules.md#br-v2-020-internal-clients-require-explicit-banner-opt-in))

## Process flow

The following diagram visualizes this operation's control flow.

```mermaid
flowchart TD
	Start([Property read]) --> D{External client?}
	D -->|Yes| T([Return True])
	D -->|No| V[Read ShowInternalBanner ViewState]
	V --> R([Return value, default False])
```

## Failure and edge-case behavior

- No exceptional failure handling beyond the branches described in **Steps** was found in the analysis findings.*

## Related documentation
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)

## Sources
- `SAIF.Presentation.Web.Controls.V2/Banner.vb`
