sso-core/src/routes/ssoadmin/+layout.server.ts

25 lines
656 B
TypeScript
Raw Normal View History

2024-06-01 14:42:08 +03:00
import { Users } from '$lib/server/users/index.js';
import { error, redirect } from '@sveltejs/kit';
export const load = async ({ url, locals }) => {
const userInfo = locals.session.data?.user;
const currentUser = await Users.getBySession(userInfo);
if (!userInfo || !currentUser) {
await locals.session.destroy();
return redirect(301, `/login?redirectTo=${encodeURIComponent(url.pathname)}`);
}
// Only users with 'admin' privilege can access
const privileges = await Users.getUserPrivileges(currentUser);
if (!privileges.includes('admin')) {
return error(404, 'Not Found');
}
return {
user: {
...userInfo,
privileges
}
};
};