> For the complete documentation index, see [llms.txt](https://docs.uichemy.com/llms.txt).
> Use it to discover all available pages before exploring further.

# Setting User Permissions

Configure access levels, and the feature and editing mode toggles for Custom roles, for each WordPress user role in UiChemy's Role Manager.


Configuring a role means setting its access level in the Role Manager (**No Access**, **Content Only**, **Custom**, or **Full Access**), and, for Custom roles, choosing which specific features and editing modes are available to users with that role. Changes take effect immediately, no cache flush needed.

### Opening the Role Manager

Go to **UiChemy → Role Manager**. You'll see a list of every WordPress user role on your site. Each role shows its current status and slug directly under the role name (for example `Content Only · author`), with the access buttons on the right.

<div style="border: 4px solid transparent; border-radius: 16px; background: linear-gradient(135deg, #FD6A35, #FEA686) border-box; overflow: hidden; margin: 1.5rem auto; max-width: 640px;">
  <div style={{margin: '-24px 0', lineHeight: 0}}>
    <Image src="https://res.cloudinary.com/ekxmy1t9/image/upload/v1788958588/uichemy-docs/uichemy-composer/role-manager/user-permissions/role-manager.png" alt="" width={1600} height={968} style={{display: 'block', width: '100%', height: 'auto', borderRadius: '8px', margin: 0}} priority={true} fetchPriority="high" />
  </div>
</div>
<p style="text-align: center; font-size: 0.875rem; color: var(--text-color-secondary, #6b7280); margin-top: 0.5rem;"><em>Role Manager: every WordPress role, with its access level</em></p>

### Access Level

Every role has four access level options, displayed as buttons on the right of its row. Click one to apply it, the status under the role name updates immediately:

<ExpandableGroup>
  <Expandable title="No Access" default-open="false">
    - The user can't open or interact with the UiChemy editor at all.
    - The editor UI is completely hidden, they won't see any UiChemy controls, menus, or edit options on the front end or inside Elementor.
    - Use this for roles with no reason to build or edit pages, Subscribers, Customers, or any front-end-only user.
  </Expandable>
  <Expandable title="Content Only" default-open="false">
    The user can open existing Composer widgets and edit their content, text, images, and other values, but they can't:

    - Add new Composer widgets.
    - Delete existing Composer widgets.
    - Regenerate output using AI prompts.
    - Change layout or structure.

    This is the safest option for clients or junior contributors who need to update content but shouldn't be able to change the design or structure of a page.
  </Expandable>
  <Expandable title="Custom" default-open="false">
    - Full editor, with only the feature surfaces you pick.
    - The user can add and remove Composer widgets and control layout, like Full Access.
    - **Theme Builder**, **Design System**, and **AI Chat** are each turned on or off for the role, see [Custom Access Options](#custom-access-options).
    - You can also limit which editing modes the role gets: Design, Developer, or both.
    - Use this when a role needs real page building, but not every advanced feature.
  </Expandable>
  <Expandable title="Full Access" default-open="false">
    - Full editor and every feature surface.
    - The user can add and remove Composer widgets, write AI prompts, regenerate sections, and control layout.
    - **Theme Builder**, **Design System**, and **AI Chat** are always included, there are no toggles to turn them off.
    - Use this for trusted editors, designers, and site managers who need to do real page building work.
  </Expandable>
</ExpandableGroup>

### Custom Access Options

When you set a role to **Custom**, extra options appear in its row. Use them to pick exactly what the role can reach.

**Feature toggles.** Each one starts **Off** until you turn it on.

<ExpandableGroup>
  <Expandable title="Theme Builder" default-open="false">
    - **What it does**: create and edit header/footer/404 templates. When on, the user can access **UiChemy → Theme Builder** to create, edit, and delete site-wide templates.
    - **Turn on for**: senior editors or designers who manage global site structure.
    - **Keep off for**: content writers and page editors who should only work on individual pages.
  </Expandable>
  <Expandable title="Design System" default-open="false">
    - **What it does**: edit global CSS, variables, and classes. When on, the user can edit global CSS variables, custom classes, and site-wide style settings. Changes affect every page on the site that uses those variables or classes.
    - **Turn on for**: developers and designers responsible for the site's global visual style.
    - **Keep off for**: anyone who should only edit content and layout on individual pages, changes here can unintentionally break the look of the entire site.
  </Expandable>
  <Expandable title="AI Chat" default-open="false">
    - **What it does**: use the built-in AI assistant in the Composer. When on, the user can open AI Chat inside the Composer widget to write prompts, refine sections, and generate content from a chat interface. This toggle only controls *who* can reach AI Chat, the feature itself still requires UiChemy Pro to be active site-wide, see [Free vs Pro](/uichemy-composer/getting-started/free-vs-pro).
    - **Turn on for**: editors and builders you trust to use AI-assisted tools for page building.
    - **Keep off for**: roles where you want to control or limit AI usage, or where AI Chat would create confusion for less technical users.
  </Expandable>
</ExpandableGroup>

**Editing modes.** Choose which Composer modes the role gets:

| Toggles on | What the role gets |
|---|---|
| **Design** only | Chat and Editor. No Code. |
| **Developer** only | Chat, Editor and Code. |
| **Both** | This role can switch between Design and Developer. |
| Neither | Follows the site-wide **Editor mode** setting. |

<Callout kind="tip">
Every other access level, and Administrators, follow the site-wide **Editor mode** setting in [General Settings](/uichemy-plugin/settings/general-settings). The mode toggles exist only on **Custom** roles.
</Callout>

### Common Configurations

| Configuration | Access Level | Theme Builder | Design System | AI Chat |
|---|---|---|---|---|
| **Content writer** | Content Only | Off | Off | Off |
| **Senior editor** | Custom | On | Off | On |
| **Page builder** (no global access) | Custom | Off | Off | On |
| **Site manager** | Full Access | Always on | Always on | Always on |

- **Content writer**, a user who only updates text and images on existing pages.
- **Senior editor**, a trusted editor who builds pages and manages templates but shouldn't touch global CSS.
- **Page builder (no global access)**, a designer who builds individual pages with AI but doesn't manage global templates or styles.
- **Site manager**, a fully trusted user who needs every feature.

### Saving Changes

A bar at the bottom of the page tracks your edits. It reads **"All changes saved."** until you change something, then switches to **"You have unsaved changes."** with two options:

- **Save changes**, applies your edits.
- **Discard**, throws them away and restores the last saved state.

Changes apply immediately, users with that role don't need to log out and back in, the updated permissions take effect on their next page load.

<Callout kind="info">
Administrators always have full access to all UiChemy features regardless of Role Manager settings. The Administrator role is listed for reference with a locked **Full access** badge, and can't be restricted.
</Callout>

### Related

<Columns cols={2}>
  <Card title="Role Manager Overview" href="/uichemy-plugin/role-manager/overview">
    See the four access levels and why they matter for your site.
  </Card>
  <Card title="Design vs Developer Mode" href="/uichemy-composer/concepts/design-vs-developer-mode">
    Understand the Design and Developer modes a Custom role can be limited to.
  </Card>
  <Card title="AI Chat Tab" href="/uichemy-composer/uichemy-widget/ai-chat-tab">
    See what the AI Chat toggle actually turns on for a role.
  </Card>
</Columns>
