Permissions

Control who can access what — grant granular permissions on specific entities.

How Permissions Work

Permissions allow you to control access at the entity level. Instead of giving someone full access to everything, you can grant specific permission levels on individual vendors, complexes, templates, or units. Manage permissions in CRM → Permission.

Permission Levels

  • Viewer — read-only access. Can view the entity and its details but cannot make changes.
  • Editor — can view and edit the entity, create child entities, and upload media.
  • Admin — full control. Can do everything an editor can, plus delete entities and manage permissions for other users.

Granting a Permission

To grant a permission, provide:

  • Entity type — what kind of entity (Vendor, Complex, Template, Unit, etc.).
  • Entity ID — the specific entity's ID number.
  • User — who receives the permission.
  • Level — Viewer, Editor, or Admin.

You cannot grant permissions to yourself — this prevents accidental privilege escalation.

Supported Entity Types

Permissions can be set on the following entity types:

  • Vendor
  • Complex
  • Template
  • Unit
  • User
  • Application
  • Permission
  • Media (Unit, Template, Complex, Vendor)

Permission Inheritance

Permissions cascade down the property hierarchy: Vendor → Complex → Template → Unit. If you grant a user access to a Vendor, they automatically get access to all of that vendor's Complexes, Templates, and Units. This means you only need to grant access at the highest level needed.

For example, granting someone Editor access on "Bali Property Group" (a Vendor) gives them Editor access on every Complex, Template, and Unit under that vendor — no need to set permissions on each one individually.

Permissions can also be overridden at any level. If a user has Viewer access on a Vendor but needs Editor access on one specific Complex, you can grant Editor permission directly on that Complex. The more specific permission takes priority.

This makes it easy to give broad access at the top level and fine-tune it where needed, without having to manage permissions for every single entity.