PortlinePortlineDocs

Roles

Owner, admin, dispatcher and viewer, and the permission level each one gets.

Every member of a workspace has exactly one role. The table below is rendered from the same definitions the app uses, so it can't drift from what the app enforces.

RoleDefault levelWhat it means
OwnerapproveEverything, including members and the plan. One per workspace.
AdminapproveEverything except the owner. Verifies documents and manages members.
DispatchereditRuns daily operations: dock appointments, check-ins, messages, uploads.
ViewerviewReads everything the plan includes. Changes nothing.

Three levels

Roles map to a permission level, and every action in Portline needs one of them:

  • View reads. Every role has it for every area the plan includes.
  • Edit covers daily operations: move a dock appointment, check a driver in or out, upload a document (it lands as Submitted), send a message. Dispatchers and up.
  • Approve covers decisions: verify or reject a document, change a member's role. Admins and the owner.

The area pages list exactly what each role can do in that area. For example, in Shipments a dispatcher can upload a bill of lading but can't mark it verified.

The owner

There's one owner per workspace. Admins can manage every other member, but they can't change the owner's row or hand out the owner role. Nobody can change their own role, so nobody can promote themself. Postgres enforces this with a trigger on pl_members, so it holds even outside the app.

Plan on top of role

A role only applies to areas the workspace's plan includes. A dispatcher on Starter can't open Docks, because Starter doesn't include the docks feature, and the database returns no dock rows for that workspace at all. See Plans and access.

On this page