update session structure

This commit is contained in:
2023-08-28 17:58:21 +02:00
parent a88ae62edf
commit 1b6e3c522f
3 changed files with 46 additions and 31 deletions

View File

@ -1,11 +1,16 @@
import type { PageServerLoad } from './$types';
import { Admin } from '$lib/server/database';
import { getSession } from '$lib/server/session';
import { Permissions } from '$lib/permissions';
export const load: PageServerLoad = async ({ cookies }) => {
const admins = await Admin.findAll({ attributes: { exclude: ['password'] } });
let admins: Admin[] = [];
if (getSession(cookies, { permissions: [Permissions.AdminRead] }) != null) {
admins = await Admin.findAll({ attributes: { exclude: ['password'] } });
}
return {
admins: JSON.parse(JSON.stringify(admins)),
permissions: getSession(cookies.get('session') || '')!.value
permissions: getSession(cookies.get('session') || '')!.permissions.value
};
};

View File

@ -5,7 +5,7 @@ import { Admin } from '$lib/server/database';
import { env as publicEnv } from '$env/dynamic/public';
export const POST = (async ({ request, cookies }) => {
if (getSession(cookies, [Permissions.AdminWrite]) == null) {
if (getSession(cookies, { permissions: [Permissions.AdminWrite] }) == null) {
return new Response(null, {
status: 401
});
@ -34,7 +34,7 @@ export const POST = (async ({ request, cookies }) => {
}) satisfies RequestHandler;
export const PATCH = (async ({ request, cookies }) => {
if (getSession(cookies, [Permissions.AdminWrite]) == null) {
if (getSession(cookies, { permissions: [Permissions.AdminWrite] }) == null) {
return new Response(null, {
status: 401
});
@ -52,7 +52,7 @@ export const PATCH = (async ({ request, cookies }) => {
const updatePayload: { [key: string]: any } = {};
if (data['username']) updatePayload.username = data['username'];
if (data['password']) updatePayload.password = data['password'];
if (data['permissions']) updatePayload.permissions = data['permissions'];
if (data['permissions']) updatePayload.permissions = new Permissions(data['permissions']);
let user = await Admin.findOne({ where: { id: id } });
if (!user) {
@ -74,7 +74,7 @@ export const PATCH = (async ({ request, cookies }) => {
}) satisfies RequestHandler;
export const DELETE = (async ({ request, cookies }) => {
if (getSession(cookies, [Permissions.AdminWrite]) == null) {
if (getSession(cookies, { permissions: [Permissions.AdminWrite] }) == null) {
return new Response(null, {
status: 401
});