Main Header

Role-based permissions

Updated on July 30, 2026

Tier 2 (Pro) sites can grant SignalPress wp-admin access to non-administrator roles — editors who manage content integrations, support staff who read logs, or agency teammates who configure routing without full site admin.

Shorter onboarding guide: Permissions and Access. Tier requirement: Tier features (0, Plus, Pro).

Requirements

  • Active Tier 2 license (signalpress_has_license_level( 2 ))
  • Administrator to edit the matrix (saving permissions requires manage_options and Tier 2)
  • Target users assigned a WordPress role that receives grants

Below Tier 2, the Permissions tab is visible but locked. Only administrators can use SignalPress.

Open the permissions matrix

SignalPress → Settings → Permissions

Each WordPress role (Editor, Author, Shop manager, custom roles, etc.) has checkboxes grouped by function. Save once to update signalpress_role_permissions in the database.

Permission keys

Every grant uses a stable key passed to signalpress_user_can( $permission ):

Access

KeyLabelAllows
accessAccess SignalPressOpen any SignalPress admin page

Required before any other permission applies to non-administrators.

Configuration

KeyLabelAllows
view_settingsView settingsOpen Settings tabs (read-only where enforced)
manage_settingsManage settingsSave general settings
view_integrationsView integrationsIntegrations browser and active service pages
manage_integrationsManage integrationsActivate/deactivate integrations
configure_servicesConfigure servicesSave credentials and service options
test_servicesTest servicesRun connection tests

Routing

KeyLabelAllows
manage_routingManage routingEdit routing fields and request rules

Logs

KeyLabelAllows
view_logsView logsRecent Activity and service Logs tabs
view_payloadsView payloadsExpand redacted payload previews
clear_logsClear logsDelete delivery log entries and clear PHP error log (System Logs)

Developer tools

KeyLabelAllows
view_system_logsView System LogsSignalPress → System Logs
manage_debuggingManage debuggingDebugging tab and runtime output
manage_queueManage delivery queueDelivery Queue tab

Administration

KeyLabelAllows
manage_licenseManage licenseActivate, refresh, deactivate license

List definitions in code: signalpress_permission_definitions().

How enforcement works

PHP

if ( signalpress_user_can( 'view_logs' ) ) {
	// Allowed.
}

Rules:

  1. Administrators (manage_options) always pass every check.
  2. Without Tier 2, non-admins always fail.
  3. Otherwise, the user’s WordPress roles are looked up in signalpress_role_permissions.
  4. The role must grant access, and the specific permission (or access alone when checking access).

Legacy keys view_addons / manage_addons migrate automatically to view_integrations / manage_integrations.

Common role patterns

Role patternSuggested grants
Support / QAaccess, view_integrations, view_logs, view_payloads, test_services
Integration editorAbove + configure_services, manage_routing
DevOpsAbove + manage_debugging, view_system_logs, manage_queue
Billing owneraccess, manage_license (often still an administrator)

Users with view_logs but not view_payloads see delivery rows without expandable payload JSON.

The admin menu and Settings tabs hide items when the current user lacks the mapped permission:

UIPermission
Settings tabview_settings
Permissions tabview_settings (matrix save: administrator + Tier 2)
Delivery Queue tabmanage_queue
Debugging tabmanage_debugging
Recent Activityview_logs
System Logsview_system_logs
sp_capture Builderaccess
Integrationsview_integrations

Direct URL access to a tab without permission returns 403.

Configure step by step

  1. Confirm Tier 2 license is active.
  2. Open SignalPress → Settings → Permissions.
  3. For each role, check access first, then add granular grants.
  4. Save changes.
  5. Log in as a test user in that role and verify menu visibility.