Load security grants for an item¶
Loads the security grants recorded for one menu item, or all grants when no item is supplied. This is the lazily-loaded SecurityGroups child collection of clsMenuItem.
| Field | Value |
|---|---|
| Operation ID | OP-MENU-10 |
| Trigger | First access of clsMenuItem.SecurityGroups, or a direct call to GetMenuSecuritiesForItem |
| Inputs | IDataPortalInfo, menu item sequence number |
| Outputs | Populated clsMenuSecurityCollection |
| Primary components | clsMenuSecurityCollection.GetMenuSecuritiesForItem |
| Entry point | SAIF.Business.Menu/clsMenuSecurityCollection.vb |
Steps¶
- Build
Criteria(dpi, menuItemSeqNum). BeforeRetrieve: whenMenuItemSeqNum > 0useRetrieveForItemSQL(SQL-028) withAddParm("MenuItemSeqNum", …); otherwise retrieve all grants (SQL-027). (BR-MENU-001; table MENU_SECURITY)AfterRetrieveloads oneclsMenuSecurityper row. This collection is the lazily-loadedSecurityGroupschild ofclsMenuItem.
Process flow¶
flowchart TD
Start([clsMenuItem.SecurityGroups accessed / GetMenuSecuritiesForItem called]) --> Choice{MenuItemSeqNum > 0?}
Choice -->|Yes| ByItem["RetrieveForItemSQL: WHERE MENU_ITEM_SEQ_NUM = :MenuItemSeqNum"]
Choice -->|No| All[Unfiltered: retrieve all security grants]
ByItem --> Load[AfterRetrieve: Load each clsMenuSecurity]
All --> Load
Load --> Done([Return populated collection])
Failure and edge-case behavior¶
- No security grants recorded for the item: an empty collection is returned, meaning the item is unsecured for all users.
Related documentation¶
Sources¶
- SAIF.Business.Menu/clsMenuSecurityCollection.vb
- SAIF.Business.Menu/clsMenuItem.vb