---
title: clsMenuSecurityCollection
summary: API reference for clsMenuSecurityCollection.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-08-17
library: SAIF.Business.Menu
reference_type: package
---

# clsMenuSecurityCollection

A collection of `clsMenuSecurity` grants, either the full set or scoped to one menu item; backs `clsMenuItem.SecurityGroups` ([OP-MENU-10](../../operations/op-menu-10-load-security-grants-for-item.md)).

## Purpose
- Loads and holds security grants, optionally scoped by `MenuItemSeqNum` ([BR-MENU-001](../../business-rules.md#br-menu-001-scoped-vs-unfiltered-retrieval)).

## Context
- Namespace: `SAIF.Business.Menu`
- Assembly/package: `SAIF.Business.Menu` (`SAIF.BOF.Presentation.Web.Infragistics111` NuGet package)

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| NewMenuSecurities | `Shared Function NewMenuSecurities(dpi As IDataPortalInfo) As clsMenuSecurityCollection` | Factory that creates an empty, unmanaged collection ready to hold new grants. |
| GetAllMenuSecurities | `Shared Function GetAllMenuSecurities(dpi As IDataPortalInfo) As clsMenuSecurityCollection` | Factory that loads every security grant ([SQL-027](../../sql/SQL-027-retrieve-all-menu-security.md)). |
| GetMenuSecuritiesForItem | `Shared Function GetMenuSecuritiesForItem(dpi As IDataPortalInfo, menuItemSeqNum As Decimal) As clsMenuSecurityCollection` | Loads the grants for one menu item; used to populate `clsMenuItem.SecurityGroups` ([BR-MENU-001](../../business-rules.md#br-menu-001-scoped-vs-unfiltered-retrieval), [SQL-028](../../sql/SQL-028-retrieve-menu-security-for-item.md)). |

## Inherited public members

Members in this section are inherited from `clsBusinessCollectionBase` in `SAIF.Framework.Core` (delivered by the `SAIF.BOF.Framework` package). They are available on this type through inheritance.

| Member | Signature | Purpose | Origin |
| --- | --- | --- | --- |
| First | `Sub First()` | Moves the collection's current-item cursor to the first element (`ITraversion`).† | `SAIF.Framework.Core` — `clsBusinessCollectionBase` |
| Last | `Sub Last()` | Moves the cursor to the last element (`ITraversion`).† | `SAIF.Framework.Core` — `clsBusinessCollectionBase` |
| Next | `Sub Next()` | Advances the cursor to the next element (`ITraversion`).† | `SAIF.Framework.Core` — `clsBusinessCollectionBase` |
| Previous | `Sub Previous()` | Moves the cursor to the previous element (`ITraversion`).† | `SAIF.Framework.Core` — `clsBusinessCollectionBase` |
| SetCurrent | `Sub SetCurrent(item As Object)` | Sets the cursor to the given item (`ITraversion`).† | `SAIF.Framework.Core` — `clsBusinessCollectionBase` |
| Traverse | `Sub Traverse(...)` | Iterates the collection, applying a traversal callback to each element (`ITraversion`).† | `SAIF.Framework.Core` — `clsBusinessCollectionBase` |
| Error | `ReadOnly Property Error As String` | Aggregated validation error message for the collection (`IDataErrorInfo`).† | `SAIF.Framework.Core` — `clsBusinessCollectionBase` |
| Item(columnName) | `ReadOnly Property Item(columnName As String) As String` | Per-column validation error message (`IDataErrorInfo`).† | `SAIF.Framework.Core` — `clsBusinessCollectionBase` |

## Related documentation
- [Index](../../index.md)
- [Overview](../../overview.md)
- [Architecture](../../architecture.md)
- [Operations and processes](../../operations-processes.md)
- [Business rules](../../business-rules.md)
- [Database tables](../../database-tables.md)
- [API reference](../index.md)

> **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 `†` were retrieved from dependency library documentation via the Legends CLI RAG service. They describe inherited behavior from the indicated origin library and should be verified if the dependency version changes.

## Sources
- SAIF.Business.Menu/clsMenuSecurityCollection.vb
