You should use different methods for buttons.
- for
Export- create 2 different roles for user which users should have access to the button or not. - for
DeleteandPrint...:
- create the file
custom/modules/Contacts/views/view.list.phpbased on the filemodules/Contacts/views/view.list.php - the code for
Print...you can see into the filemodules/Contacts/views/view.list.php - the code for
Deleteyou can see into the post: ListView: How to remove delete bulk action? - add the condition:
if (ACLController::checkAccess('Contacts', 'export', true)), if the user has access for export it will have access to other buttons
As a more diffult variant you can add custom collumns to role module, look at the file: modules/ACLActions/actiondefs.override.php