@zealamic/payload-auth-rbac-plugin 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -2
- package/dist/collections/users/index.js +11 -8
- package/dist/collections/users/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +6 -0
- package/dist/types.js.map +1 -1
- package/package.json +20 -16
- package/assets/cover-photo.jpg +0 -0
- package/docs/COLLECTIONS.md +0 -440
- package/docs/TRANSLATIONS.md +0 -469
- package/docs/UTILS.md +0 -226
- package/src/collections/permission-actions/default-data.ts +0 -36
- package/src/collections/permission-actions/index.ts +0 -144
- package/src/collections/permission-actions/types.ts +0 -56
- package/src/collections/permission-features/default-data.ts +0 -30
- package/src/collections/permission-features/index.ts +0 -122
- package/src/collections/permission-features/types.ts +0 -47
- package/src/collections/permissions/default-data.ts +0 -38
- package/src/collections/permissions/index.ts +0 -160
- package/src/collections/permissions/types.ts +0 -57
- package/src/collections/roles/default-data.ts +0 -44
- package/src/collections/roles/hooks/sync-permission-matrix-draft.ts +0 -73
- package/src/collections/roles/index.ts +0 -178
- package/src/collections/roles/types.ts +0 -56
- package/src/collections/roles-permissions/default-data.ts +0 -28
- package/src/collections/roles-permissions/index.ts +0 -107
- package/src/collections/roles-permissions/types.ts +0 -42
- package/src/collections/users/default-data.ts +0 -19
- package/src/collections/users/index.ts +0 -148
- package/src/collections/users/parent-path.ts +0 -310
- package/src/collections/users/types.ts +0 -25
- package/src/components/role-permission-matrix-client/default-data.ts +0 -25
- package/src/components/role-permission-matrix-client/index.tsx +0 -369
- package/src/components/role-permission-matrix-client/matrix.module.scss +0 -66
- package/src/components/role-permission-matrix-client/types.ts +0 -16
- package/src/endpoints/customEndpointHandler.ts +0 -5
- package/src/exports/client.ts +0 -1
- package/src/exports/rsc.ts +0 -0
- package/src/index.ts +0 -249
- package/src/lib/constants/general.ts +0 -1
- package/src/lib/constants/index.ts +0 -15
- package/src/lib/constants/permission-action.ts +0 -9
- package/src/lib/constants/permission-feature.ts +0 -4
- package/src/lib/constants/permission.ts +0 -4
- package/src/lib/constants/role.ts +0 -10
- package/src/lib/constants/user.ts +0 -1
- package/src/lib/utils/access.ts +0 -611
- package/src/lib/utils/data.ts +0 -7
- package/src/lib/utils/fields.ts +0 -62
- package/src/lib/utils/index.ts +0 -4
- package/src/lib/utils/localization.ts +0 -106
- package/src/styles/variables.scss +0 -1
- package/src/types.ts +0 -64
- /package/{src → dist}/general-types.d.ts +0 -0
package/README.md
CHANGED
|
@@ -61,7 +61,22 @@ export default buildConfig({
|
|
|
61
61
|
});
|
|
62
62
|
```
|
|
63
63
|
|
|
64
|
-
### 2.
|
|
64
|
+
### 2. Migration
|
|
65
|
+
|
|
66
|
+
After adding the plugin to `payload.config.ts`, run a Payload migration if your database schema is not up to date:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
npm run payload migrate:create
|
|
70
|
+
# or: yarn payload migrate:create
|
|
71
|
+
# or: pnpm payload migrate:create
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Then apply the migration with `migrate` (or your project's usual migration workflow).
|
|
75
|
+
|
|
76
|
+
> **Bootstrap a super admin:** RBAC collections are restricted to super admins by default. Set `isSuperAdmin: true` on at least one user (via seed script, Local API, or direct database update) before you can manage roles, permissions, and the permission matrix in Admin.
|
|
77
|
+
> → See [COLLECTIONS — Bootstrap super admin](https://github.com/zealamic/payload-auth-rbac-plugin/blob/main/docs/COLLECTIONS.md#bootstrap-super-admin)
|
|
78
|
+
|
|
79
|
+
### 3. Seed RBAC data (Admin or script)
|
|
65
80
|
|
|
66
81
|
1. **permission-features** — e.g. `posts`, `users` (`code` = `featureCode` in access helpers)
|
|
67
82
|
2. **permission-actions** — e.g. `create`, `read`, `update`, `delete`
|
|
@@ -71,7 +86,7 @@ export default buildConfig({
|
|
|
71
86
|
|
|
72
87
|
→ Full collection reference: **[COLLECTIONS](https://github.com/zealamic/payload-auth-rbac-plugin/blob/main/docs/COLLECTIONS.md)**
|
|
73
88
|
|
|
74
|
-
###
|
|
89
|
+
### 4. Protect app collections
|
|
75
90
|
|
|
76
91
|
```ts
|
|
77
92
|
import { getPermissionAccess } from "@zealamic/payload-auth-rbac-plugin";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { getArrayOfMergedFieldAffectingData, getPermissionAccess, toLocaleRecord } from "../../lib/utils/index.js";
|
|
2
2
|
import { mergeUserCollectionHooks } from "./parent-path.js";
|
|
3
|
-
const buildDefaultFields = (translations)=>{
|
|
3
|
+
const buildDefaultFields = (translations, userSlug)=>{
|
|
4
4
|
const locales = Object.keys(translations);
|
|
5
5
|
return [
|
|
6
6
|
{
|
|
@@ -22,7 +22,8 @@ const buildDefaultFields = (translations)=>{
|
|
|
22
22
|
{
|
|
23
23
|
name: "parent",
|
|
24
24
|
type: "relationship",
|
|
25
|
-
relationTo:
|
|
25
|
+
relationTo: userSlug,
|
|
26
|
+
hasMany: false,
|
|
26
27
|
label: toLocaleRecord(locales, (locale)=>translations[locale]?.fields?.parent?.label),
|
|
27
28
|
filterOptions: ({ id })=>id ? {
|
|
28
29
|
id: {
|
|
@@ -55,11 +56,10 @@ export const modifyUsersCollection = (params = {})=>{
|
|
|
55
56
|
"isSuperAdmin",
|
|
56
57
|
"updatedAt"
|
|
57
58
|
],
|
|
58
|
-
useAsTitle: "email"
|
|
59
|
-
...config.admin
|
|
59
|
+
useAsTitle: "email"
|
|
60
60
|
};
|
|
61
61
|
const pluginFields = getArrayOfMergedFieldAffectingData({
|
|
62
|
-
defaultFields: buildDefaultFields(translations),
|
|
62
|
+
defaultFields: buildDefaultFields(translations, userSlug),
|
|
63
63
|
fields: customFields
|
|
64
64
|
});
|
|
65
65
|
const existing = (config.collections || []).find((c)=>c.slug === userSlug);
|
|
@@ -100,11 +100,14 @@ export const modifyUsersCollection = (params = {})=>{
|
|
|
100
100
|
return {
|
|
101
101
|
...collection,
|
|
102
102
|
fields: [
|
|
103
|
-
...
|
|
104
|
-
...
|
|
103
|
+
...pluginFields,
|
|
104
|
+
...collection.fields
|
|
105
105
|
],
|
|
106
106
|
access: {
|
|
107
|
-
|
|
107
|
+
create: collection.access?.create ?? defaultAccess.create,
|
|
108
|
+
read: collection.access?.read ?? defaultAccess.read,
|
|
109
|
+
update: collection.access?.update ?? defaultAccess.update,
|
|
110
|
+
delete: collection.access?.delete ?? defaultAccess.delete,
|
|
108
111
|
...collection.access
|
|
109
112
|
},
|
|
110
113
|
hooks: mergeUserCollectionHooks({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/collections/users/index.ts"],"sourcesContent":["import type { Config, Field
|
|
1
|
+
{"version":3,"sources":["../../../src/collections/users/index.ts"],"sourcesContent":["import type { Config, Field } from \"payload\";\nimport {\n getArrayOfMergedFieldAffectingData,\n getPermissionAccess,\n toLocaleRecord,\n} from \"../../lib/utils/index.js\";\nimport { mergeUserCollectionHooks } from \"./parent-path.js\";\nimport type {\n UsersModificationParams,\n UsersModificationTranslations,\n} from \"./types.js\";\n\nconst buildDefaultFields = (\n translations: UsersModificationTranslations,\n userSlug: string,\n): Field[] => {\n const locales = Object.keys(translations);\n return [\n {\n name: \"isSuperAdmin\",\n type: \"checkbox\",\n defaultValue: false,\n label: toLocaleRecord(\n locales,\n (locale) => translations[locale]?.fields?.isSuperAdmin?.label,\n ),\n admin: {\n readOnly: true,\n },\n },\n {\n name: \"roles\",\n type: \"relationship\",\n relationTo: \"roles\",\n hasMany: true,\n label: toLocaleRecord(\n locales,\n (locale) => translations[locale]?.fields?.roles?.label,\n ),\n },\n {\n name: \"parent\",\n type: \"relationship\",\n relationTo: userSlug,\n hasMany: false,\n label: toLocaleRecord(\n locales,\n (locale) => translations[locale]?.fields?.parent?.label,\n ),\n filterOptions: ({ id }) => (id ? { id: { not_equals: id } } : true),\n },\n {\n name: \"parentPath\",\n type: \"text\",\n index: true,\n admin: {\n hidden: true,\n readOnly: true,\n },\n },\n ];\n};\n\nexport const modifyUsersCollection = (params: UsersModificationParams = {}) => {\n const { translations = {}, fields: customFields = [] } = params;\n\n return (incomingConfig: Config): Config => {\n const config = { ...incomingConfig };\n const userSlug = config.admin?.user || \"users\";\n\n const customAdmin = {\n defaultColumns: [\"email\", \"roles\", \"isSuperAdmin\", \"updatedAt\"],\n useAsTitle: \"email\",\n };\n\n const pluginFields = getArrayOfMergedFieldAffectingData({\n defaultFields: buildDefaultFields(translations, userSlug),\n fields: customFields,\n });\n\n const existing = (config.collections || []).find(\n (c) => c.slug === userSlug,\n );\n\n const dataScopeOptions = {\n createdByField: \"id\",\n usersCollectionSlug: userSlug,\n } as const;\n\n const defaultAccess = {\n create: getPermissionAccess({\n featureCode: userSlug,\n actionCode: \"create\",\n }),\n update: getPermissionAccess({\n featureCode: userSlug,\n actionCode: \"update\",\n mode: \"modify\",\n collectionSlug: userSlug,\n options: dataScopeOptions,\n }),\n delete: getPermissionAccess({\n featureCode: userSlug,\n actionCode: \"delete\",\n mode: \"modify\",\n collectionSlug: userSlug,\n options: dataScopeOptions,\n }),\n read: getPermissionAccess({\n featureCode: userSlug,\n actionCode: \"read\",\n options: dataScopeOptions,\n }),\n };\n\n if (existing) {\n config.collections = (config.collections || []).map((collection) => {\n if (collection.slug !== userSlug) {\n return collection;\n }\n return {\n ...collection,\n fields: [...pluginFields, ...collection.fields],\n access: {\n create: collection.access?.create ?? defaultAccess.create,\n read: collection.access?.read ?? defaultAccess.read,\n update: collection.access?.update ?? defaultAccess.update,\n delete: collection.access?.delete ?? defaultAccess.delete,\n ...collection.access,\n },\n hooks: mergeUserCollectionHooks({\n existingHooks: collection.hooks,\n userSlug,\n }),\n };\n });\n } else {\n config.collections = [\n ...(config.collections || []),\n {\n slug: userSlug,\n auth: true,\n admin: customAdmin,\n fields: pluginFields,\n access: defaultAccess,\n hooks: mergeUserCollectionHooks({ userSlug }),\n },\n ];\n }\n\n return config;\n };\n};\n"],"names":["getArrayOfMergedFieldAffectingData","getPermissionAccess","toLocaleRecord","mergeUserCollectionHooks","buildDefaultFields","translations","userSlug","locales","Object","keys","name","type","defaultValue","label","locale","fields","isSuperAdmin","admin","readOnly","relationTo","hasMany","roles","parent","filterOptions","id","not_equals","index","hidden","modifyUsersCollection","params","customFields","incomingConfig","config","user","customAdmin","defaultColumns","useAsTitle","pluginFields","defaultFields","existing","collections","find","c","slug","dataScopeOptions","createdByField","usersCollectionSlug","defaultAccess","create","featureCode","actionCode","update","mode","collectionSlug","options","delete","read","map","collection","access","hooks","existingHooks","auth"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,4 +2,5 @@ import type { Config } from "payload";
|
|
|
2
2
|
import type { PayloadAuthRbacPluginConfig } from "./types.js";
|
|
3
3
|
export * from "./lib/constants/index.js";
|
|
4
4
|
export * from "./lib/utils/index.js";
|
|
5
|
+
export type * from "./types.js";
|
|
5
6
|
export declare const payloadAuthRbacPlugin: (pluginOptions: PayloadAuthRbacPluginConfig) => (config: Config) => Config;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { Config } from \"payload\";\nimport { permissionActionsDefaultTranslations } from \"./collections/permission-actions/default-data.js\";\nimport { getPermissionActionsCollection } from \"./collections/permission-actions/index.js\";\nimport { permissionFeaturesDefaultTranslations } from \"./collections/permission-features/default-data.js\";\nimport { getPermissionFeaturesCollection } from \"./collections/permission-features/index.js\";\nimport { permissionsDefaultTranslations } from \"./collections/permissions/default-data.js\";\nimport { getPermissionsCollection } from \"./collections/permissions/index.js\";\nimport { rolesDefaultTranslations } from \"./collections/roles/default-data.js\";\nimport { getRolesCollection } from \"./collections/roles/index.js\";\nimport { rolesPermissionsDefaultTranslations } from \"./collections/roles-permissions/default-data.js\";\nimport { getRolesPermissionsCollection } from \"./collections/roles-permissions/index.js\";\nimport { usersDefaultTranslations } from \"./collections/users/default-data.js\";\nimport { modifyUsersCollection } from \"./collections/users/index.js\";\nimport { rolePermissionMatrixClientDefaultTranslations } from \"./components/role-permission-matrix-client/default-data.js\";\n\nimport {\n getAllTranslationsOfSpecificObject,\n getMergedTranslations,\n} from \"./lib/utils/index.js\";\nimport type {\n PayloadAuthRbacPluginConfig,\n PermissionActionsCollectionTranslations,\n PermissionFeaturesCollectionTranslations,\n PermissionsCollectionTranslations,\n RolesCollectionTranslations,\n RolesPermissionsCollectionTranslations,\n UsersModificationTranslations,\n} from \"./types.js\";\n\nexport * from \"./lib/constants/index.js\";\nexport * from \"./lib/utils/index.js\";\n\nexport const payloadAuthRbacPlugin =\n (pluginOptions: PayloadAuthRbacPluginConfig) =>\n (config: Config): Config => {\n if (!config.collections) {\n config.collections = [];\n }\n\n if (!pluginOptions.translations) {\n pluginOptions.translations = {};\n }\n\n config.collections.push(\n getPermissionActionsCollection({\n ...pluginOptions.collections?.permissionActions,\n translations: getMergedTranslations({\n defaultTranslations: permissionActionsDefaultTranslations,\n translations:\n getAllTranslationsOfSpecificObject<PermissionActionsCollectionTranslations>(\n {\n translations: pluginOptions.translations,\n path: \"collections.permissionActions\",\n },\n ),\n }),\n }),\n );\n config.collections.push(\n getPermissionFeaturesCollection({\n ...pluginOptions.collections?.permissionFeatures,\n translations: getMergedTranslations({\n defaultTranslations: permissionFeaturesDefaultTranslations,\n translations:\n getAllTranslationsOfSpecificObject<PermissionFeaturesCollectionTranslations>(\n {\n translations: pluginOptions.translations,\n path: \"collections.permissionFeatures\",\n },\n ),\n }),\n }),\n );\n config.collections.push(\n getPermissionsCollection({\n ...pluginOptions.collections?.permissions,\n translations: getMergedTranslations({\n defaultTranslations: permissionsDefaultTranslations,\n translations:\n getAllTranslationsOfSpecificObject<PermissionsCollectionTranslations>(\n {\n translations: pluginOptions.translations,\n path: \"collections.permissions\",\n },\n ),\n }),\n }),\n );\n config.collections.push(\n getRolesCollection({\n ...pluginOptions.collections?.roles,\n translations: getMergedTranslations({\n defaultTranslations: rolesDefaultTranslations,\n translations:\n getAllTranslationsOfSpecificObject<RolesCollectionTranslations>({\n translations: pluginOptions.translations,\n path: \"collections.roles\",\n }),\n }),\n }),\n );\n config.collections.push(\n getRolesPermissionsCollection({\n ...pluginOptions.collections?.rolesPermissions,\n translations: getMergedTranslations({\n defaultTranslations: rolesPermissionsDefaultTranslations,\n translations:\n getAllTranslationsOfSpecificObject<RolesPermissionsCollectionTranslations>(\n {\n translations: pluginOptions.translations,\n path: \"collections.rolesPermissions\",\n },\n ),\n }),\n }),\n );\n\n if (pluginOptions.autoModifyUsersCollection !== false) {\n config = modifyUsersCollection({\n translations: getMergedTranslations({\n defaultTranslations: usersDefaultTranslations,\n translations:\n getAllTranslationsOfSpecificObject<UsersModificationTranslations>({\n translations: pluginOptions.translations,\n path: \"collections.users\",\n }),\n }),\n })(config);\n }\n // if (pluginOptions.collections) {\n // for (const collectionSlug in pluginOptions.collections) {\n // const collection = config.collections.find(\n // (collection) => collection.slug === collectionSlug,\n // );\n\n // if (collection) {\n // collection.fields.push({\n // name: \"addedByPlugin\",\n // type: \"text\",\n // admin: {\n // position: \"sidebar\",\n // },\n // });\n // }\n // }\n // }\n\n /**\n * If the plugin is disabled, we still want to keep added collections/fields so the database schema is consistent which is important for migrations.\n * If your plugin heavily modifies the database schema, you may want to remove this property.\n */\n if (pluginOptions.disabled) {\n return config;\n }\n\n if (!config.endpoints) {\n config.endpoints = [];\n }\n\n if (!config.admin) {\n config.admin = {};\n }\n\n if (!config.admin.components) {\n config.admin.components = {};\n }\n\n // if (!config.admin.components.beforeDashboard) {\n // config.admin.components.beforeDashboard = []\n // }\n\n // config.admin.components.beforeDashboard.push(\n // `payload-auth-rbac-plugin/rsc#BeforeDashboardServer`,\n // )\n\n // config.endpoints.push({\n // handler: customEndpointHandler,\n // method: \"get\",\n // path: \"/my-plugin-endpoint\",\n // })\n\n const incomingOnInit = config.onInit;\n\n config.onInit = async (payload) => {\n // Ensure we are executing any existing onInit functions before running our own.\n if (incomingOnInit) {\n await incomingOnInit(payload);\n }\n\n // const { totalDocs } = await payload.count({\n // collection: \"plugin-collection\",\n // where: {\n // id: {\n // equals: \"seeded-by-plugin\",\n // },\n // },\n // });\n\n // if (totalDocs === 0) {\n // await payload.create({\n // collection: \"plugin-collection\",\n // data: {\n // id: \"seeded-by-plugin\",\n // },\n // });\n // }\n };\n\n if (!config.i18n) {\n config.i18n = {};\n }\n const existingTranslations =\n (config.i18n?.translations as\n | Record<string, Record<string, unknown>>\n | undefined) || {};\n\n const defaultRBACTranslations = {\n en: {\n collections: {\n permissionActions: permissionActionsDefaultTranslations.en,\n permissionFeatures: permissionFeaturesDefaultTranslations.en,\n permissions: permissionsDefaultTranslations.en,\n roles: rolesDefaultTranslations.en,\n rolesPermissions: rolesPermissionsDefaultTranslations.en,\n users: usersDefaultTranslations.en,\n },\n components: {\n rolePermissionMatrix:\n rolePermissionMatrixClientDefaultTranslations.en,\n },\n },\n };\n\n const mergedRBACTranslations = getMergedTranslations({\n defaultTranslations: defaultRBACTranslations,\n translations: pluginOptions.translations,\n });\n\n const finalTranslations = getMergedTranslations({\n defaultTranslations: existingTranslations as Record<string, any>,\n translations: mergedRBACTranslations,\n });\n\n config.i18n = {\n ...config.i18n,\n translations: finalTranslations,\n };\n return config;\n };\n"],"names":["permissionActionsDefaultTranslations","getPermissionActionsCollection","permissionFeaturesDefaultTranslations","getPermissionFeaturesCollection","permissionsDefaultTranslations","getPermissionsCollection","rolesDefaultTranslations","getRolesCollection","rolesPermissionsDefaultTranslations","getRolesPermissionsCollection","usersDefaultTranslations","modifyUsersCollection","rolePermissionMatrixClientDefaultTranslations","getAllTranslationsOfSpecificObject","getMergedTranslations","payloadAuthRbacPlugin","pluginOptions","config","collections","translations","push","permissionActions","defaultTranslations","path","permissionFeatures","permissions","roles","rolesPermissions","autoModifyUsersCollection","disabled","endpoints","admin","components","incomingOnInit","onInit","payload","i18n","existingTranslations","defaultRBACTranslations","en","users","rolePermissionMatrix","mergedRBACTranslations","finalTranslations"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { Config } from \"payload\";\nimport { permissionActionsDefaultTranslations } from \"./collections/permission-actions/default-data.js\";\nimport { getPermissionActionsCollection } from \"./collections/permission-actions/index.js\";\nimport { permissionFeaturesDefaultTranslations } from \"./collections/permission-features/default-data.js\";\nimport { getPermissionFeaturesCollection } from \"./collections/permission-features/index.js\";\nimport { permissionsDefaultTranslations } from \"./collections/permissions/default-data.js\";\nimport { getPermissionsCollection } from \"./collections/permissions/index.js\";\nimport { rolesDefaultTranslations } from \"./collections/roles/default-data.js\";\nimport { getRolesCollection } from \"./collections/roles/index.js\";\nimport { rolesPermissionsDefaultTranslations } from \"./collections/roles-permissions/default-data.js\";\nimport { getRolesPermissionsCollection } from \"./collections/roles-permissions/index.js\";\nimport { usersDefaultTranslations } from \"./collections/users/default-data.js\";\nimport { modifyUsersCollection } from \"./collections/users/index.js\";\nimport { rolePermissionMatrixClientDefaultTranslations } from \"./components/role-permission-matrix-client/default-data.js\";\n\nimport {\n getAllTranslationsOfSpecificObject,\n getMergedTranslations,\n} from \"./lib/utils/index.js\";\nimport type {\n PayloadAuthRbacPluginConfig,\n PermissionActionsCollectionTranslations,\n PermissionFeaturesCollectionTranslations,\n PermissionsCollectionTranslations,\n RolesCollectionTranslations,\n RolesPermissionsCollectionTranslations,\n UsersModificationTranslations,\n} from \"./types.js\";\n\nexport * from \"./lib/constants/index.js\";\nexport * from \"./lib/utils/index.js\";\nexport type * from \"./types.js\";\n\nexport const payloadAuthRbacPlugin =\n (pluginOptions: PayloadAuthRbacPluginConfig) =>\n (config: Config): Config => {\n if (!config.collections) {\n config.collections = [];\n }\n\n if (!pluginOptions.translations) {\n pluginOptions.translations = {};\n }\n\n config.collections.push(\n getPermissionActionsCollection({\n ...pluginOptions.collections?.permissionActions,\n translations: getMergedTranslations({\n defaultTranslations: permissionActionsDefaultTranslations,\n translations:\n getAllTranslationsOfSpecificObject<PermissionActionsCollectionTranslations>(\n {\n translations: pluginOptions.translations,\n path: \"collections.permissionActions\",\n },\n ),\n }),\n }),\n );\n config.collections.push(\n getPermissionFeaturesCollection({\n ...pluginOptions.collections?.permissionFeatures,\n translations: getMergedTranslations({\n defaultTranslations: permissionFeaturesDefaultTranslations,\n translations:\n getAllTranslationsOfSpecificObject<PermissionFeaturesCollectionTranslations>(\n {\n translations: pluginOptions.translations,\n path: \"collections.permissionFeatures\",\n },\n ),\n }),\n }),\n );\n config.collections.push(\n getPermissionsCollection({\n ...pluginOptions.collections?.permissions,\n translations: getMergedTranslations({\n defaultTranslations: permissionsDefaultTranslations,\n translations:\n getAllTranslationsOfSpecificObject<PermissionsCollectionTranslations>(\n {\n translations: pluginOptions.translations,\n path: \"collections.permissions\",\n },\n ),\n }),\n }),\n );\n config.collections.push(\n getRolesCollection({\n ...pluginOptions.collections?.roles,\n translations: getMergedTranslations({\n defaultTranslations: rolesDefaultTranslations,\n translations:\n getAllTranslationsOfSpecificObject<RolesCollectionTranslations>({\n translations: pluginOptions.translations,\n path: \"collections.roles\",\n }),\n }),\n }),\n );\n config.collections.push(\n getRolesPermissionsCollection({\n ...pluginOptions.collections?.rolesPermissions,\n translations: getMergedTranslations({\n defaultTranslations: rolesPermissionsDefaultTranslations,\n translations:\n getAllTranslationsOfSpecificObject<RolesPermissionsCollectionTranslations>(\n {\n translations: pluginOptions.translations,\n path: \"collections.rolesPermissions\",\n },\n ),\n }),\n }),\n );\n\n if (pluginOptions.autoModifyUsersCollection !== false) {\n config = modifyUsersCollection({\n translations: getMergedTranslations({\n defaultTranslations: usersDefaultTranslations,\n translations:\n getAllTranslationsOfSpecificObject<UsersModificationTranslations>({\n translations: pluginOptions.translations,\n path: \"collections.users\",\n }),\n }),\n })(config);\n }\n // if (pluginOptions.collections) {\n // for (const collectionSlug in pluginOptions.collections) {\n // const collection = config.collections.find(\n // (collection) => collection.slug === collectionSlug,\n // );\n\n // if (collection) {\n // collection.fields.push({\n // name: \"addedByPlugin\",\n // type: \"text\",\n // admin: {\n // position: \"sidebar\",\n // },\n // });\n // }\n // }\n // }\n\n /**\n * If the plugin is disabled, we still want to keep added collections/fields so the database schema is consistent which is important for migrations.\n * If your plugin heavily modifies the database schema, you may want to remove this property.\n */\n if (pluginOptions.disabled) {\n return config;\n }\n\n if (!config.endpoints) {\n config.endpoints = [];\n }\n\n if (!config.admin) {\n config.admin = {};\n }\n\n if (!config.admin.components) {\n config.admin.components = {};\n }\n\n // if (!config.admin.components.beforeDashboard) {\n // config.admin.components.beforeDashboard = []\n // }\n\n // config.admin.components.beforeDashboard.push(\n // `payload-auth-rbac-plugin/rsc#BeforeDashboardServer`,\n // )\n\n // config.endpoints.push({\n // handler: customEndpointHandler,\n // method: \"get\",\n // path: \"/my-plugin-endpoint\",\n // })\n\n const incomingOnInit = config.onInit;\n\n config.onInit = async (payload) => {\n // Ensure we are executing any existing onInit functions before running our own.\n if (incomingOnInit) {\n await incomingOnInit(payload);\n }\n\n // const { totalDocs } = await payload.count({\n // collection: \"plugin-collection\",\n // where: {\n // id: {\n // equals: \"seeded-by-plugin\",\n // },\n // },\n // });\n\n // if (totalDocs === 0) {\n // await payload.create({\n // collection: \"plugin-collection\",\n // data: {\n // id: \"seeded-by-plugin\",\n // },\n // });\n // }\n };\n\n if (!config.i18n) {\n config.i18n = {};\n }\n const existingTranslations =\n (config.i18n?.translations as\n | Record<string, Record<string, unknown>>\n | undefined) || {};\n\n const defaultRBACTranslations = {\n en: {\n collections: {\n permissionActions: permissionActionsDefaultTranslations.en,\n permissionFeatures: permissionFeaturesDefaultTranslations.en,\n permissions: permissionsDefaultTranslations.en,\n roles: rolesDefaultTranslations.en,\n rolesPermissions: rolesPermissionsDefaultTranslations.en,\n users: usersDefaultTranslations.en,\n },\n components: {\n rolePermissionMatrix:\n rolePermissionMatrixClientDefaultTranslations.en,\n },\n },\n };\n\n const mergedRBACTranslations = getMergedTranslations({\n defaultTranslations: defaultRBACTranslations,\n translations: pluginOptions.translations,\n });\n\n const finalTranslations = getMergedTranslations({\n defaultTranslations: existingTranslations as Record<string, any>,\n translations: mergedRBACTranslations,\n });\n\n config.i18n = {\n ...config.i18n,\n translations: finalTranslations,\n };\n return config;\n };\n"],"names":["permissionActionsDefaultTranslations","getPermissionActionsCollection","permissionFeaturesDefaultTranslations","getPermissionFeaturesCollection","permissionsDefaultTranslations","getPermissionsCollection","rolesDefaultTranslations","getRolesCollection","rolesPermissionsDefaultTranslations","getRolesPermissionsCollection","usersDefaultTranslations","modifyUsersCollection","rolePermissionMatrixClientDefaultTranslations","getAllTranslationsOfSpecificObject","getMergedTranslations","payloadAuthRbacPlugin","pluginOptions","config","collections","translations","push","permissionActions","defaultTranslations","path","permissionFeatures","permissions","roles","rolesPermissions","autoModifyUsersCollection","disabled","endpoints","admin","components","incomingOnInit","onInit","payload","i18n","existingTranslations","defaultRBACTranslations","en","users","rolePermissionMatrix","mergedRBACTranslations","finalTranslations"],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -12,6 +12,12 @@ export * from "./collections/roles/types.js";
|
|
|
12
12
|
export * from "./collections/roles-permissions/types.js";
|
|
13
13
|
export * from "./collections/users/types.js";
|
|
14
14
|
export * from "./components/role-permission-matrix-client/types.js";
|
|
15
|
+
export type ItemRef = number | string | {
|
|
16
|
+
id?: number | string;
|
|
17
|
+
};
|
|
18
|
+
export type ApiListResponse<T> = {
|
|
19
|
+
docs?: T[];
|
|
20
|
+
};
|
|
15
21
|
export type RBACTranslations = {
|
|
16
22
|
[locale: string]: {
|
|
17
23
|
collections?: {
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types.ts"],"sourcesContent":["// Collections types\nimport type * as PermissionActionTypes from \"./collections/permission-actions/types.js\";\nimport type * as PermissionFeatureTypes from \"./collections/permission-features/types.js\";\nimport type * as PermissionTypes from \"./collections/permissions/types.js\";\nimport type * as RoleTypes from \"./collections/roles/types.js\";\nimport type * as RolePermissionTypes from \"./collections/roles-permissions/types.js\";\nimport type * as UsersTypes from \"./collections/users/types.js\";\n\n// Components types\nimport type * as RolePermissionMatrixClientTypes from \"./components/role-permission-matrix-client/types.js\";\n\nexport * from \"./collections/permission-actions/types.js\";\nexport * from \"./collections/permission-features/types.js\";\nexport * from \"./collections/permissions/types.js\";\nexport * from \"./collections/roles/types.js\";\nexport * from \"./collections/roles-permissions/types.js\";\nexport * from \"./collections/users/types.js\";\nexport * from \"./components/role-permission-matrix-client/types.js\";\n\nexport type RBACTranslations = {\n [locale: string]: {\n // Collections types\n collections?: {\n permissionActions?: PermissionActionTypes.PermissionActionsCollectionTranslations[string];\n permissionFeatures?: PermissionFeatureTypes.PermissionFeaturesCollectionTranslations[string];\n permissions?: PermissionTypes.PermissionsCollectionTranslations[string];\n roles?: RoleTypes.RolesCollectionTranslations[string];\n rolesPermissions?: RolePermissionTypes.RolesPermissionsCollectionTranslations[string];\n users?: UsersTypes.UsersModificationTranslations[string];\n };\n // Components types\n components?: {\n rolePermissionMatrix?: RolePermissionMatrixClientTypes.RolePermissionMatrixClientTranslations[string];\n };\n };\n};\n\nexport type PayloadAuthRbacPluginConfig = {\n /**\n * Collection slugs to augment (may include plugin-only collections absent from generated `CollectionSlug`).\n */\n collections?: Partial<\n Record<\n string,\n | Omit<\n PermissionActionTypes.PermissionActionsCollectionParams,\n \"translations\"\n >\n | Omit<\n PermissionFeatureTypes.PermissionFeaturesCollectionParams,\n \"translations\"\n >\n | Omit<PermissionTypes.PermissionsCollectionParams, \"translations\">\n | Omit<RoleTypes.RolesCollectionParams, \"translations\">\n | Omit<\n RolePermissionTypes.RolesPermissionsCollectionParams,\n \"translations\"\n >\n >\n >;\n disabled?: boolean;\n translations?: RBACTranslations;\n autoModifyUsersCollection?: boolean;\n};\n"],"names":[],"mappings":"AAAA,oBAAoB;AAWpB,cAAc,4CAA4C;AAC1D,cAAc,6CAA6C;AAC3D,cAAc,qCAAqC;AACnD,cAAc,+BAA+B;AAC7C,cAAc,2CAA2C;AACzD,cAAc,+BAA+B;AAC7C,cAAc,sDAAsD"}
|
|
1
|
+
{"version":3,"sources":["../src/types.ts"],"sourcesContent":["// Collections types\nimport type * as PermissionActionTypes from \"./collections/permission-actions/types.js\";\nimport type * as PermissionFeatureTypes from \"./collections/permission-features/types.js\";\nimport type * as PermissionTypes from \"./collections/permissions/types.js\";\nimport type * as RoleTypes from \"./collections/roles/types.js\";\nimport type * as RolePermissionTypes from \"./collections/roles-permissions/types.js\";\nimport type * as UsersTypes from \"./collections/users/types.js\";\n\n// Components types\nimport type * as RolePermissionMatrixClientTypes from \"./components/role-permission-matrix-client/types.js\";\n\nexport * from \"./collections/permission-actions/types.js\";\nexport * from \"./collections/permission-features/types.js\";\nexport * from \"./collections/permissions/types.js\";\nexport * from \"./collections/roles/types.js\";\nexport * from \"./collections/roles-permissions/types.js\";\nexport * from \"./collections/users/types.js\";\nexport * from \"./components/role-permission-matrix-client/types.js\";\n\nexport type ItemRef = number | string | { id?: number | string };\n\nexport type ApiListResponse<T> = {\n docs?: T[];\n};\n\nexport type RBACTranslations = {\n [locale: string]: {\n // Collections types\n collections?: {\n permissionActions?: PermissionActionTypes.PermissionActionsCollectionTranslations[string];\n permissionFeatures?: PermissionFeatureTypes.PermissionFeaturesCollectionTranslations[string];\n permissions?: PermissionTypes.PermissionsCollectionTranslations[string];\n roles?: RoleTypes.RolesCollectionTranslations[string];\n rolesPermissions?: RolePermissionTypes.RolesPermissionsCollectionTranslations[string];\n users?: UsersTypes.UsersModificationTranslations[string];\n };\n // Components types\n components?: {\n rolePermissionMatrix?: RolePermissionMatrixClientTypes.RolePermissionMatrixClientTranslations[string];\n };\n };\n};\n\nexport type PayloadAuthRbacPluginConfig = {\n /**\n * Collection slugs to augment (may include plugin-only collections absent from generated `CollectionSlug`).\n */\n collections?: Partial<\n Record<\n string,\n | Omit<\n PermissionActionTypes.PermissionActionsCollectionParams,\n \"translations\"\n >\n | Omit<\n PermissionFeatureTypes.PermissionFeaturesCollectionParams,\n \"translations\"\n >\n | Omit<PermissionTypes.PermissionsCollectionParams, \"translations\">\n | Omit<RoleTypes.RolesCollectionParams, \"translations\">\n | Omit<\n RolePermissionTypes.RolesPermissionsCollectionParams,\n \"translations\"\n >\n >\n >;\n disabled?: boolean;\n translations?: RBACTranslations;\n autoModifyUsersCollection?: boolean;\n};\n"],"names":[],"mappings":"AAAA,oBAAoB;AAWpB,cAAc,4CAA4C;AAC1D,cAAc,6CAA6C;AAC3D,cAAc,qCAAqC;AACnD,cAAc,+BAA+B;AAC7C,cAAc,2CAA2C;AACzD,cAAc,+BAA+B;AAC7C,cAAc,sDAAsD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zealamic/payload-auth-rbac-plugin",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "A plugin for Payload CMS to manage authentication and authorization",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -27,34 +27,37 @@
|
|
|
27
27
|
],
|
|
28
28
|
"exports": {
|
|
29
29
|
".": {
|
|
30
|
-
"
|
|
30
|
+
"types": "./dist/index.d.ts",
|
|
31
|
+
"import": "./dist/index.js",
|
|
32
|
+
"default": "./dist/index.js"
|
|
31
33
|
},
|
|
32
34
|
"./client": {
|
|
33
|
-
"
|
|
35
|
+
"types": "./dist/exports/client.d.ts",
|
|
36
|
+
"import": "./dist/exports/client.js",
|
|
37
|
+
"default": "./dist/exports/client.js"
|
|
34
38
|
},
|
|
35
39
|
"./rsc": {
|
|
36
|
-
"
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
"default": "./src/types.ts"
|
|
40
|
+
"types": "./dist/exports/rsc.d.ts",
|
|
41
|
+
"import": "./dist/exports/rsc.js",
|
|
42
|
+
"default": "./dist/exports/rsc.js"
|
|
40
43
|
},
|
|
41
44
|
"./utils": {
|
|
42
|
-
"
|
|
45
|
+
"types": "./dist/lib/utils/index.d.ts",
|
|
46
|
+
"import": "./dist/lib/utils/index.js",
|
|
47
|
+
"default": "./dist/lib/utils/index.js"
|
|
43
48
|
}
|
|
44
49
|
},
|
|
45
|
-
"main": "./
|
|
46
|
-
"types": "./
|
|
50
|
+
"main": "./dist/index.js",
|
|
51
|
+
"types": "./dist/general-types.d.ts",
|
|
47
52
|
"files": [
|
|
48
|
-
"dist"
|
|
49
|
-
"docs",
|
|
50
|
-
"assets",
|
|
51
|
-
"src"
|
|
53
|
+
"dist"
|
|
52
54
|
],
|
|
53
55
|
"scripts": {
|
|
54
56
|
"copy:styles": "node -e \"require('fs').cpSync('src/styles', 'dist/styles', {recursive:true})\"",
|
|
55
|
-
"
|
|
57
|
+
"copy:general-types": "node -e \"require('fs').cpSync('src/general-types.d.ts', 'dist/general-types.d.ts', {recursive:true})\"",
|
|
58
|
+
"build": "yarn copyfiles && yarn build:types && yarn build:swc && yarn copy:styles && yarn copy:general-types",
|
|
56
59
|
"build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths",
|
|
57
|
-
"build:types": "tsc --
|
|
60
|
+
"build:types": "tsc --project tsconfig.build.json",
|
|
58
61
|
"clean": "rimraf {dist,*.tsbuildinfo}",
|
|
59
62
|
"copyfiles": "copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist/",
|
|
60
63
|
"dev": "next dev dev --turbo",
|
|
@@ -65,6 +68,7 @@
|
|
|
65
68
|
"generate:types": "yarn dev:generate-types",
|
|
66
69
|
"lint": "biome check",
|
|
67
70
|
"lint:fix": "biome check --write",
|
|
71
|
+
"prepublishOnly": "yarn clean && yarn build",
|
|
68
72
|
"test": "yarn test:int && yarn test:e2e",
|
|
69
73
|
"test:e2e": "playwright test",
|
|
70
74
|
"test:int": "vitest"
|
package/assets/cover-photo.jpg
DELETED
|
Binary file
|