User Management
Precisely control what other users can edit on your site and whether they can use design features.
Create a new user
To give a team members access to your site, start by creating a user for them.
- Go to
Access > Users > Add New. - Insert a name for your user and click save.
- Set a password for this user.
- Select the roles you want to assign and click save (see roles below).
- Your team member can now log into the backend with the name and password you created.
Roles
By assigning roles to a user, you can control what this user can access on your site. PAGEGRID comes with these predefined user roles:
| Role | Description |
|---|---|
| Guest | Can view the frontend of your site. |
| Editor | Can edit the content of unlocked items on your site. |
| Designer | Can change the design and edit the content of your site. |
Permissions
If you want even more control, you can change the individual permissions of a user role.
Go to Access > Roles and select the role you want to edit.
Permissions that start with page- applies to all editable templates.
To enable editing of PAGEGRID items you have to give the role page-edit permission for the pg_container template. The role must also have the pagegrid-process permission enabled to save/edit items.
Templates with an asterisk (*) are configured for edit-related permissions to also inherit to children and through the page tree, unless/until overridden by a page using a different access controlled template.
You can enable view/edit/add/create access through the access tab in the settings for each template individually if you need more control (Templates > yourTemplate > Access).
Global Permissions
The following permissions are relevant for PAGEGRID:
Global Permissions are only available to self-hosted installations.
| Permission | Description |
|---|---|
| page-view | Which types of pages may this role view? This permission is also inherited to children and through the page tree, unless/until overridden by a page using a different access controlled template. |
| page-edit | Which types of pages may this role edit? This permission is also inherited to children and through the page tree, unless/until overridden by a page using a different access controlled template. To enable editing of PAGEGRID items you have to give edit access to the template pg_container. |
| page-add | Which types of pages may this role add children to? Use this to control which PAEGRID block templates the role can add children to. |
| page-create | Which types of pages may this role create? Note that role must also have page-edit permission. |
| page-clone | Clone a page (applies to all editable templates) |
| page-delete | Delete pages (applies to all editable templates) |
| page-edit-front | Use the front-end/inline page editor (Also make sure to select the editable fields in the PAGEGRID module settings) |
| page-lock | Lock or unlock a page (applies to all editable templates) |
| page-move | Move pages (change parent, applies to all editable templates) |
| page-sort | Sort child pages (applies to all editable templates) |
| page-pagegrid-edit | Edit PAGEGRID items in modal (applies to all editable templates) |
| page-pagegrid-delete | Delete PAGEGRID items (applies to all editable templates) |
| page-pagegrid-play | Play PAGEGRID animations in backend |
| pagegrid-process | This permission is needed to edit/save pages with PAGEGRID! |
| pagegrid-add | Use the sidebar to drag new items into the page (also needs pagegrid-drag permission to work) |
| pagegrid-drag | Drag PAGEGRID items |
| pagegrid-resize | Resize PAGEGRID items |
| pagegrid-style-panel | Enable styling of PAGEGRID items |
| pagegrid-settings-tab | Show the Settings tab in the PAGEGRID modal edit view |
| pagegrid-draft | Create and manage PAGEGRID drafts |
| pagegrid-select | User can select editable elements by click instead of hover |
| pagegrid-breakpoints | Manage PAGEGRID breakpoints |
| pagegrid-setup | Access PAGEGRID setup page |
| pagegrid-symbol-create | Create PAGEGRID symbols |
| pagegrid-symbol-add | Add PAGEGRID symbols. Once enabled you can select which symbols the user can add |
Item Permissions
Item permissions allow you to control what specific roles can do inside a container/group block and all of its child items. They override the global permissions set at the role level and only work on items that allow adding child blocks.
How It Works
-
Enable Permission Management: On a container/group block's Settings tab, check the Manage Access checkbox. This activates per-item permission control for that block and all of its child items.
-
Assign Permissions: Once enabled, you can grant the following permissions to specific roles:
Permission Description page-add Allow adding new child items to this block pagegrid-drag Allow dragging items within this block in the editor pagegrid-resize Allow resizing items within this block in the editor page-sort Allow reordering children of this block page-move Allow moving child items to a different parent block -
Restrict Child Templates: Optionally limit which block templates can be added as children inside this block.
-
Restrict Symbols: Optionally limit which symbols can be added inside this block.
Permission Resolution Order
- Global — role-level permissions set the baseline for what users can do.
- Template — template access settings can further restrict which pages a role can interact with.
- Item — item permissions (Manage Access) override both, granting or denying specific actions for that container and its children.
pagegrid-dragandpagegrid-resizeapply to children only, not the item itself.
Developer API
To check item-level permissions in your templates, use ProcessWire's standard permission API. The module automatically respects per-item pg_permissions for these five permissions:
// Check if user can drag an item
$user->hasPermission('pagegrid-drag', $item);
// Check if user can resize an item
$user->hasPermission('pagegrid-resize', $item);
// Check if user can add children to a container
$user->hasPermission('page-add', $container);
// Check if user can sort children of a container
$user->hasPermission('page-sort', $container);
// Check if user can move a child item
$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