GreenSailsAlpha

Access (groups & policies)

Control who can do what, and at which locations.

GreenSails lets you decide who can do what, and often at which locations. It sits on top of member base roles: roles set the baseline, while policies and groups add the details.

Access management lives under Settings → Organization → Access and requires iam:view to browse and iam:manage to create or edit groups and policies. To attach access to a person, open Settings → Organization → Members and choose Manage access (also requires iam:view).

The building blocks

Policy

A reusable document of allow/deny statements over actions, optionally scoped to locations.

Group

A named bundle of policies. Add members to a group and they inherit every policy attached to it.

Member access

Attach groups or individual policies directly to one member from the Members list.

The Access page has two tabs, Groups (default) and Policies. Create policies first, attach them to groups, then add members to those groups. For one-off grants, skip the group and attach policies directly to the member.

Base roles first

Before groups and policies, each member has a base role:

RoleBaseline access
OwnerImplicit superuser, all permissions, cannot be restricted by deny policies.
AdminNearly full back-office access; excludes org:delete and org:manage-billing.
MemberNo baseline permissions. A newly invited member can do nothing until you grant groups or policies.
ServiceFixed operational baseline for service accounts (catalog read, orders, stock counts, menu availability, KDS). Not used for human dashboard users.

Use Member as the default invite role, then grant Inventory Managers, Cashiers, or custom policies. Admins already inherit broad access; groups are most useful for Members and for narrowing Admin access at specific locations.

How policies work

A policy contains one or more statements. Each statement has:

  • Effect: Allow or Deny
  • Actions: Specific permissions (e.g. orders:view, menu-boards:manage) or * for every action
  • Locations: For location-scoped actions, which venues the statement applies to (All locations or a picked subset). Ignored for org-wide actions.

When you edit a policy, the statement editor groups actions the same way as the product UI (Organization, Members, Inventory Items, Stock Taking, Orders, and so on).

Deny always wins. If any applicable statement denies an action, the user is blocked, even when another policy allows it. Use deny statements sparingly to carve exceptions out of broad allows.

Location scoping

Only certain permissions can be limited to specific locations. For everything else, location picks in a statement are ignored and the grant applies organization-wide.

Location-scoped (you can restrict to selected venues):

AreaPermissions
Local stockstock-counts:view, stock-counts:upsert, stock-counts:delete
Snapshots & countsstock-snapshots:view, stock-snapshots:create, count-sessions:view, count-sessions:create, count-sessions:close
Purchasingpurchase-orders:view, purchase-orders:create, purchase-orders:update, purchase-orders:receive, purchase-orders:cancel
Transferstransfers:view, transfers:create, transfers:ship, transfers:receive, transfers:cancel
Ordersorders:view, orders:create, orders:settle, orders:split
Locationslocations:view, locations:update, locations:delete
Menu boardsmenu-boards:view, menu-boards:set-availability
Kitchen displaykds:view, kds:manage
Analyticsanalytics:view

Organization-wide (location scope has no effect):

  • Catalog: items, item categories, modifier groups, location categories, locations:create
  • Stock taking & intelligence: stock-taking:*, inventory-alerts:*, inventory-reports:view
  • Billing: all invoices:* and contracts:* actions
  • Administration: members, service accounts, settings, audit logs, access control, org settings
  • Other: menu-boards:manage, shifts:view, uploads:create

Example: a regional supervisor might get orders:view and menu-boards:set-availability at three stores only. An invoice clerk gets invoices:* org-wide with no location picker.

Permission reference

The tables below mirror the action picker in the policy editor. Grant the minimum set each role needs.

Organization & administration

ActionsTypical use
org:update, org:delete, org:manage-billingOrganization profile, billing account, and Tax & compliance (regime, inclusive prices, service charge, TCC policy)
members:view, members:invite, members:remove, members:update-roleMembers & invitations
service-accounts:view, service-accounts:create, service-accounts:update, service-accounts:deleteService accounts
settings:view, settings:updateInvoice template, payment reminders, contract templates, terminals, KDS stations, operators, tags
tags:view, tags:manageBrowse tag vocabulary, filters, and hub; create or edit tags
audit-logs:viewSettings → Organization → Audit logs: see Audit Logs
iam:view, iam:manageView or edit groups and policies
uploads:createLogo and image uploads (catalog, invoices, locations)

Catalog

ActionsTypical use
items:*, item-categories:*Catalog → Items
modifier-groups:*Catalog → Modifier templates
locations:*, location-categories:*Catalog → Locations and categories
stock-counts:view, stock-counts:upsert, stock-counts:deletePer-location stock sheets (Catalog → Locations or inventory flows)

Inventory operations

