Skip to main content
For a plain-language overview aimed at end users, see User roles. This page is the technical reference.
Pixwel has no single role field on a user. Access is layered, and a user’s effective role is the combination of three things:
  1. Group type — the structural role, set by the kind of group a user belongs to (admin, studio department, regional contact, vendor).
  2. Permissions — fine-grained access flags granted to a group, scoped by studio, project, territory, language, and usage.
  3. Account type — whether the account is a full member or a limited guest.
On top of these, the app derives a few functional roles at runtime (for example “vendor” or “admin manager”) from the permission flags, and a few contextual roles that only apply within a single work request.
Groups and permissions are managed by admins in the Admin area of the UI (Groups, Permissions, Studios, Territories tabs). That admin interface is the source of truth for everything on this page.

Group types

A user belongs to one or more groups, and each group has a type. The type defines the structural role and the org scope. Defined in api/models/Groups.php and surfaced in the UI in ui/3x/constants/admin.js. A group also carries the studios, territories, and users it applies to, plus optional domains for auto-assigning users by email domain. The API checks structural role by group membership:

Account types

Orthogonal to group type, every user is either a member or a guest. Defined in api/models/Users.php.
Guests are heavily restricted in the UI — they see only Projects and Shares, and lose access to Work Requests, Downloads, the Order and Share queues, Notifications, and Preferences.

Permissions

Group type sets the baseline, but capabilities come from permission access flags attached to a group. These are the named actions a user can perform. Labels are defined in ui/3x/constants/admin.js (PERMISSION_ACTION_LABELS); the schema lives in api/models/Permissions.php. Permission access is granted per group and can be scoped — by studio, project, and territory on the group, and by country, language, and usage on the permission’s sources. So “download” for one group can be narrower than “download” for another.

Functional roles in the UI

The front end derives a handful of roles from the data above. These determine what menu items and screens a user sees (ui/3x/modules/services/user-service.js).
“Admin manager” and “vendor” are not group types — they are derived from permission flags, so a user in any group can hold them.

Work request roles

Within a single work request, a user takes on a contextual role that governs which status transitions they can drive. These are computed per request in api/models/WorkRequests.php and don’t change the user’s overall role.

How roles map to the org structure

Roles are always relative to the organizational hierarchy:
  • Studios are the top-level org unit. Studio departments, regional contacts, and vendors all attach to one or more studios.
  • Territories are regional units (with their own languages). Groups are permissioned per territory, and permissions can be filtered by country and language.
  • Groups tie it together: a group’s type is the role, its studios/territories are the scope, its users are the members, and its permissions are the capabilities.