SplatDev.Umbraco.Plugins.MemberGroups
2.3.1
dotnet add package SplatDev.Umbraco.Plugins.MemberGroups --version 2.3.1
NuGet\Install-Package SplatDev.Umbraco.Plugins.MemberGroups -Version 2.3.1
<PackageReference Include="SplatDev.Umbraco.Plugins.MemberGroups" Version="2.3.1" />
<PackageVersion Include="SplatDev.Umbraco.Plugins.MemberGroups" Version="2.3.1" />
<PackageReference Include="SplatDev.Umbraco.Plugins.MemberGroups" />
paket add SplatDev.Umbraco.Plugins.MemberGroups --version 2.3.1
#r "nuget: SplatDev.Umbraco.Plugins.MemberGroups, 2.3.1"
#:package SplatDev.Umbraco.Plugins.MemberGroups@2.3.1
#addin nuget:?package=SplatDev.Umbraco.Plugins.MemberGroups&version=2.3.1
#tool nuget:?package=SplatDev.Umbraco.Plugins.MemberGroups&version=2.3.1
UmbracoCms.Plugins.MemberGroups
Member group management plugin for Umbraco 13 (net8.0) and Umbraco 17 (net10.0).


Upgraded from Umbraco 8 (net472) to modern SDK-style multi-targeting.
Upgrade Summary (Umbraco 8 → 13/17)
| Old | New |
|---|---|
Umbraco.Core.Services.* |
Umbraco.Cms.Core.Services.* |
Umbraco.Core.Models.* |
Umbraco.Cms.Core.Models.* |
Umbraco.Web.Composing.Current.Services.* |
DI constructor injection |
Umbraco.Core.Logging.ILogger |
Microsoft.Extensions.Logging.ILogger<T> |
SplatDev.Html.Helpers.Sanitize() |
Inline Regex.Replace extension |
System.Web.Security.Membership |
Removed (use Umbraco services) |
UsersMembershipProvider |
Removed (use Umbraco Users API) |
IUmbracoDatabase |
Removed (no DB needed) |
MembershipHelper |
Removed (use IMemberService) |
Features
- Assign/remove members from groups
- Create and edit user groups
- Enable/disable Umbraco users
- Look up members by email
- List member groups and member types
- Bulk operations via API
API Endpoints
| Method | Route | Description |
|---|---|---|
| GET | /umbraco/api/membergroups/GetMemberGroups |
List all member groups |
| GET | /umbraco/api/membergroups/GetMemberTypes |
List all member types |
| POST | /umbraco/api/membergroups/AddToGroup |
Add member to a group |
| POST | /umbraco/api/membergroups/CreateGroup |
Create a new user group |
| POST | /umbraco/api/membergroups/EditGroup?oldName=X |
Edit an existing group |
| POST | /umbraco/api/membergroups/EnableUser?username=X |
Enable a user |
| POST | /umbraco/api/membergroups/DisableUser?username=X |
Disable a user |
| GET | /umbraco/api/membergroups/GetMemberByEmail?email=X |
Lookup member by email |
| POST | /umbraco/api/membergroups/SaveMemberGroup?groupName=X |
Save a member group |
Note on Password Management
In Umbraco 13+, direct password hash assignment (RawPasswordValue) is not available.
Password operations must use the Umbraco Users API or IMemberService.SavePassword().
The ChangeUserPassword and ResetUserPassword methods log a warning and return guidance.
Changelog
2.3.1 — 2026-08-24
Package metadata only: the listing now carries an icon and search tags, and the project and repository links point at the organisation that actually hosts this code. No code changes.
2.3.0 — 2026-08-23
The Razor view behind @await Component.InvokeAsync(...) is now compiled into the package. It was previously carried as a loose file that nothing packed, so the component threw "view not found" on every install and the front-end usage shown in this README could not have worked.
2.2.4 — 2026-08-22
- You can create a member group from the dashboard, and add a member to one by email. The dashboard shipped a helper for calling these endpoints that nothing ever called, so six of the nine operations the API exposes had no way in — the three tabs were read-only lists and a lookup box.
- Looking a member up now leads somewhere: the result carries a group picker and an Add to group button, rather than ending at a card of facts.
- Creating a backoffice user group no longer reports success when it failed. On Umbraco 17 the call was passing an empty user key, which the API rejects; the failure was logged as a warning and the caller was told the group had been created, with an id of 0.
- The Member Types tab now says where member types are actually edited instead of presenting a list with no way to act on it.
2.2.3 — 2026-08-21
- A failed request now says so in the dashboard. Previously the dashboard kept its previous (usually empty) state, so a refused or failed call looked identical to having no data.
2.2.2 — 2026-08-21
- Dashboard now sends the backoffice token with its API calls. On Umbraco 17 those calls were arriving unauthenticated and coming back 401, which the dashboard rendered as an empty state rather than an error.
- A failed request now raises a notification instead of leaving the dashboard looking like there is simply no data.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.Extensions.FileProviders.Embedded (>= 10.0.6)
- Umbraco.Cms.Core (>= 17.3.4)
- Umbraco.Cms.Web.Common (>= 17.3.4)
-
net8.0
- Microsoft.Extensions.FileProviders.Embedded (>= 8.0.11)
- Umbraco.Cms.Core (>= 13.12.0)
- Umbraco.Cms.Web.Common (>= 13.12.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.3.1 | 54 | 8/24/2026 |