feat(core): add allowGuestDemoWorkspace flag to force login (#12779)
https://github.com/user-attachments/assets/41a659c9-6def-4492-be8e-5910eb148d6f This PR enforces login‑first access (#8716) by disabling or enabling the guest demo workspace via Admin Server Client Page and redirecting unauthenticated users straight to `/sign‑in`. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added a configuration option to control whether guest users can create demo workspaces. * Updated server and client interfaces, GraphQL schema, and queries to support the new guest demo workspace flag. * **Bug Fixes** * Improved sign-out behavior to redirect users appropriately based on guest demo workspace permissions. * Enhanced navigation flow to handle guest demo workspace access and user authentication state. * **Tests** * Added tests to verify sign-out logic when guest demo workspaces are enabled or disabled. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: liuyi <forehalo@gmail.com> Co-authored-by: fengmk2 <fengmk2@gmail.com>
This commit is contained in:
@@ -26,6 +26,7 @@ export const BUILD_IN_SERVERS: (ServerMetadata & { config: ServerConfig })[] =
|
||||
maxLength: 32,
|
||||
},
|
||||
},
|
||||
allowGuestDemoWorkspace: true,
|
||||
},
|
||||
},
|
||||
]
|
||||
@@ -56,6 +57,7 @@ export const BUILD_IN_SERVERS: (ServerMetadata & { config: ServerConfig })[] =
|
||||
maxLength: 32,
|
||||
},
|
||||
},
|
||||
allowGuestDemoWorkspace: true,
|
||||
},
|
||||
},
|
||||
]
|
||||
@@ -88,6 +90,7 @@ export const BUILD_IN_SERVERS: (ServerMetadata & { config: ServerConfig })[] =
|
||||
maxLength: 32,
|
||||
},
|
||||
},
|
||||
allowGuestDemoWorkspace: true,
|
||||
},
|
||||
},
|
||||
]
|
||||
@@ -120,6 +123,7 @@ export const BUILD_IN_SERVERS: (ServerMetadata & { config: ServerConfig })[] =
|
||||
maxLength: 32,
|
||||
},
|
||||
},
|
||||
allowGuestDemoWorkspace: true,
|
||||
},
|
||||
},
|
||||
]
|
||||
@@ -148,6 +152,7 @@ export const BUILD_IN_SERVERS: (ServerMetadata & { config: ServerConfig })[] =
|
||||
maxLength: 32,
|
||||
},
|
||||
},
|
||||
allowGuestDemoWorkspace: true,
|
||||
},
|
||||
},
|
||||
]
|
||||
@@ -178,6 +183,7 @@ export const BUILD_IN_SERVERS: (ServerMetadata & { config: ServerConfig })[] =
|
||||
maxLength: 32,
|
||||
},
|
||||
},
|
||||
allowGuestDemoWorkspace: true,
|
||||
},
|
||||
},
|
||||
]
|
||||
|
||||
@@ -82,6 +82,7 @@ export class Server extends Entity<{
|
||||
credentialsRequirement: config.credentialsRequirement,
|
||||
features: config.features,
|
||||
oauthProviders: config.oauthProviders,
|
||||
allowGuestDemoWorkspace: config.allowGuestDemoWorkspace,
|
||||
serverName: config.name,
|
||||
type: config.type,
|
||||
version: config.version,
|
||||
|
||||
@@ -82,6 +82,7 @@ export class ServersService extends Service {
|
||||
credentialsRequirement: config.credentialsRequirement,
|
||||
features: config.features,
|
||||
oauthProviders: config.oauthProviders,
|
||||
allowGuestDemoWorkspace: config.allowGuestDemoWorkspace,
|
||||
serverName: config.name,
|
||||
type: config.type,
|
||||
initialized: config.initialized,
|
||||
|
||||
@@ -14,6 +14,7 @@ export interface ServerMetadata {
|
||||
export interface ServerConfig {
|
||||
serverName: string;
|
||||
features: ServerFeature[];
|
||||
allowGuestDemoWorkspace: boolean;
|
||||
oauthProviders: OAuthProviderType[];
|
||||
type: ServerDeploymentType;
|
||||
initialized?: boolean;
|
||||
|
||||
Reference in New Issue
Block a user