Clip.Umbraco 13.0.1

dotnet add package Clip.Umbraco --version 13.0.1
NuGet\Install-Package Clip.Umbraco -Version 13.0.1
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="Clip.Umbraco" Version="13.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Clip.Umbraco --version 13.0.1
#r "nuget: Clip.Umbraco, 13.0.1"
#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.
// Install Clip.Umbraco as a Cake Addin
#addin nuget:?package=Clip.Umbraco&version=13.0.1

// Install Clip.Umbraco as a Cake Tool
#tool nuget:?package=Clip.Umbraco&version=13.0.1

One of the great features of Umbraco's backoffice is the permissions model applied to document (and media) types - developers can implement a tightly controlled information architecture by configuring the parent-child relationships between those document types.

That's lovely, and allows developers plenty of control over how the site is ultimately structured.

However, there are a couple of gaps in how that model works:

  • it's not possible to control who can create which types
  • it's not possible to control how many of each type can be created

Fret not, Clip is here to help.

Control who creates what

We know Umbraco offers lots of flexibility, but sometimes we need to reign that in a little.

In large sites, with lots of user groups and more document and media types, we need to be able to control which groups can create which types.

Clip adds this functionality to the backoffice by allowing administrators to set permitted document and media types for each user group.

When creating new items, the allowed child node list is filtered to include only the permitted types.

Control how many of each type

Sometimes it doesn't make sense to allow more than one instance of a document or media type.

Typically, a site might have one news landing page. It more than likely has one homepage.

A site for a restaurant might have a page for each location, but shouldn't allow editors to create additional locations.

Clip adds this control to the backoffice by allowing administrators to set a maximum item count for any document or media type.

When creating new items, the allowed child node list is filtered to include only types that haven't hit their maximum item count.

Configuration options

  • If a user group is added and has no document or media types selected, the group will be unable to create any items
  • If a user group is added and has only document types selected, the group will be able to create all media types as well as the selected document types
  • If a user group is added and has only media types selected, the group will be able to create all document types as well as the selected media types

The two latter options above are true assuming the document/media type has not hit a configured limit.

Why Clip?

Clip follows hot on the heels of Flip and Blip, so obviously needed to follow the silly naming pattern.

Blip is the Block List Item Picker.

Flip is the document-type flipper.

Clip trims the allowed child types.

Easy!

Getting started

Install Clip: dotnet add package Clip.Umbraco.

After restarting your site, you'll find a new node in the settings tree - 'Content Creation Rules'.

The view allows adding rules for user groups and content type limits.

Contributing

Sure, pull requests are more than welcome. Go for it.

Changelog

Upgrading from v1.0 to v10+? There's some manual tomfoolery required.

Since v10+ includes support for media, the underlying data store had to change which meant Clip needs to distinguish Document and Media types, as well as the actual content type.

That then means there's no upgrade path without data loss (ie, if you update, you'll lose configuration). To combat that, export your existing configuration either manually or straight from the database, and manually re-enter same after updating. It's a bit of a pain, but a lot less painful than writing a migration to do the same.

Product 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. 
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
13.0.1 120 3/9/2024
13.0.0 147 2/15/2024
12.0.1 91 3/9/2024
12.0.0 182 9/5/2023
11.1.0 126 9/13/2023
11.1.0-rc1 110 3/17/2023
11.0.2 334 2/2/2023
11.0.1 282 1/22/2023
11.0.0 307 12/22/2022
10.1.1 68 3/9/2024
10.1.0 136 9/13/2023
10.1.0-rc1 111 3/17/2023
10.0.2 305 2/2/2023
10.0.1 270 1/22/2023
10.0.0 293 12/22/2022
1.0.0 322 11/15/2022
1.0.0-rc1.969 131 7/16/2022