Where to find the permissions #️⃣

In the Strapi admin, open Settings → Administration Panel → Roles, pick the role you want to edit, and scroll to the Plugins tab. The Localazy permissions are grouped under Localazy, split into two sub-categories:

  • General — day-to-day plugin usage (reading and transferring content).
  • Settings — administering the plugin (viewing and editing its configuration).

Tick the actions you want to grant, save the role, and Strapi applies the changes immediately to anyone who already holds that role.

What each permission unlocks #️⃣

The plugin exposes four permission actions. They are independent — you can mix and match them to compose roles like translator, content editor, plugin admin, etc.

Permission Action UID What the user can do
Localazy → Read plugin::localazy.read See the Localazy menu link in the sidebar; open the Overview, Activity Logs (list and detail pages, including the troubleshooting bundle), and the Localazy side panel and status column inside the Content Manager. Read-only access to the connected Localazy identity, project metadata, plugin settings, content-transfer setup, sync cursor, and per-entry “Excluded / Included” state.
Localazy → Transfer plugin::localazy.transfer Run Upload to Localazy and Download from Localazy, including the destructive parts (deprecating source keys, applying downloaded translations). Toggle the Exclude from translation flag on individual entries and via the Content Manager bulk actions. Clear sessions from Activity Logs. Requires Localazy → Read to be useful — without it the Upload / Download pages are hidden.
Localazy → Settings → Read plugin::localazy.settings.read Add Localazy Settings entries (Global Settings, Content Transfer Setup) to the sidebar under Strapi’s general Settings section, and open those pages. Form controls render read-only — the user can review the configuration but cannot change it.
Localazy → Settings → Update plugin::localazy.settings.update Connect and disconnect the Localazy account, set up the webhook, edit Global Settings, and edit Content Transfer Setup. This is the only permission that lets a user write to plugin configuration — granting it implicitly assumes the user also has Settings → Read (without Read they cannot reach the page in the first place).

Suggested role recipes #️⃣

A few combinations cover most teams:

Role Read Transfer Settings → Read Settings → Update Result
Translator / QA Can browse Overview, Activity Logs, and translation state on entries, but cannot trigger uploads.
Content editor Runs day-to-day uploads / downloads and toggles excluded entries; cannot reconfigure the plugin.
Plugin viewer Sees the full configuration in read-only mode — useful for auditors.
Plugin admin Full access: transfers, settings, account connection, webhook setup.

Webhook author dropdown — Strapi Users permission #️⃣

In Localazy Settings → Global Settings, the Webhook actions author picker lists Strapi admin users so downloads triggered by a Localazy webhook can be attributed to a specific account. The list is populated from Strapi’s core /admin/users endpoint, which is gated by Strapi’s own Users and Roles → Users → Read permission (admin::users.read) — not by the Localazy plugin.

What a role with Localazy → Settings → Read sees depends on whether admin::users.read is also granted:

  • Granted — the dropdown lists every admin user; the configured author is shown by full name and email.
  • Not granted — the plugin does not call /admin/users (so the page does not 403). The dropdown is disabled. The previously saved author is still shown as User #<id> so the role can verify which account is wired up, and an inline note points to the missing permission.

Missing admin::users.read permission

To grant it, edit the role under Settings → Administration Panel → Roles, open the Plugins tab, and tick Users and Roles → Users → Read under the Users-permissions group (or Administration Panel → Users → Read, depending on your Strapi version).

Behavior when a permission is missing #️⃣

The plugin fails closed — when a permission is missing, the feature is hidden or disabled rather than throwing errors:

  • No Localazy → Read — the entire Localazy menu link and side panel are hidden, and /plugins/localazy/... URLs render Strapi’s standard No permissions page.
  • No Localazy → Transfer — opening Upload and Download menu links directly shows No permissions; bulk actions in the Content Manager do not register.
  • No Localazy → Settings → Read — the Localazy Settings entries in the sidebar are hidden, and direct URLs to Global Settings or Content Transfer Setup render No permissions.
  • No Localazy → Settings → Update — both settings pages still open, but every input, toggle, the tree in Content Transfer Setup, and the Save / Cancel / Set up webhook buttons are disabled. The user can audit the configuration but cannot change it.

Missing Localazy -> Transfer permission

Missing Localazy -> Settings -> Update permission

Upgrading from <= 1.4.x #️⃣

Strapi grants every newly registered permission action to the Super Admin role automatically. All other roles — including Editor, Author, and any custom roles — start with no Localazy access after the upgrade and must be re-granted explicitly. Plan a short configuration step into your upgrade:

  1. Upgrade the plugin and restart Strapi.
  2. Open Settings → Administration Panel → Roles and review each role that previously used Localazy.
  3. Tick the relevant Localazy actions (and admin::users.read if the role manages webhook settings) and save.

Until this is done, non-admin users will see the Localazy menu disappear from their sidebar. They are not blocked from working in Strapi — only from interacting with the plugin.