Forkcms Roles and Permissions Guide | OpsBlu Docs

Forkcms Roles and Permissions Guide

Fork CMS group-based permissions -- backend module access, action-level control, and analytics widget configuration.

Fork CMS uses a group-based permission system where users belong to groups that define access to backend modules and specific actions within those modules.

Built-in Groups

Group Dashboard Content Pages Blog Users Settings Translations
Admin Yes Yes Yes Yes Yes Yes
Pages User Yes Yes No No No No

Admin Group

Full access to all backend modules including user management, settings, themes, analytics integration, and all content areas.

Pages User Group

Can only manage pages. No access to blog, user management, settings, or other modules.

Permission Granularity

Fork CMS permissions work at the module + action level:

// Permissions are checked as: module/action
// Examples:
// Pages/Add, Pages/Edit, Pages/Delete
// Blog/Add, Blog/Edit, Blog/Settings
// Users/Add, Users/Edit, Users/Delete
// Settings/Index (access to settings module)
// Analytics/Index (access to analytics module)

Each group can be granted or denied access to individual module actions.

Creating Custom Groups

Navigate to Users > Groups > Add Group in the backend:

  1. Name the group (e.g., "Analytics Manager")
  2. Under Dashboard, select which widgets to show
  3. Under Modules, check specific module/action permissions
  4. Save the group

Analytics-Relevant Permissions

Fork CMS has a built-in Analytics module that connects to Google Analytics. To configure it:

Action Required Permission
View analytics data Analytics/Index
Configure GA connection Analytics/Settings (Admin only)
Edit page templates (for custom scripts) Pages/Edit + access to theme files
{* Fork CMS uses Twig templates *}
{* Edit Core/Layout/Templates/Head.html.twig *}
<head>
  {{ block('meta') }}
  <script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
  <script>
    window.dataLayer = window.dataLayer || [];
    function gtag(){dataLayer.push(arguments);}
    gtag('js', new Date());
    gtag('config', 'G-XXXXXXXXXX');
  </script>
</head>

Best Practices

  1. Create purpose-specific groups rather than giving Admin access broadly
  2. Use the built-in Analytics module for GA integration when possible
  3. Restrict Settings module access to Admin group only
  4. Audit group memberships via Users > Groups regularly
  5. Fork CMS permissions are database-stored -- back up the database before changing permissions