export function resolveTenant()

in server/multitenancy/tenant_resolver.ts [37:70]


export function resolveTenant(
  request: OpenSearchDashboardsRequest,
  username: string,
  availabeTenants: any,
  config: SecurityPluginConfigType,
  cookie: SecuritySessionCookie
): string | undefined {
  let selectedTenant: string | undefined;
  const query: any = request.url.query as any;
  if (query && (query.security_tenant || query.securitytenant)) {
    selectedTenant = query.security_tenant ? query.security_tenant : query.securitytenant;
  } else if (request.headers.securitytenant || request.headers.security_tenant) {
    selectedTenant = request.headers.securitytenant
      ? (request.headers.securitytenant as string)
      : (request.headers.security_tenant as string);
  } else if (isValidTenant(cookie.tenant)) {
    selectedTenant = cookie.tenant;
  } else {
    selectedTenant = undefined;
  }

  const preferredTenants = config.multitenancy?.tenants.preferred;
  const globalTenantEnabled = config.multitenancy?.tenants.enable_global || false;
  const privateTenantEnabled = config.multitenancy?.tenants.enable_private || false;

  return resolve(
    username,
    selectedTenant,
    preferredTenants,
    availabeTenants,
    globalTenantEnabled,
    privateTenantEnabled
  );
}