Because the Filter Hook only applies filtering logic, you’ll need a second layer of logic to determine if the current user (or the person acting as the administrator) is allowed to access a specific user.To learn more about the Filter Hook, read Delegated Administration: Filter Hook.The Access Hook allows you to determine if the current user is allowed to read, delete, block, unblock, or update a specific user.
Kelly manages the Finance department, and she should only be able to access users within her department.
Report incorrect code
Copy
Ask AI
function(ctx, callback) { if (ctx.payload.action === 'delete:user') { return callback(new Error('You are not allowed to delete users.')); } // Get the department from the current user's metadata. var department = ctx.request.user.app_metadata && ctx.request.user.app_metadata.department; if (!department || !department.length) { return callback(new Error('The current user is not part of any department.')); } // The IT department can access all users. if (department === 'IT') { return callback(); } ctx.log('Verifying access:', ctx.payload.user.app_metadata.department, department); if (!ctx.payload.user.app_metadata.department || ctx.payload.user.app_metadata.department !== department) { return callback(new Error('You can only access users within your own department.')); } return callback();}
If this hook is not configured, all users will be accessible to the current user.The Hook supports the following action names (which you set using as the value for ctx.payload.action):