ActionsTypical use
stock-taking:view, stock-taking:configureCount policies, schedules, variance rules (Inventory → Stock taking)
stock-snapshots:*, count-sessions:*Snapshots and count sessions
purchase-orders:viewVendors list, purchase order list and detail
purchase-orders:create, purchase-orders:updateCreate/edit purchase orders and vendors; create linked PO or vendor bill paperwork (with invoices:create)
purchase-orders:receiveCheck in stock against an ordered purchase order
purchase-orders:cancelCancel draft or ordered purchase orders
transfers:viewTransfer list and detail
transfers:createCreate and edit draft transfers
transfers:shipShip stock out of the source location
transfers:receiveCheck in stock at the destination location
transfers:cancelCancel draft transfers
inventory-alerts:view, inventory-alerts:acknowledgeInventory → Alerts
inventory-reports:viewInventory → Reports

See Inventory Overview, Vendors, Purchase orders, and Transfers for how these map to the sidebar.

Sell & kitchen

ActionsTypical use
orders:view, orders:create, orders:settle, orders:splitSell → Orders and POS sync
shifts:viewSell → Shifts (org-wide)
kds:view, kds:manageKitchen tickets and KDS station config
menu-boards:view, menu-boards:manage, menu-boards:set-availabilityMenu boards, templates, and on-the-fly availability

Workforce

Workforce permissions split manager tools in the dashboard from self-service tools in the staff portal:

ActionsTypical use
workforce:viewWorkforce section: schedule, employees, time cards, requests (read-only; hourly rates hidden)
workforce:manage-employeesCreate roster entries, enable portal access, view hourly rates, and edit overtime and punch policy
workforce:manage-scheduleBuild and publish shifts on the calendar
workforce:manage-timecardsReview time cards, manager clock-in (with override reason), adjust breaks, and view hourly rates
workforce:approve-requestsApprove or deny requests, and create time off or shift trades on behalf of staff
workforce:view-self, workforce:clock-self, workforce:request-selfStaff portal: schedule, calendar sync, clock in, breaks, and submit requests

See Workforce Overview and Staff Portal.

Billing & money

Invoice and contract actions are organization-wide:

ActionsTypical use
invoices:viewInvoices, quotes, receipts, credit notes, vendor bills, customers, recurring, batch, GCT-01 helper, Service charge pool
invoices:createNew documents, generate-from-order, and create PO / vendor bill paperwork from Inventory
invoices:updateEdit drafts, record payments (including on draft vendor bills), templates, reminders
invoices:deleteRemove drafts or documents
invoices:sendEmail parties and manage portal access
contracts:view, contracts:create, contracts:update, contracts:delete, contracts:sendMoney → Contracts and e-signature

Grant send separately from update when staff may prepare documents but only managers may deliver them.

Analytics

ActionsTypical use
analytics:viewAnalytics dashboards and AI briefings (can be location-scoped)

Groups: manage access at scale

A group bundles policies under a name like "Store Managers" or "Menu Editors." Assign members to the group and they inherit every attached policy. When responsibilities change, edit the group once instead of each member.

Create policies

On the Policies tab, define reusable allow/deny documents. Start from a system preset or build your own.

Build a group

On the Groups tab, create a group and attach the policies it should include.

Add members

Open the group detail dialog and add members, or assign the group from a member's Manage access dialog.

Per-member access

For one-off needs, open Settings → Organization → Members, click Manage access on a row, and attach groups or individual policies without creating a dedicated group.

Prefer groups over direct member policies for anything recurring. Groups keep access auditable and make onboarding a single assignment.

System presets

Every new organization is seeded with built-in system policies and groups. System policies show a System badge, are read-only, and cannot be deleted, duplicate their intent in a custom policy if you need changes.

System policies

PolicyPurpose
ReadOnlyAccessRead-only across catalog, orders, billing, settings, analytics, audit logs, KDS, and tags
FullAccessAllow every action (*)
InventoryManagerFull catalog and stock-count management plus analytics and tag read
CashierTake and settle orders; read catalog, stock, and tags at assigned locations
KitchenDisplayOperate KDS screens (kds:view, kds:manage)
InvoiceManagerFull invoices and contracts plus related catalog, order, and tag read
MemberManagerInvite, remove, and change member roles; manage access control
StaffPortalStaff portal self-service (workforce:view-self, workforce:clock-self, workforce:request-self)

System groups

GroupAttached policies
AdministratorsFullAccess
Inventory ManagersInventoryManager
CashiersCashier
Invoice ManagersInvoiceManager
Read OnlyReadOnlyAccess
StaffStaffPortal

Attach KitchenDisplay, MemberManager, or StaffPortal policies directly to members or add them to custom groups when needed. There is no preset group for kitchen display operators.

How access is evaluated

When a member attempts an action, GreenSails combines:

  1. Their base role baseline (Admin/Member/Service additions; Owner bypasses checks)
  2. All policies on groups they belong to
  3. Policies attached directly to the member

The engine merges allows and denies, applies deny-overrides-allow, and checks location scope for location-bound permissions. Changes to roles, groups, or policies bump a permissions version so dashboard sessions and terminals pick up new access promptly.

What's next

On this page