We're a non-profit swimming club, just starting out with CiviCRM. We're offering ~20 courses per semester and already set up registration for those with CiviEvent.

For an ideal setup i'd now need to be able to assign a responsible Trainer to each of the courses and give this person access to the registered participants contact data (only) and send e-mails (possibly sms in future) to these (groups of) participants.

What i've seen so far it seems that the usual ACL system isn't quite prepared for this as i'd need to create 20 roles, assigning 20 groups with mostly just one person (trainer) in it.. or am i not thinking the CiviCRM-way yet? (or have i possibly overlooked a way to assign ACLs to single users?)

also found this https://civicrm.org/extensions/view-my-event-participants which looks promising, but isn't quite ideal (yet) either. first off i'd need to hack something to change the event's creators (which usually isn't the trainer), and from a first test it seems that in CiviMail i only get access to single contacts (not groups).

thanks for any hints, markus.

  • 1
    It would respectful of the time folk in the community spend helping with questions such as yours if you would acknowledge their answer and hopefully accept it and give it a +1
    – petednz - fuzion
    Commented Nov 16, 2018 at 19:15
  • Pradeep's answer is good - but for 20 groups I might try the ACL role approach. I've done the same for comparable numbers. 20 is right around the point I'd consider a custom extension like Pradeep's offering. Also - I've worked with Pradeep, and he does very good work! Commented Nov 16, 2018 at 20:08

1 Answer 1


You will need to create an extension and use acl where clause hook to restrict view/edit operation for a contact.

  • Thanks Pradeep, the way you say it it sounds super easy - do you have any hints on how to do it, possibly with some examples (just found civix in the docs, but this still looks a bit abstract to me as i'm not a real profound coder).
    – markusk
    Commented Jan 20, 2018 at 9:53
  • 1. Create an extension using civix. 2. Use aclWhereClause hook to give access list of contacts to logged in user. All the documentation are provided under aclWhereClause hook Commented Jan 20, 2018 at 9:56
  • docs.civicrm.org/dev/en/latest/hooks/…. If you are willing to sponsor i can have an extension develop for you to perform above permissioning. Can reach me at pradpnayak at gmail dot com Commented Jan 20, 2018 at 10:03
  • i might get back to your offer, just gotta rethink our requirements with the possibilities of a custom solution - there could be a more useful way to do it for us as well as others.. and well, i'd need to check with our budget.. thanks, markus.
    – markusk
    Commented Jan 20, 2018 at 23:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.