diff --git a/src/lib/stores/roles.ts b/src/lib/stores/roles.ts
index 4a62dc065..b7b79f500 100644
--- a/src/lib/stores/roles.ts
+++ b/src/lib/stores/roles.ts
@@ -43,5 +43,6 @@ export const canSeeProjects = derived(scopes, function ($scopes) {
});
export const canSeeDatabases = derived(scopes, ($scopes) => $scopes.includes('databases.read'));
export const canSeeFunctions = derived(scopes, ($scopes) => $scopes.includes('functions.read'));
+export const canSeeTeams = derived(scopes, ($scopes) => $scopes.includes('teams.read'));
export const canSeeBuckets = derived(scopes, ($scopes) => $scopes.includes('buckets.read'));
export const canSeeMessages = derived(scopes, ($scopes) => $scopes.includes('messages.read'));
diff --git a/src/routes/(console)/organization-[organization]/header.svelte b/src/routes/(console)/organization-[organization]/header.svelte
index a8be3ccc8..3a2fec5c5 100644
--- a/src/routes/(console)/organization-[organization]/header.svelte
+++ b/src/routes/(console)/organization-[organization]/header.svelte
@@ -32,7 +32,7 @@
organization,
organizationList
} from '$lib/stores/organization';
- import { canSeeBilling, canSeeProjects, isOwner } from '$lib/stores/roles';
+ import { canSeeBilling, canSeeProjects, canSeeTeams, isOwner } from '$lib/stores/roles';
import { GRACE_PERIOD_OVERRIDE, isCloud } from '$lib/system';
let areMembersLimited: boolean;
@@ -68,14 +68,14 @@
title: 'Members',
event: 'members',
hasChildren: true,
- disabled: !$isOwner
+ disabled: !$canSeeTeams
},
{
href: `${path}/usage`,
event: 'usage',
title: 'Usage',
hasChildren: true,
- disabled: !(isCloud && $isOwner)
+ disabled: !(isCloud && $canSeeTeams)
},
{
href: `${path}/billing`,
@@ -142,7 +142,6 @@
- {#if $isOwner}
- {/if}
{#each tabs as tab}
diff --git a/src/routes/(console)/organization-[organization]/members/+page.svelte b/src/routes/(console)/organization-[organization]/members/+page.svelte
index 14ede44c0..4ee2f3c07 100644
--- a/src/routes/(console)/organization-[organization]/members/+page.svelte
+++ b/src/routes/(console)/organization-[organization]/members/+page.svelte
@@ -21,6 +21,7 @@
import type { PageData } from './$types';
import Delete from '../deleteMember.svelte';
import { base } from '$app/paths';
+ import { isOwner } from '$lib/stores/roles';
export let data: PageData;
@@ -58,7 +59,7 @@
newMemberModal.set(true)}
showAlert={false} />
@@ -68,8 +69,10 @@
Email
Role
2FA
+ {#if $isOwner}
+ {/if}
+ {#if $isOwner}
{#if member.invited && !member.joined}
+ {/if}
{/each}
diff --git a/src/routes/(console)/organization-[organization]/usage/[[invoice]]/ProjectBreakdown.svelte b/src/routes/(console)/organization-[organization]/usage/[[invoice]]/ProjectBreakdown.svelte
index 99a829376..82943ffe5 100644
--- a/src/routes/(console)/organization-[organization]/usage/[[invoice]]/ProjectBreakdown.svelte
+++ b/src/routes/(console)/organization-[organization]/usage/[[invoice]]/ProjectBreakdown.svelte
@@ -14,6 +14,7 @@
import { humanFileSize } from '$lib/helpers/sizeConvertion';
import type { OrganizationUsage } from '$lib/sdk/billing';
import { base } from '$app/paths';
+ import { canSeeProjects } from '$lib/stores/roles';
type Metric = 'users' | 'storage' | 'bandwidth' | 'executions';
export let data: PageData;
@@ -60,7 +61,9 @@
Project
Usage
+ {#if $canSeeProjects}
+ {/if}
{#each groupByProject(metric).sort((a, b) => b.usage - a.usage) as project}
@@ -69,11 +72,13 @@
{getProjectName(project.projectId)}
{format(project.usage)}
+ {#if $canSeeProjects}
View project usage
+ {/if}
{/each}