payload-gatekeeper
Version:
The ultimate access control gatekeeper for Payload CMS v3 - Advanced RBAC with wildcard support, auto role assignment, and flexible configuration
88 lines • 2.68 kB
JavaScript
/**
* Essential system role - always created by the plugin
* This is the only hardcoded role as it's required for the system to function
*/
export const SUPER_ADMIN_ROLE = {
name: 'super_admin',
label: 'Super Administrator',
permissions: ['*'],
protected: true,
active: true,
description: 'Full system access - automatically assigned to first user',
};
/**
* Public role for non-authenticated users
* This role is automatically applied when no user is logged in
*/
export const PUBLIC_ROLE = {
name: 'public',
label: 'Public Access',
permissions: ['*.read'], // Default permissions, can be overridden
protected: true,
active: true,
description: 'Default permissions for non-authenticated users',
visibleFor: [], // Not visible in UI for assignment
};
/**
* Example role configurations that can be used in the plugin config
* These are NOT automatically created - they must be explicitly configured
*/
export const EXAMPLE_ROLES = {
admin: {
name: 'admin',
label: 'Administrator',
permissions: [
// Backend users management (no role management)
'backend-users.read',
'backend-users.create',
'backend-users.update',
'backend-users.delete',
// Frontend users management
'users.read',
'users.create',
'users.update',
'users.delete',
// Media management
'media.read',
'media.create',
'media.update',
'media.delete',
],
protected: false,
active: true,
description: 'Admin access without role management capabilities',
},
editor: {
name: 'editor',
label: 'Editor',
permissions: [
// Read-only for users
'backend-users.read',
'users.read',
// Full media access
'media.read',
'media.create',
'media.update',
'media.delete',
],
protected: false,
active: true,
description: 'Content editor with limited user access',
},
user: {
name: 'user',
label: 'Frontend User',
permissions: [
// Users can only manage their own profile (enforced at row level)
'users.read',
'users.update',
// Media for profile pictures
'media.create',
'media.read',
],
protected: false,
active: true,
description: 'Default role for frontend users - can manage own profile',
},
};
//# sourceMappingURL=defaultRoles.js.map