Hat Relationships
All … hats across the org hierarchy, grouped by level. One account can hold multiple hats — expand a hat and toggle which other hats it can wear. Only hats strictly beneath a hat are offered (act-as is downward-only); the Poppy level (L0) is Super Admin only. Changes save to the database instantly.
Onboard a person
We never set anyone’s password, and we should not. An admin-chosen password has to be sent to them somehow, is known to two people from the moment it exists, and destroys the ability to prove an action was theirs — a compliance problem for a brokerage, not just a security preference. Instead: they get an invite, THEY choose the credential, and a second factor enrols on first sign-in. A reset is the same shape — a one-time link, never a password read out over the phone.
Give someone a hat
Hats compose — one login, many hats. Adding one here grants it immediately; the person sees it on their Identity page along with every surface it opens. Rank comes from the catalogue below, so a hat always means the same thing wherever it is granted. Every grant is written to the audit log with who did it.
Access
The hat catalog
A hat carries a tier (which organisation it belongs to) and a name (what that organisation calls it). Nothing said that MLS Admin, Membership Admin, Office Manager and Team Admin are the same job at four tiers — so a decision about what an administrator may do had to be made four times, and the four drifted. Rank is that missing axis. Read a row across: one job, its local names. The row is where shared attributes belong; the name stays freely editable per organisation.
Every hat says LIVE because pure_hats.status is live on all 54 rows — one value, set at seed time, checked by nothing on any schedule. It meant defined and was being read as in use. This column is derived at read time from evidence, so there is no schedule for it to fall behind, and the stored value is shown beside it so the gap stays visible instead of being quietly overwritten.
Hat Relationships · pure_hats + pure_hat_wearable · PURE merged workspace