Property managers

Set a property manager's menu access

Replaces the whole list of top-level menus this property manager sees. Anything you leave out is hidden. You cannot change your own.

PUT
https://api.portal.magicdoor.com/company-app/property-managers/{propertyManagerId}/menu-access

Authorization

Authorizationstringrequired
Bearer token — Send your API token in the Authorization header as Bearer <token>. Requests without a valid token are rejected with 401 Unauthorized.

Path parameters

propertyManagerIdstringrequired

The property manager. A Snowflake id, sent as a decimal string.

example: 1830472847398404098

Body

application/json

The complete list of enabled menus. ["*"] opens every menu, [] hides every menu, and a list of keys opens exactly those. The wildcard cannot be mixed with other keys.

menuAccessstring[]required

The complete list of enabled menu keys. Valid keys are onboarding, home, properties, listing, leasing, users, accounting, reports, maintenance, associations, communications, ai and settings, or the single entry *.

*onboardinghomepropertieslistingleasingusersaccountingreportsmaintenanceassociationscommunicationsaisettings

Response

200 · The menu keys now in force — the same list you sent.

menuAccessstring[]

The enabled top-level menu keys.

401 · The access token is missing, expired, or does not belong to a property manager.

404 · No property manager with that id exists for the calling company. A record that belongs to another company is reported the same way as one that does not exist. The id you asked for is in `entityId`; `detail` names only the kind of record.

422 · Either you tried to change your own menu access, or the list contains a key that is not valid. For an invalid key, `title` is `Invalid Permission Format` and `detail` names the offending key and lists the valid ones. Note that `type` carries an exception name here rather than a URL, because this response is assembled by the controller rather than by the usual problem-details machinery.

Two different gates

A property manager is limited in three independent ways, and it is easy to confuse them.

  • Permissions are resource:action strings such as property:read. They decide what the API lets this person do. See list permissions.
  • Property access decides which properties those permissions reach — all of them, or a named set of portfolios and properties. See get property access.
  • Menu access decides which top-level menus MagicDoor's own web app draws for them. It hides screens; it does not stop an API call. See get menu access.
This replaces the list, it does not add to it

Read the current list first if you mean to add one menu. Sending ["reports"] leaves the property manager with reports and nothing else.

The wildcard is all or nothing

["*"] on its own is accepted. * alongside other keys is rejected, because * is not one of the valid individual keys.