ADMIN / auth — the ASSIGNMENT section
Right pane gains ASSIGNMENT below CAPACITIES. Click any member badge or capacity badge on a
group / role / grouprole and this section shows that one link — with a switch and a date window on
each of its parts — permissions for a grant, memberships for a user.
All hand-drawn scaffold — Admin has no Fiddle harness yet, so these are the real
components' values (paneConstants, adminStyles, CapBadges, DraggableMemberBadge) reproduced by hand, not the real code.
1 — the canvas, with the new badge states
▦ ▤ FINANCE
Members
bob
anna
carl
dana
COMPUTE
data.finance
lrwx
STUDIO
workspaces./shared
lrw-
anna is the selected member (blue ring, as today) — no dot, nothing is set for her here.
carl and dana are not in effect right now: carl by a date, dana by the switch. The
data.finance grant is dotted because one of its permissions carries a window, even though the badge
still works today.
r
green — granted and in effect right now
w
slate — granted, but not in effect: switched off, or outside its window
x
red — not granted at all (nothing to schedule)
-
grey — not available on this capacity (unchanged)
bob
dot on the badge — something is set for this assignment in ASSIGNMENT:
anything switched off, or anything with a date. Member and capacity badges alike.
Two signals, two jobs
Amber = not in effect right now, whether by switch or by date — agreed. The dot is the wider signal:
it appears whenever anything under that badge is switched off or dated, including a window that
hasn't started biting yet.
1b — amber or grey for "not in effect"?
amber
▦ ▤ FINANCE
COMPUTE
data.finance
lrwx
w-
dormant vs unavailable — well separated
grey
▦ ▤ FINANCE
COMPUTE
data.finance
lrwx
w-
dormant vs unavailable — one ramp, two ends
Why grey is probably right
Amber reads as warning, but a grant that expires on schedule isn’t a problem — it’s
working as intended. Grey reads as inert, which is what it is, and it’s the universal
disabled idiom.
It also keeps a colour free: on this canvas yellow already means “changed by someone else”
and blue means “your unsaved change” (yellowCaps / blueCaps). Those are
outlines rather than fills, so it isn’t a literal clash — but two ambers on one badge meaning two
different things is a bad trade for nothing gained.
The one cost: grey is already taken by unavailable (the - chip). Solved by using opposite
ends of the ramp — unavailable stays a near-white ghost, dormant is a solid slate. The letter is still
printed on a dormant chip, so glyph and fill both separate them.
2 — one table shape, whichever end you click
▸Capacities
▾Assignment
Finance←
COMPUTE data.finance
not now
One colour language, everywhere
The chip reads the same in the table and on the canvas: green granted and live, grey granted
but not live, red not granted. The tickbox doesn’t carry its own colour — it is the
control that moves the chip between green and grey, which is what makes it self-explaining.
Where the ✕ goes. Per row in the membership table, plus one on all that removes the
person from everything. In the permissions table a per-row ✕ would only mean “make this letter
red”, which the chip already does — so there it sits on all only, where it removes the
whole grant. Shout if you want it per-row there too.
2b — the same three colours in the preview above it
▾Capacities — anna
COMPUTE data.finance
lrwx
STUDIO workspaces./shared
lrw-
ADMIN authorisations
-rw-
▸Assignment
Grey means “only a switch or a date is stopping this”
Two masks, compared. One honours the switches and windows; one
ignores them, exactly as the preview computes today.
- green — the honouring mask grants it: she can do it right now.
- grey — only the ignoring mask grants it. Every contributing assignment is switched off or
out of window. Turn one back on and it goes green.
- red — neither grants it: nothing in the graph gives her this.
The OR still runs first, so a permission live through
any group or role is plain green — grey only ever means everything that would grant it
is dormant.
The existing “nobody selected” state is also grey, but
it’s the near-white COLORS.border and it paints every letter at once — same
opposite-ends-of-the-ramp separation we used for unavailable.
3 — the empty state, and the cleanup case
▸Capacities
▾Assignment
Select a member or capacity badge on a node.
Still open — cleanup
The probe ends with "remove the unnecessary, inactive assignments". Now that the table lists every row for
the selected thing, a Delete per row is nearly free — and a "delete every row that is off" for the
whole table. Worth having, or is dragging badges off the node by hand good enough?