The permissions model in chain operations is built on chain members belonging to permission groups. The key mechanism is capability inheritance – a chain admin automatically gets admin on every member restaurant with no separate configuration.
Base model
Every user in a chain is a chain member with:
A user can only exist as a member once per chain, but can be a member of multiple different chains.
Permission groups
Every chain gets an automatic Admin group at creation:
In the future, you'll be able to create custom groups (e.g. "Regional manager", "Menu editor"). In the MVP, only the Admin group exists.
Capability inheritance – the key mechanism
When Alice is a chain admin for "Burger Buffet Holding" (with 5 restaurants), the following happens:
admin.* wildcard/admin for any of the 5 units, the system checks:
Result: Alice can manage menu, void orders, give discounts, manage staff across all 5 units without being explicit restaurant_member anywhere.
Chain-scoped rights
Beyond inherited admin rights, there are specific rights for chain functions:
| Right | Grants right to |
|---|---|
| Manage menu template | Edit the chain's master menu |
| Publish menu | Push the menu template to member restaurants |
| Manage brand | Edit chain brand and lock brand fields |
| Manage loyalty | Control pooled loyalty (when feature ships) |
| Manage gift cards | Chain gift cards (MVP: covered by loyalty manager) |
| Manage members | Add/remove chain members |
| Manage settings | Change sharing flags |
| View analytics | Read chain analytics |
In the MVP, the Admin group has all these. In the future, custom groups can have subsets.
Add a member
/chain/:slug/medlemmarThe user gets immediate access to the chain console at next login.
Example: Add a regional manager
Bob is regional manager for the Stockholm area at "Burger Buffet Holding AB". Alice (the chain owner) wants him to be able to:
In MVP: Bob is added to the Admin group (gets everything). Future solution: create a "Regional manager" group with a subset of rights.
Deactivate vs remove
Deactivate (soft removal):
Remove (permanent removal):
Use "deactivate" for temporary pauses (e.g. parental leave) and "remove" when someone leaves entirely.
Chain admin vs restaurant admin – when to use what?
| Scenario | Action |
|---|---|
| CEO/owner overseeing all units | Chain admin |
| Site manager running only one unit | Restaurant admin (local member) |
| Central menu responsible | Chain admin (needs the right to manage menu templates) |
| Central economy/bookkeeping | Chain admin |
| Server/kitchen staff | Restaurant admin with reduced rights |
| Regional manager over 2-3 units | Chain admin today; future region group later |
Access to local data vs chain data
Security and access control
All access is validated directly in the database, not just in the UI. That means even if someone tries to talk directly to our API, they won't see data they don't have rights to. Read more in Chain – Security and Access Control.
Future development
Next step: Read about shared menu template – one of the most used features.
This feature is part of Vendion Chain Operations.
Curious how it looks in practice? Read more about the product or book a short demo.
Was this article helpful?