@memberjunction/ng-entity-permissions
v5.1.0
Published
MemberJunction: Angular components for displaying/editing permissions for an entity, and related components.
Keywords
Readme
@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.
Overview
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:#fffFeatures
- 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
EntityPermissionChangedEventwith cancel support - Entity selector: Combined dropdown + grid for complete permission management
- Auto-refresh: Automatically reloads when entity or role changes
Installation
npm install @memberjunction/ng-entity-permissionsKey Dependencies
| Dependency | Purpose |
|---|---|
| @memberjunction/core | Metadata, RunView |
| @memberjunction/core-entities | EntityPermissionEntity |
| @progress/kendo-angular-grid | Permissions grid |
| @progress/kendo-angular-dropdowns | Entity/role selector |
Usage
Entity Mode (All Roles for an Entity)
<mj-entity-permissions-grid
[Mode]="'Entity'"
[EntityName]="'Contacts'"
(PermissionChanged)="onPermissionChanged($event)">
</mj-entity-permissions-grid>Role Mode (All Entities for a Role)
<mj-entity-permissions-grid
[Mode]="'Role'"
[RoleName]="'Admin'"
(PermissionChanged)="onPermissionChanged($event)">
</mj-entity-permissions-grid>Combined Selector + Grid
<mj-entity-selector-with-grid
(PermissionChanged)="onPermissionChanged($event)">
</mj-entity-selector-with-grid>Permission Change Event
onPermissionChanged(event: EntityPermissionChangedEvent) {
// event.EntityName, event.RoleID
// event.PermissionTypeChanged: 'Read' | 'Create' | 'Update' | 'Delete'
// event.Value: boolean
// Set event.Cancel = true to prevent the change
}Exported API
| Export | Type | Description |
|---|---|---|
| EntityPermissionsGridComponent | Component | CRUD permissions grid |
| EntitySelectorWithGridComponent | Component | Entity dropdown + permissions grid |
| EntityPermissionChangedEvent | Type | Permission change event shape |
| EntityPermissionsModule | NgModule | Module declaration |
Build
cd packages/Angular/Explorer/entity-permissions && npm run buildLicense
ISC
