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.
TypeNameOrg scopeDefault permissions
aAdminNone — system-wideAll (*). There is only one admin group.
sdStudio DepartmentOne studio; no project or territorySharing, download, orders, notes
rcRegional ContactOne studio, one project, one territoryPermission-based
vVendorOne or more studios, projects, and territoriesPreview, download (sometimes)
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:
// api/models/Users.php
$user->is(Groups::ADMIN);   // true if the user is in any group of type "a"

Account types

Orthogonal to group type, every user is either a member or a guest. Defined in api/models/Users.php.
Account typeMeaning
memberFull account. Must complete registration and approval. The default.
guestLimited account. Requires approval only, not full registration.
// api/models/Users.php
$user->isGuest();   // accountType === "guest"
$user->isMember();  // not a guest
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.
FlagLabelGrants
previewsPreviewsView asset previews (on by default)
downloadDownloadDownload files
sharingUnrestricted SharingRe-share without approval
requestsPlace OrdersSubmit work requests
notesAdd/Edit NotesEdit asset notes
autosubsAutomated SubtitlesOrder automated subtitles
modifySubsModify SubtitlesEdit subtitles
socialSocial PublishPublish to social channels
votingVotingUse the share voting feature
ingestIngest AssetsIngest new assets
manageWorkRequestsManage Work RequestsFulfill and manage work requests (vendor capability)
adminWorkRequestsAdmin Work RequestsAdminister work requests across groups
projectAdminViewView Projects & AssetsView the project admin
projectAdminUpdateUpdate Projects & AssetsMake changes in the project admin
projectAdminEmbargosManage EmbargoesSet and lift embargoes
privateAccessBlanket Access to Private AssetsView private assets
workRequestReportReports: Work RequestsView the work request report
groupSpendingReportReports: Group Spending SummaryView group spending
exceptionReportReports: Group ExceptionsView group exceptions
downloadReportReports: DownloadsView the download report
feedbackReportReports: FeedbackView the feedback report
encodeReportReports: EncodesView the encode report
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.
RoleHow it’s determinedWhat it unlocks
AdminMember of a group with type === 'a'Everything, including the Admin area and user impersonation
Admin managerHas the adminWorkRequests permissionAdminister work requests across groups
VendorHas the manageWorkRequests permissionWork Requests and the Order Queue; fulfill orders
Territory userOwns a work request, or shares a group with its ownerActs on their own/their group’s work requests
Regular userAuthenticated, not admin and not vendorProjects and Shares, plus Downloads and Work Requests when not a guest
GuestaccountType === 'guest'Projects and Shares only
// ui/3x/modules/services/user-service.js
UserService.isAdmin(user);        // group.type === 'a'
UserService.isAdminManager(user); // permission.access.adminWorkRequests
UserService.isVendor(user);       // permission.access.manageWorkRequests
UserService.isGuest(user);        // accountType === 'guest'

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.
RoleWhoTypical capability
AdminIn the admin group, or granted admin on the requestDrive most status transitions
ManagerGroup has manageWorkRequests on the request’s studio/projectManage the request, with some approval limits
OwnerCreated the request, or shares a group with the creatorSubmit and cancel; cannot force status
TranslatorAssigned as the request’s translator (text or graphics)Update translation work

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.