Verifying abilities for admin panel access instead of relying on user role.

This commit is contained in:
2026-06-17 00:23:03 +02:00
parent d7964f6fc2
commit d1e8ff48c5
4 changed files with 13 additions and 4 deletions

View File

@@ -1,6 +1,13 @@
import { render } from 'vike/abort'; /* eslint-disable-line import/extensions */
import { fetchActors } from '#/src/actors.js'; import { fetchActors } from '#/src/actors.js';
import verifyAbility from '#/utils/verify-ability.js';
export default async function onBeforeRender(pageContext) { export default async function onBeforeRender(pageContext) {
if (!pageContext.user || !verifyAbility(pageContext.user, 'actor', 'merge')) {
throw render(404);
}
const { actors } = await fetchActors({ const { actors } = await fetchActors({
query: pageContext.urlParsed.search.q, query: pageContext.urlParsed.search.q,
}, { }, {

View File

@@ -1,8 +1,10 @@
import { render } from 'vike/abort'; /* eslint-disable-line import/extensions */ import { render } from 'vike/abort'; /* eslint-disable-line import/extensions */
import { fetchActorRevisions } from '#/src/actors.js'; import { fetchActorRevisions } from '#/src/actors.js';
import verifyAbility from '#/utils/verify-ability.js';
export async function onBeforeRender(pageContext) { export async function onBeforeRender(pageContext) {
if (!pageContext.user || pageContext.user.role === 'user') { if (!pageContext.user || !verifyAbility(pageContext.user, 'actor', 'update')) {
throw render(404); throw render(404);
} }

View File

@@ -1,8 +1,10 @@
import { render } from 'vike/abort'; /* eslint-disable-line import/extensions */ import { render } from 'vike/abort'; /* eslint-disable-line import/extensions */
import { fetchSceneRevisions } from '#/src/scenes.js'; import { fetchSceneRevisions } from '#/src/scenes.js';
import verifyAbility from '#/utils/verify-ability.js';
export async function onBeforeRender(pageContext) { export async function onBeforeRender(pageContext) {
if (!pageContext.user || pageContext.user.role === 'user') { if (!pageContext.user || !verifyAbility(pageContext.user, 'scene', 'update')) {
throw render(404); throw render(404);
} }

View File

@@ -447,8 +447,6 @@ async function queryManticoreSql(filters, options, _reqUser) {
builder.where('has_avatar', 1); builder.where('has_avatar', 1);
} }
console.log('ACTOR OPTIONS', options);
if (options.order?.[0] === 'name') { if (options.order?.[0] === 'name') {
builder.orderBy([ builder.orderBy([
{ column: 'actors.slug', order: options.order[1] }, { column: 'actors.slug', order: options.order[1] },