jploch Posted 11 hours ago Posted 11 hours ago New Drafts System and Item Permissions PAGEGRID 2.3 is officially here, and it is a major release focused entirely on improving team and client workflows. With drafts, unpublished items, and item-level permissions, you get safer ways to experiment, more control over what goes live, and fine-grained access control for every block. Drafts: Redesign Without Risk Drafts let you change layout and content without affecting the live site. Create a draft, experiment freely, and publish when ready — or discard to revert. No risk of breaking anything your visitors see. How it works Creating a draft is one click from the gear menu in the top navigation bar. PAGEGRID clones your current content into a draft and switches the editor to draft mode. An orange status indicator shows you're in draft mode, with quick access to publish or discard. Drafts are only for PageGrid fields. Non-PageGrid fields (e.g. page title, custom fields) are not editable in draft mode and remain unchanged on the live page. Use cases Safe collaboration: Iterate on layout and content updates with a client in draft mode, publishing only when everyone is happy. Staging updates: Build a campaign page or seasonal homepage update over a few days without taking down the active live version. Read the full draft documentation Unpublished Items Instead of starting a full draft just to update one section, unpublished items let you hide and rework single blocks in-context. This pairs perfectly with drafts: use drafts for page-wide overhauls, and unpublished items to temporarily disable a single block while you tweak its copy or layout. How it works Click the pen icon to edit an item, go to the settings tab, and check the Unpublished status checkbox. Save the item to unpublish it. To make it live again, simply edit the item and click Publish. Item Permissions: Fine-Grained Control for Every Block Until now, PAGEGRID's permission system was global (using native ProccessWire permissions). You could define what each role could do, but those rules applied globally or per template. With item-level permissions (items are pages) you can lock down individual blocks, giving different teams different levels of control on the same page. By restricting structural capabilities to specific containers, you can hand over a site knowing the core design system and layout are completely protected, while still giving editors the exact level of freedom they need to manage their content. How it works Each container block now has a Manage Access option in its settings tab. Enable it and you can choose which roles get access to: Adding new child items Dragging items within the block Resizing items Reordering children Moving items to a different parent block Using specific symbols Creating specific child templates Item permissions always override global and template permissions. Once you enable it for a block, only explicitly granted roles get through. Everyone else keeps their existing permissions everywhere else. Use cases Protecting sections: Lock down sensitive, custom-styled sections so clients can't accidentally move or resize elements. Controlled editing: Let a client add defined block items or symbols and reorder them inside a specific layout group without giving them structural design control over the rest of the page. Read the full permissions documentation Try it today PAGEGRID 2.3 is ready for your projects. Here is how to get started with the new workflow features: PAGEGRID Cloud: The update is already live on all Cloud sites. Just log in and you'll find drafts, unpublished status, and item permissions ready to use. Self-Hosted: Update the PAGEGRID modules to version 2.3 through your ProcessWire admin or pull the latest release from the repository. Once you have given the new features a spin, let me know what you think! 5
jploch Posted 4 hours ago Author Posted 4 hours ago If you need to use permission checks in code just use ProcessWire's standard permission API. The module automatically respects per-item permissions via hook: // Check if user can drag an item page $user->hasPermission('pagegrid-drag', $item); // Check if user can resize an item page $user->hasPermission('pagegrid-resize', $item); // Check if user can add children to a container page $user->hasPermission('page-add', $container); // Check if user can sort children of a container page $user->hasPermission('page-sort', $container); // Check if user can move a child item page $user->hasPermission('page-move', $item); // Built-in ProcessWire methods that call hasPermission internally also respect item permissions: $container->addable(); // respects item permissions for page-add $page->sortable(); // respects item permissions for page-sort
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now