First commit
This commit is contained in:
36
src/routes/[orgSlug]/+layout.server.ts
Normal file
36
src/routes/[orgSlug]/+layout.server.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
import { error } from '@sveltejs/kit';
|
||||
import type { LayoutServerLoad } from './$types';
|
||||
|
||||
export const load: LayoutServerLoad = async ({ params, locals }) => {
|
||||
const { session, user } = await locals.safeGetSession();
|
||||
|
||||
if (!session || !user) {
|
||||
error(401, 'Unauthorized');
|
||||
}
|
||||
|
||||
const { data: org, error: orgError } = await locals.supabase
|
||||
.from('organizations')
|
||||
.select('*')
|
||||
.eq('slug', params.orgSlug)
|
||||
.single();
|
||||
|
||||
if (orgError || !org) {
|
||||
error(404, 'Organization not found');
|
||||
}
|
||||
|
||||
const { data: membership } = await locals.supabase
|
||||
.from('org_members')
|
||||
.select('role')
|
||||
.eq('org_id', org.id)
|
||||
.eq('user_id', user.id)
|
||||
.single();
|
||||
|
||||
if (!membership) {
|
||||
error(403, 'You are not a member of this organization');
|
||||
}
|
||||
|
||||
return {
|
||||
org,
|
||||
role: membership.role
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user