{{- /* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Commercial */ -}} {{- /* SPDX-FileCopyrightText: 2025-2026 Christian Galo */ -}} {{/* operator_person_detail.html Resolved-detail page for a single person, dispatched from /operator/persons/{personID} by GetPersonPage. Reached from the People directory (/operator/persons), the landing-surface lookup affordance, or an org member-row link (operator-people-directory: breadcrumb reads People / {name}). Built from the page-anatomy parts (docs/design-system.md §6): the header carries the location trail above the person's name, outside the details card. */}} {{ if .Error }} {{ else }} {{ template "pageHeader" .Header }}
{{/* The identity provider's ownership of a field is marked on its own label, not grouped under a heading (operator-people- directory "The identity provider's ownership of a person's name is marked on the label"; acceptance-fixes round 5, maintainer: "The card now looks messy, I think we instead want to remove that epic in the middle of the card and instead add the glyph back but add them to the field labels themselves for the ones that are applicable."). Identity-provider facts come first, then the console's own. */}}
Name{{ template "managedGlyph" }}
{{ .Person.DisplayName }}
Email{{ template "managedGlyph" }}
{{ .Person.Email }}
Person ID
{{ .Person.PersonID }}
First seen
{{ .Person.CreatedAt }}
{{ template "sectionHeader" .MembershipsHeader }} {{ if eq (len .Memberships) 0 }} {{ template "emptyState" .NoMemberships }} {{ else }}
{{/* list-scale exempt: detail page, this person's own organization memberships */}} {{ range .Memberships }} {{ end }}
Organization Role Joined
{{ .OrgName }} {{ .RoleName }} {{ .JoinedAt }}
{{ end }} {{ end }}