tobias 60f7a4e4f2
Some checks failed
continuous-integration/drone/push Build is failing
Add block editing
2024-06-23 22:23:06 +02:00

55 lines
922 B
TypeScript

import { Access } from 'payload/types'
import type { User } from 'types/payload-types'
export const isAdmin = ({ req: { user } }: any) => {
if (user && user.roles?.includes('admin')) {
return true
}
return false
}
export const isAdminOrCreatedBy = ({ req: { user } }: any) => {
if (user && user.role === 'admin') {
return true
}
if (user) {
return {
createdBy: {
equals: user.id,
},
}
}
return false
}
export const isAdminOrSelf = ({ req: { user } }: any) => {
if (user) {
if (user.roles?.includes('admin')) {
return true
}
// Non-admin: can only access themselves
return {
id: {
equals: user.id,
},
}
}
return false
}
export const isAdminOrPublished = ({ req: { user } }: any) => {
if (user && user?.role === 'admin') {
return true
}
return {
_status: {
equals: 'published',
},
}
}