From 0531e1943fce50e21cdbd2e65427edc65396436c Mon Sep 17 00:00:00 2001 From: James Wampler Date: Thu, 11 Jun 2026 10:00:09 -0700 Subject: [PATCH] Add primary organization flag with auto-selection on dashboard MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds IsPrimary to OrganizationUser (per-user flag, one primary per user). First org created is automatically set as primary. Selecting a different org via the UI calls PUT /organisations/{id}/primary to persist the choice server-side. Dashboard auto-selects: localStorage org (refreshed) → primary org → single org when no explicit selection exists. Co-Authored-By: Claude Sonnet 4.6 --- src/admin/src/api/organizations.ts | 4 + src/admin/src/components/nav/OrgSelector.vue | 32 +- src/admin/src/types/api.ts | 1 + .../OrganizationUserConfiguration.cs | 1 + ...3_AddOrganizationUserIsPrimary.Designer.cs | 941 +++++++++ ...0611164933_AddOrganizationUserIsPrimary.cs | 29 + .../MicCheckDbContextModelSnapshot.cs | 1871 +++++++++-------- .../Organizations/OrganizationResponse.cs | 7 +- .../Organizations/OrganizationService.cs | 32 +- .../Organizations/OrganizationUser.cs | 1 + .../Organizations/OrganizationsController.cs | 20 +- 11 files changed, 1995 insertions(+), 944 deletions(-) create mode 100644 src/api/MicCheck.Api/Migrations/20260611164933_AddOrganizationUserIsPrimary.Designer.cs create mode 100644 src/api/MicCheck.Api/Migrations/20260611164933_AddOrganizationUserIsPrimary.cs diff --git a/src/admin/src/api/organizations.ts b/src/admin/src/api/organizations.ts index 326cc1a..649f418 100755 --- a/src/admin/src/api/organizations.ts +++ b/src/admin/src/api/organizations.ts @@ -81,3 +81,7 @@ export async function regenerateInviteLink(organizationId: number): Promise { await apiClient.post(`/v1/organisations/invite/${token}/accept`); } + +export async function setPrimaryOrganization(id: number): Promise { + await apiClient.put(`/v1/organisations/${id}/primary`); +} diff --git a/src/admin/src/components/nav/OrgSelector.vue b/src/admin/src/components/nav/OrgSelector.vue index 5bd130d..aac3ba8 100755 --- a/src/admin/src/components/nav/OrgSelector.vue +++ b/src/admin/src/components/nav/OrgSelector.vue @@ -67,7 +67,7 @@