@payloadcms/plugin-multi-tenant
Version:
Multi Tenant plugin for Payload
31 lines (30 loc) • 1.02 kB
JavaScript
import { withTenantAccess } from './withTenantAccess.js';
const collectionAccessKeys = [
'create',
'read',
'update',
'delete',
'readVersions',
'unlock'
];
/**
* Adds tenant access constraint to collection
* - constrains access a users assigned tenants
*/ export const addCollectionAccess = ({ adminUsersSlug, collection, fieldName, tenantsArrayFieldName, tenantsArrayTenantFieldName, userHasAccessToAllTenants })=>{
collectionAccessKeys.forEach((key)=>{
if (!collection.access) {
collection.access = {};
}
collection.access[key] = withTenantAccess({
accessFunction: collection.access?.[key],
adminUsersSlug,
collection,
fieldName: key === 'readVersions' ? `version.${fieldName}` : fieldName,
operation: key,
tenantsArrayFieldName,
tenantsArrayTenantFieldName,
userHasAccessToAllTenants
});
});
};
//# sourceMappingURL=addCollectionAccess.js.map