feat(*): allow to select auth providers + add multiworkspace with subdomain management (#8656)
## Summary Add support for multi-workspace feature and adjust configurations and states accordingly. - Introduced new state isMultiWorkspaceEnabledState. - Updated ClientConfigProviderEffect component to handle multi-workspace. - Modified GraphQL schema and queries to include multi-workspace related configurations. - Adjusted server environment variables and their respective documentation to support multi-workspace toggle. - Updated server-side logic to handle new multi-workspace configurations and conditions.
This commit is contained in:
33
packages/twenty-server/src/utils/workspace-url.util.ts
Normal file
33
packages/twenty-server/src/utils/workspace-url.util.ts
Normal file
@ -0,0 +1,33 @@
|
||||
import { isDefined } from 'src/utils/is-defined';
|
||||
|
||||
export const buildWorkspaceURL = (
|
||||
baseUrl: string,
|
||||
subdomain: string | null,
|
||||
{
|
||||
withPathname,
|
||||
withSearchParams,
|
||||
}: {
|
||||
withPathname?: string;
|
||||
withSearchParams?: Record<string, string | number>;
|
||||
} = {},
|
||||
) => {
|
||||
const url = new URL(baseUrl);
|
||||
|
||||
if (subdomain && subdomain.length > 0) {
|
||||
url.hostname = subdomain + '.' + url.hostname;
|
||||
}
|
||||
|
||||
if (withPathname) {
|
||||
url.pathname = withPathname;
|
||||
}
|
||||
|
||||
if (withSearchParams) {
|
||||
Object.entries(withSearchParams).forEach(([key, value]) => {
|
||||
if (isDefined(value)) {
|
||||
url.searchParams.set(key, value.toString());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return url;
|
||||
};
|
||||
Reference in New Issue
Block a user