Verifying abilities for admin panel access instead of relying on user role.
This commit is contained in:
@@ -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,
|
||||||
}, {
|
}, {
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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] },
|
||||||
|
|||||||
Reference in New Issue
Block a user