fix: scopes preferences queries and mutations by user (#7534)

Fixes https://github.com/payloadcms/payload/issues/7530

Properly scopes preferences queries/mutations by user.
This commit is contained in:
Jarrod Flesch
2024-08-06 10:35:46 -04:00
committed by GitHub
parent edaeb1e29f
commit a422a0d568
3 changed files with 64 additions and 8 deletions

View File

@@ -57,10 +57,24 @@ export const ListView: React.FC<AdminViewProps> = async ({
req,
user,
where: {
and: [
{
key: {
equals: preferenceKey,
},
},
{
'user.relationTo': {
equals: user.collection,
},
},
{
'user.value': {
equals: user?.id,
},
},
],
},
})
?.then((res) => res?.docs?.[0]?.value)) as ListPreferences
} catch (error) {} // eslint-disable-line no-empty

View File

@@ -115,10 +115,24 @@ export const buildFormState = async ({ req }: { req: PayloadRequest }): Promise<
depth: 0,
limit: 1,
where: {
and: [
{
key: {
equals: preferencesKey,
},
},
{
'user.relationTo': {
equals: req.user.collection,
},
},
{
'user.value': {
equals: req.user.id,
},
},
],
},
})) as unknown as { docs: { value: DocumentPreferences }[] }
if (preferencesResult?.docs?.[0]?.value) docPreferences = preferencesResult.docs[0].value

View File

@@ -367,8 +367,22 @@ describe('Auth', () => {
collection: 'payload-preferences',
depth: 0,
where: {
and: [
{
key: { equals: key },
},
{
'user.relationTo': {
equals: 'users',
},
},
{
'user.value': {
equals: loggedInUser.id,
},
},
],
},
})
expect(data.doc.key).toStrictEqual(key)
@@ -390,8 +404,22 @@ describe('Auth', () => {
collection: 'payload-preferences',
depth: 0,
where: {
and: [
{
key: { equals: key },
},
{
'user.relationTo': {
equals: 'users',
},
},
{
'user.value': {
equals: loggedInUser.id,
},
},
],
},
})
expect(result.docs).toHaveLength(0)