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 verifyAbility from '#/utils/verify-ability.js';
export default async function onBeforeRender(pageContext) {
if (!pageContext.user || !verifyAbility(pageContext.user, 'actor', 'merge')) {
throw render(404);
}
const { actors } = await fetchActors({
query: pageContext.urlParsed.search.q,
}, {

View File

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

View File

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

View File

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