+
+
+
+ 🛡️ ВЫ В РЕЖИМЕ СУПЕР-АДМИНА — ОРГАНИЗАЦИЯ «{ov.name}» — ТОЛЬКО ПРОСМОТР
+
+
+
+
+ )
+}
diff --git a/src/food-market.web/src/lib/api.ts b/src/food-market.web/src/lib/api.ts
index 332adf5..d47d4bf 100644
--- a/src/food-market.web/src/lib/api.ts
+++ b/src/food-market.web/src/lib/api.ts
@@ -11,9 +11,31 @@ api.interceptors.request.use((config: InternalAxiosRequestConfig) => {
if (token) {
config.headers.set('Authorization', `Bearer ${token}`)
}
+ // SuperAdmin «открыть как…»: добавляем X-Org-Override на каждый запрос если
+ // в localStorage активна выбранная орга (и эндпоинт не сам super-admin).
+ const asOrg = getOrgOverride()
+ if (asOrg && !(config.url ?? '').startsWith('/api/super-admin/')) {
+ config.headers.set('X-Org-Override', asOrg.id)
+ }
return config
})
+const ORG_OVERRIDE_KEY = 'superAdminAsOrg'
+export interface OrgOverride { id: string; name: string }
+export function getOrgOverride(): OrgOverride | null {
+ try {
+ const raw = localStorage.getItem(ORG_OVERRIDE_KEY)
+ return raw ? JSON.parse(raw) as OrgOverride : null
+ } catch { return null }
+}
+export function setOrgOverride(value: OrgOverride | null) {
+ if (value) localStorage.setItem(ORG_OVERRIDE_KEY, JSON.stringify(value))
+ else localStorage.removeItem(ORG_OVERRIDE_KEY)
+ // Силой обновляем все вкладки/страницы — кэш TanStack Query построен по
+ // tenant'у, нужен hard reload чтобы снять старые данные.
+ if (typeof window !== 'undefined') window.location.reload()
+}
+
let refreshing: Promise