diff --git a/src/lib/constants.ts b/src/lib/constants.ts index 707d0f66f..02d7a2768 100644 --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -61,6 +61,65 @@ export enum Dependencies { MESSAGING_TOPIC_SUBSCRIBERS = 'dependency:messaging_topic_subscribers' } +export const defaultScopes: string[] = [ + 'global', + 'public', + 'home', + 'console', + 'graphql', + 'sessions.write', + 'account', + 'teams.read', + 'teams.write', + 'documents.read', + 'documents.write', + 'files.read', + 'files.write', + 'projects.read', + 'projects.write', + 'locale.read', + 'avatars.read', + 'execution.read', + 'execution.write', + 'targets.read', + 'targets.write', + 'subscribers.write', + 'subscribers.read', + 'assistant.read', + 'users.read', + 'users.write', + 'databases.read', + 'databases.write', + 'collections.read', + 'collections.write', + 'buckets.read', + 'buckets.write', + 'functions.read', + 'functions.write', + 'platforms.read', + 'platforms.write', + 'keys.read', + 'keys.write', + 'webhooks.read', + 'webhooks.write', + 'rules.read', + 'rules.write', + 'migrations.read', + 'migrations.write', + 'vcs.read', + 'vcs.write', + 'providers.read', + 'providers.write', + 'messages.read', + 'messages.write', + 'topics.read', + 'topics.write', + 'billing.read', + 'billing.write' +]; + +export const defaultRoles: string[] = ['owner']; + export const scopes: { scope: string; description: string; diff --git a/src/routes/(console)/organization-[organization]/+layout.ts b/src/routes/(console)/organization-[organization]/+layout.ts index 4e19f84eb..2bdce13f2 100644 --- a/src/routes/(console)/organization-[organization]/+layout.ts +++ b/src/routes/(console)/organization-[organization]/+layout.ts @@ -11,13 +11,14 @@ import ProjectsAtRisk from '$lib/components/billing/alerts/projectsAtRisk.svelte import { get } from 'svelte/store'; import { preferences } from '$lib/stores/preferences'; import type { Organization } from '$lib/stores/organization'; +import { defaultRoles, defaultScopes } from '$lib/constants'; export const load: LayoutLoad = async ({ params, depends }) => { depends(Dependencies.ORGANIZATION); depends(Dependencies.MEMBERS); depends(Dependencies.PAYMENT_METHODS); - let roles = []; - let scopes = []; + let roles = isCloud ? [] : defaultScopes; + let scopes = isCloud ? [] : defaultRoles; try { if (isCloud) { diff --git a/src/routes/(console)/project-[project]/+layout.ts b/src/routes/(console)/project-[project]/+layout.ts index 58346c346..dfb5d8eac 100644 --- a/src/routes/(console)/project-[project]/+layout.ts +++ b/src/routes/(console)/project-[project]/+layout.ts @@ -6,6 +6,7 @@ import { preferences } from '$lib/stores/preferences'; import { failedInvoice } from '$lib/stores/billing'; import { isCloud } from '$lib/system'; import type { Organization } from '$lib/stores/organization'; +import { defaultRoles, defaultScopes } from '$lib/constants'; export const load: LayoutLoad = async ({ params, depends }) => { depends(Dependencies.PROJECT); @@ -16,8 +17,8 @@ export const load: LayoutLoad = async ({ params, depends }) => { const newPrefs = { ...prefs, organization: project.teamId }; sdk.forConsole.account.updatePrefs(newPrefs); preferences.loadTeamPrefs(project.teamId); - let roles = []; - let scopes = []; + let roles = isCloud ? [] : defaultScopes; + let scopes = isCloud ? [] : defaultRoles; if (isCloud) { const res = await sdk.forConsole.billing.getRoles(project.teamId); roles = res.roles;