Umbraco.Community.ContentLock 16.0.0

dotnet add package Umbraco.Community.ContentLock --version 16.0.0
                    
NuGet\Install-Package Umbraco.Community.ContentLock -Version 16.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Umbraco.Community.ContentLock" Version="16.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Umbraco.Community.ContentLock" Version="16.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Umbraco.Community.ContentLock" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Umbraco.Community.ContentLock --version 16.0.0
                    
#r "nuget: Umbraco.Community.ContentLock, 16.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Umbraco.Community.ContentLock@16.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Umbraco.Community.ContentLock&version=16.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Umbraco.Community.ContentLock&version=16.0.0
                    
Install as a Cake Tool

Umbraco Community ContentLock

License: MIT NuGet version

Umbraco Community ContentLock is an open-source package for Umbraco CMS that prevents content conflicts by enabling content editors to lock nodes while editing. This ensures that changes are made by a single user at a time, reducing the risk of overwriting each other’s work.

Features

  • Intuitive Lock/Unlock Actions:

    • Lock or unlock content nodes directly from the node actions (top right) or the tree view.
  • Comprehensive Audit Trail:

    • Every lock and unlock action is logged in the node history for complete traceability.
  • Enhanced Permission Management:

    • Introduces new permissions that allow users to override locks when needed
    • New permission is added to the Administrators user group when first installed
  • Dashboard Overview:

    • Access a dedicated dashboard in the content section to view all currently locked nodes.
    • Users with permission can override one or more locked nodes from this dashboard
  • User Notifications:

    • Users are informed via a footer message when a node is locked.
  • Read-Only Mode for Locked Nodes:

    • Locked nodes display all content (across all variants) as read-only.
  • Action Restrictions:

    • Prevents actions like publish, unpublish, and save for nodes that are currently locked.

Options

Content Lock has the following options available to configure.

Setting Description Default Value
SignalRClientLogLevel The SignalR log level of printing messages to the browser console can be set as one of the following values. Trace, Debug, Information or Info, Warning or Warn, Error, Critical and None "Info"
OnlineUsers.Enable A boolean flag to decide if to displays a header app in the top right with the number of active users connected to the Umbraco backoffice true
OnlineUsers.Sounds.Enable A boolean flag to decide if to play audio notifications when a user logs in or out of the backoffice true
OnlineUsers.Sounds.LoginSound A path to an audio file that a browser can play when a new user logins to the Umbraco backoffice "/App_Plugins/ContentLock/sounds/login.mp3"
OnlineUsers.Sounds.LogoutSound A path to an audio file that a browser can play when a user logs out of the Umbraco backoffice "/App_Plugins/ContentLock/sounds/logout.mp3"

AppSettings

...
"ContentLock": {
  "SignalRClientLogLevel": "Info",
  "OnlineUsers": {
    "Enable": true,
    "Sounds": {
      "Enable": true,
      "LoginSound":"/App_Plugins/ContentLock/sounds/login.mp3",
      "LogoutSound":"/App_Plugins/ContentLock/sounds/logout.mp3"
    }
  }
}

Environment Variables

ContentLock__SignalRClientLogLevel=Info
ContentLock__OnlineUsers__Enable=true
ContentLock__OnlineUsers__Sounds__Enable=true
ContentLock__OnlineUsers__Sounds__LoginSound=https://some-snazzy-sound.com/sfx-login.mp3
ContentLock__OnlineUsers__Sounds__LogoutSound=/App_Plugins/SomePlace/logout.mp3

Reactive Options

Changing any of these options will be changed instantly without having to redeploy or restart the application.

For example you could change the value OnlineUsers.Enable and this will instantly toggle the number of connected users in the backoffice in the top right of Umbraco. You can see this in action here and how it was coded if you are curious:

How to use SignalR with Umbraco for real-time options


Attributions


Fork Notice

This package is a community-driven fork of the original CogWorks ContentGuard project, modified for the modern Umbraco Bellissima backoffice. Special thanks to the team at CogWorks and the original developer Marcin Zajkowski for laying the groundwork and supporting this update.


Lovingly crafted for you by Warren Buckley ❤️

Available for hire

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  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 was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
16.0.0 88 7/31/2025
15.2.0 387 5/28/2025
15.1.0 213 5/6/2025
15.0.1 143 5/6/2025
15.0.0 147 5/6/2025
1.0.1 380 4/4/2025 1.0.1 is deprecated.
1.0.0 282 3/30/2025 1.0.0 is deprecated.