Skip to content

Commit

Permalink
Move tenant-related utils to common folder (opensearch-project#1184)
Browse files Browse the repository at this point in the history
Signed-off-by: Chang Liu <[email protected]>
(cherry picked from commit f815e3c)
  • Loading branch information
cliu123 committed Nov 3, 2022
1 parent 6c71077 commit 7e2a07c
Show file tree
Hide file tree
Showing 6 changed files with 41 additions and 35 deletions.
19 changes: 19 additions & 0 deletions common/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,13 @@ export const API_AUTH_LOGOUT = '/auth/logout';

export const ERROR_MISSING_ROLE_PATH = '/missing-role';

export const GLOBAL_TENANT_SYMBOL = '';
export const PRIVATE_TENANT_SYMBOL = '__user__';
export const DEFAULT_TENANT = 'default';
export const GLOBAL_TENANT_RENDERING_TEXT = 'Global';
export const PRIVATE_TENANT_RENDERING_TEXT = 'Private';
export const globalTenantName = 'global_tenant';

export enum AuthType {
BASIC = 'basicauth',
OPEN_ID = 'openid',
Expand All @@ -47,3 +54,15 @@ export function isValidResourceName(resourceName: string): boolean {
const exp = new RegExp('[\\p{C}%]', 'u');
return !exp.test(resourceName) && resourceName.length > 0;
}

export function isPrivateTenant(selectedTenant: string | null) {
return selectedTenant !== null && selectedTenant === PRIVATE_TENANT_SYMBOL;
}

export function isRenderingPrivateTenant(selectedTenant: string | null) {
return selectedTenant !== null && selectedTenant?.startsWith(PRIVATE_TENANT_SYMBOL);
}

export function isGlobalTenant(selectedTenant: string | null) {
return selectedTenant !== null && selectedTenant === GLOBAL_TENANT_SYMBOL;
}
42 changes: 16 additions & 26 deletions public/apps/configuration/utils/tenant-utils.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,31 +18,33 @@ import { map } from 'lodash';
import React from 'react';
import { i18n } from '@osd/i18n';
import {
API_ENDPOINT_TENANTS,
API_ENDPOINT_MULTITENANCY,
API_ENDPOINT_TENANTS,
RoleViewTenantInvalidText,
TENANT_READ_PERMISSION,
TENANT_WRITE_PERMISSION,
} from '../constants';
import {
DataObject,
ObjectsMessage,
Tenant,
TenantUpdate,
TenantSelect,
RoleTenantPermissionView,
RoleTenantPermission,
RoleTenantPermissionDetail,
RoleTenantPermissionView,
Tenant,
TenantPermissionType,
RoleTenantPermission,
TenantSelect,
TenantUpdate,
} from '../types';
import { TENANT_READ_PERMISSION, TENANT_WRITE_PERMISSION } from '../constants';
import { httpDelete, httpGet, httpPost } from './request-utils';
import { getResourceUrl } from './resource-utils';

export const globalTenantName = 'global_tenant';
export const GLOBAL_TENANT_SYMBOL = '';
export const PRIVATE_TENANT_SYMBOL = '__user__';
export const DEFAULT_TENANT = 'default';
export const GLOBAL_TENANT_RENDERING_TEXT = 'Global';
export const PRIVATE_TENANT_RENDERING_TEXT = 'Private';
import {
GLOBAL_TENANT_RENDERING_TEXT,
GLOBAL_TENANT_SYMBOL,
globalTenantName,
isGlobalTenant,
isRenderingPrivateTenant,
PRIVATE_TENANT_RENDERING_TEXT,
} from '../../../../common';

export const GLOBAL_USER_DICT: { [key: string]: string } = {
Label: 'Global',
Expand Down Expand Up @@ -179,18 +181,6 @@ export function transformRoleTenantPermissions(
}));
}

export function isPrivateTenant(selectedTenant: string | null) {
return selectedTenant !== null && selectedTenant === PRIVATE_TENANT_SYMBOL;
}

export function isRenderingPrivateTenant(selectedTenant: string | null) {
return selectedTenant !== null && selectedTenant?.startsWith(PRIVATE_TENANT_SYMBOL);
}

export function isGlobalTenant(selectedTenant: string | null) {
return selectedTenant !== null && selectedTenant === GLOBAL_TENANT_SYMBOL;
}

export const tenantColumn = {
id: 'tenant_column',
euiColumn: {
Expand Down
2 changes: 1 addition & 1 deletion public/apps/configuration/utils/test/tenant-utils.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import {
resolveTenantName,
RESOLVED_GLOBAL_TENANT,
RESOLVED_PRIVATE_TENANT,
globalTenantName,
formatTenantName,
transformRoleTenantPermissionData,
getTenantPermissionType,
Expand All @@ -32,6 +31,7 @@ import {
TENANT_WRITE_PERMISSION,
} from '../../constants';
import { TenantPermissionType } from '../../types';
import { globalTenantName } from '../../../../../common';

describe('Tenant list utils', () => {
const expectedGlobalTenantListing = {
Expand Down
2 changes: 1 addition & 1 deletion server/auth/types/authentication_type.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ import { SecuritySessionCookie } from '../../session/security_cookie';
import { SecurityClient } from '../../backend/opensearch_security_client';
import { resolveTenant, isValidTenant } from '../../multitenancy/tenant_resolver';
import { UnauthenticatedError } from '../../errors';
import { GLOBAL_TENANT_SYMBOL } from '../../../public/apps/configuration/utils/tenant-utils';
import { GLOBAL_TENANT_SYMBOL } from '../../../common';

export interface IAuthenticationType {
type: string;
Expand Down
5 changes: 1 addition & 4 deletions server/multitenancy/tenant_resolver.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,7 @@ import { isEmpty, findKey, cloneDeep } from 'lodash';
import { OpenSearchDashboardsRequest } from '../../../../src/core/server';
import { SecuritySessionCookie } from '../session/security_cookie';
import { SecurityPluginConfigType } from '..';
import {
GLOBAL_TENANT_SYMBOL,
PRIVATE_TENANT_SYMBOL,
} from '../../public/apps/configuration/utils/tenant-utils';
import { GLOBAL_TENANT_SYMBOL, PRIVATE_TENANT_SYMBOL } from '../../common';

export const PRIVATE_TENANTS: string[] = [PRIVATE_TENANT_SYMBOL, 'private'];
export const GLOBAL_TENANTS: string[] = ['global', GLOBAL_TENANT_SYMBOL];
Expand Down
6 changes: 3 additions & 3 deletions server/saved_objects/saved_objects_wrapper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,14 +36,14 @@ import {
} from 'opensearch-dashboards/server';
import { Config } from 'packages/osd-config/target';
import { SecurityPluginConfigType } from '..';
import { OpenSearchDashboardsAuthState } from '../auth/types/authentication_type';
import {
DEFAULT_TENANT,
globalTenantName,
GLOBAL_TENANT_SYMBOL,
globalTenantName,
isPrivateTenant,
PRIVATE_TENANT_SYMBOL,
} from '../../public/apps/configuration/utils/tenant-utils';
import { OpenSearchDashboardsAuthState } from '../auth/types/authentication_type';
} from '../../common';

export class SecuritySavedObjectsClientWrapper {
public httpStart?: HttpServiceStart;
Expand Down

0 comments on commit 7e2a07c

Please sign in to comment.