Skip to content

@memberjunction/ng-entity-permissions

Angular components for displaying and editing entity-level CRUD permissions in MemberJunction. Provides a grid-based interface for managing Read, Create, Update, and Delete permissions per role or per entity.

This package provides two main components for permission management: EntityPermissionsGridComponent displays a grid of permission checkboxes (filterable by entity or role), and EntitySelectorWithGridComponent combines an entity dropdown with the permissions grid for a complete permission management interface.

graph TD
    ESWG["EntitySelectorWithGridComponent"] --> DD["Entity Dropdown\n(Kendo DropDown)"]
    ESWG --> EPG["EntityPermissionsGridComponent"]
    EPG --> KG["Kendo Grid"]
    EPG --> EP["EntityPermissionEntity[]"]

    style ESWG fill:#7c5295,stroke:#563a6b,color:#fff
    style DD fill:#2d8659,stroke:#1a5c3a,color:#fff
    style EPG fill:#2d6a9f,stroke:#1a4971,color:#fff
    style KG fill:#2d8659,stroke:#1a5c3a,color:#fff
    style EP fill:#b8762f,stroke:#8a5722,color:#fff
  • Dual mode: View permissions by Entity (all roles for an entity) or by Role (all entities for a role)
  • Interactive grid: Toggle CRUD permissions with checkboxes
  • Permission change events: Emits EntityPermissionChangedEvent with cancel support
  • Entity selector: Combined dropdown + grid for complete permission management
  • Auto-refresh: Automatically reloads when entity or role changes
Terminal window
npm install @memberjunction/ng-entity-permissions
DependencyPurpose
@memberjunction/coreMetadata, RunView
@memberjunction/core-entitiesEntityPermissionEntity
@progress/kendo-angular-gridPermissions grid
@progress/kendo-angular-dropdownsEntity/role selector
<mj-entity-permissions-grid
[Mode]="'Entity'"
[EntityName]="'Contacts'"
(PermissionChanged)="onPermissionChanged($event)">
</mj-entity-permissions-grid>
<mj-entity-permissions-grid
[Mode]="'Role'"
[RoleName]="'Admin'"
(PermissionChanged)="onPermissionChanged($event)">
</mj-entity-permissions-grid>
<mj-entity-selector-with-grid
(PermissionChanged)="onPermissionChanged($event)">
</mj-entity-selector-with-grid>
onPermissionChanged(event: EntityPermissionChangedEvent) {
// event.EntityName, event.RoleID
// event.PermissionTypeChanged: 'Read' | 'Create' | 'Update' | 'Delete'
// event.Value: boolean
// Set event.Cancel = true to prevent the change
}
ExportTypeDescription
EntityPermissionsGridComponentComponentCRUD permissions grid
EntitySelectorWithGridComponentComponentEntity dropdown + permissions grid
EntityPermissionChangedEventTypePermission change event shape
EntityPermissionsModuleNgModuleModule declaration
Terminal window
cd packages/Angular/Explorer/entity-permissions && npm run build

ISC