payload-auth-plugin-fix
Version:
Authentication plugin for Payload CMS
68 lines (67 loc) • 1.41 kB
JavaScript
// src/core/collections/admin/accounts.ts
import { PasskeyFields } from "./accounts/passkeyFields.js";
function buildAccountsCollection(account, customersCollectionSlug) {
const accountsCollection = {
slug: account.slug,
admin: {
useAsTitle: "id",
hidden: account.hidden
},
access: {
read: ({ req: { user } }) => Boolean(user),
create: () => false,
update: () => false,
delete: () => false
},
fields: [
{
name: "name",
type: "text"
},
{
name: "picture",
type: "text"
},
{
name: "user",
type: "relationship",
relationTo: customersCollectionSlug,
hasMany: false,
required: true,
label: "User"
},
{
name: "issuerName",
type: "text",
required: true,
label: "Issuer Name"
},
{
name: "scope",
type: "text"
},
{
name: "sub",
type: "text",
required: true
},
{
name: "passkey",
type: "group",
fields: PasskeyFields,
admin: {
condition: (_data, peerData) => {
if (peerData.issuerName === "Passkey") {
return true;
}
return false;
}
}
}
]
};
return accountsCollection;
}
export {
buildAccountsCollection
};