SleekView for PublishPress Capabilities: roles & users as tables
Capabilities lives in wp_options and usermeta. SleekView reads both and gives admins flat tables for users by role, capabilities by role, and the audit history.
♾️ Lifetime License available
Roles and users as proper tables, not nested option arrays
PublishPress Capabilities edits the wp_user_roles option — a serialized array buried in wp_options — and per-user capabilities in usermeta under the wp_capabilities key. The plugin's UI is built around editing one role at a time: pick a role, toggle capabilities, save. Anything cross-cutting (a capability matrix across roles, a list of users with extra capabilities outside their primary role) requires its own custom code.
SleekView unpacks the serialized wp_user_roles option and presents it as a flat capabilities-by-role matrix. It also joins wp_users with the wp_capabilities usermeta to surface every user with their primary role and an "extras" count showing capabilities granted directly to the user outside any role. That extras count is the column security audits actually need — privilege drift hides in directly-assigned capabilities that nobody remembers granting.
Bulk role and capability changes write through WordPress's role APIs (set_role, add_cap, remove_cap), so any plugin listening for those events fires correctly. The Capabilities backup history (also stored as serialized options) becomes its own view, with timestamp, role count, and capability count visible per backup.
Workflow
Roles and capabilities as a queryable matrix
Unpack wp_user_roles
wp_user_roles option from wp_options and unpacks the serialized array into a roles-by-capabilities matrix that's sortable and filterable.
Join users with capabilities
wp_users joined with wp_capabilities usermeta gives a flat user list with primary role and an extras count surfaced as a column.
Save the audit filters
Edit through role APIs
set_role; capability changes through add_cap/remove_cap. Listeners for role-update events fire normally on bulk operations.
Sample columns
A typical Capabilities users view
wp_user_roles and joins it with wp_users via wp_capabilities usermeta.
wp_options (wp_user_roles) + wp_usermeta (wp_capabilities)
| User | Primary role | Extra caps | Last login | Backups | Status |
|---|---|---|---|---|---|
| alex@studio.co | editor | +3 | Apr 24 | — | Active |
| ria@design.io | author | +1 | Apr 23 | — | Active |
| tom@hello.dev | shop_manager | +5 | Apr 22 | Apr 20 | Modified |
| mia@brew.coop | subscriber | 0 | Apr 18 | — | Inactive |
Comparison
Default Capabilities admin vs SleekView
Default Capabilities admin
- Role editor edits one role at a time — no cross-role capability matrix
- Users by role isn't a built-in view; you use the WordPress users screen and filter
- Custom capabilities granted directly to users aren't surfaced in any list
- Bulk role changes happen via the WordPress bulk-edit, not Capabilities itself
- Backup history is a separate screen, not joined to user or role data
SleekView
-
Read
wp_user_rolesfromwp_optionswith caps unpacked - Users grouped by role with extra-caps count as a sortable column
- Inline-edit primary role and add/remove capabilities across many users
- Save filters like "Editors with custom caps" for security audits
- Tabbed view with users, roles, and capability matrix
Features
What SleekView gives you for PublishPress Capabilities
Capability matrix as a real table
Default Capabilities edits one role at a time. SleekView builds a matrix view with roles as rows, capability groups as columns — the audit view security teams want.
Users by role with extras visible
Standard WP users screen shows primary role only. SleekView surfaces extra capabilities granted directly via wp_capabilities usermeta — critical for spotting privilege drift.
Bulk role and cap changes
Promote a batch of authors to editors, or revoke a custom capability across many users in one pass. Each change writes through standard WordPress role APIs.
Audience
Who uses SleekView for PublishPress Capabilities
Site administrators
Audit who has what — primary role plus any extra capabilities — and revoke privileges that drifted away from your role-based design over years of operation.
Multisite network admins
See every site's role configuration in one view, spot inconsistencies between sites, and sync role definitions across the network for compliance with one shared baseline.
Security teams
"Users with admin capabilities not in the admin role" as a saved filter — the kind of audit query default WordPress doesn't support out of the box.
The bigger picture
Why capability audits need a flat matrix
Capability drift is one of the most under-tracked security issues in long-running WordPress installs. A role gets edited to grant a temporary capability for a launch, the capability never gets removed. A user gets an extra capability for one task, and three years later they still have it.
Plugins add capabilities on activation and don't always remove them on deactivation. The default WordPress admin doesn't show any of this — there's no "users with capabilities outside their role" view, no capability matrix across roles, no audit trail of who granted what when. PublishPress Capabilities makes the editing easier, but the visibility gap remains because the editing UI is per-role and per-user.
The audit query — give me a list of every user with admin capabilities, regardless of which role granted them — is structurally hard to answer through that interface. A flat matrix view and a flat user-extras column expose the drift directly. The data is already there in wp_options and usermeta; it just needs to be queryable as a normal table.
Questions
Common questions about SleekView for PublishPress Capabilities
WordPress core stores roles in the wp_user_roles option (a serialized array in wp_options) and per-user capabilities in usermeta under the wp_capabilities key. PublishPress Capabilities edits both. SleekView reads both, unpacks the serialized data, and presents them as flat queryable tables.
Yes. usermeta.wp_capabilities stores the user's role(s) plus any directly-assigned capabilities. SleekView surfaces extras as a separate count column and as an expandable detail per row, so admins can spot privilege drift across an entire user base in one view.
Yes. PublishPress Capabilities stores backups as serialized options. SleekView reads them as a backup-history view with timestamp, role count, and capability count visible per backup. Useful for spotting when a capability was last present in a role definition.
 
Yes. SleekView uses WordPress's role APIs (set_role, add_cap, remove_cap), so any plugin listening for those events fires correctly. Audit-log plugins, security plugins, and notification systems all behave as if the change came through the standard admin UI.
Yes. SleekView views are per-site by default, but you can build a network-level view that aggregates role definitions across sites — useful for spotting drift in a multisite where each site's role definitions can diverge over time. Network admins gain a single audit surface.
 Yes. Any view exports to CSV with the visible columns — useful for compliance audits, security reviews, or handing role definitions to a network admin or security consultant. The export honors the active filter so a "users with admin capabilities" export contains exactly those users.
 
Yes. Plugins that register custom capabilities (WooCommerce shop_manager caps, BuddyPress moderator caps, etc.) write to the same wp_user_roles option. SleekView reads them as additional rows or columns in the matrix, so the audit view covers third-party capabilities alongside core ones.
The backup-history view shows role count and capability count per backup, which catches large drifts at a glance. For row-level diffing, export two backup snapshots to CSV and run a diff in your tool of choice. Capabilities itself doesn't expose a structured diff API.
 Pricing
More than 1000+
happy customers
Explore our flexible licensing options tailored to your needs. Upgrade your license anytime to access more features, or opt for a lifetime license for ongoing value, including lifetime updates and lifetime support. Our hassle-free upgrade process ensures that our platform can grow with you, starting from whichever plan you choose.
Lifetime ♾️
Most popular
EUR
once
- Unlimited websites
- Lifetime updates
- Lifetime support
...or get the Bundle Deal
and save €250 🎁
The Bundle (unlimited sites)
Pay once, own it forever
Elevate your WordPress site with our exclusive plugin bundle that includes all of our premium plugins in one package. Enjoy lifetime updates and lifetime support. Save significantly compared to buying plugins individually.
What’s included
-
SleekAI
-
SleekByte
-
SleekMotion
-
SleekPixel
-
SleekRank
-
SleekView
€749
Continue to checkout