Build authorized navigation context¶
This operation constructs a NavigationContext instance for a given user and populates it with the set of menu items that user is authorized to see, by delegating to the BOF Menu subsystem.
| Field | Value |
|---|---|
| Operation ID | OP-NC-001 |
| Trigger | Application code constructs New NavigationContext(user) (caller not present in this project — presumably app-level Global/Controller code in a consuming application)* |
| Inputs | User identifier string |
| Outputs | A populated NavigationContext instance with MenuAuthorizedItems |
| Primary components | NavigationContext.New(inUser As String) |
| Entry point | SAIF.Presentation.Web.Core.Infragistics103\NavigationContext.vb |
Steps¶
- Reads
MENU_ENVIRONMENTfromSystem.Configuration.ConfigurationManager.AppSettingsand constructsNew clsMSOracleDataLayer("MENU", <MENU_ENVIRONMENT value>)— an Oracle BOF data-layer instance scoped to a hardcodedMENUDB account. - Obtains an
IDataPortalInfofrom the data layer (m_DAL.DataPortalInfo()). - Delegates to
clsMenuAuthorizedItemCollection.GetMenuAuthorizedItems(DPI, inUser.Trim.ToUpper)(defined inSAIF.Business.Menu, a local project reference — traced no further since it is out of scope for this library) to load the set of menu items the user is authorized for. Enforces BR-NC-001 at the delegated-callee level. - On failure: no explicit error handling is present; a data-layer or business-menu collection failure propagates as an unhandled exception.
- Assigns the result to the
MenuAuthorizedItemsproperty for later lookups byGetItem,GetCurrentItem,GetCurrentPage, andIsMenuItem.
Process flow¶
The following diagram visualizes this operation's control flow.
flowchart TD
Start([New NavigationContext user]) --> S1[Read MENU_ENVIRONMENT app setting]
S1 --> S2[Construct clsMSOracleDataLayer MENU user]
S2 --> S3[Obtain IDataPortalInfo]
S3 --> S4[GetMenuAuthorizedItems via SAIF.Business.Menu]
S4 --> S5[Assign MenuAuthorizedItems property]
S5 --> EndOk([NavigationContext ready])
Failure and edge-case behavior¶
- No branch/error handling is visible in the constructor itself; failures would surface as exceptions from the data layer or business-menu collection (unhandled here).
Related documentation¶
Note: Statements marked with
*were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts. Statements marked with**could not be confirmed; treat as unknown until verified.
Sources¶
- SAIF.Presentation.Web.Core.Infragistics103\NavigationContext.vb