I am trying to setup our Civi with a horizontal and vertical permission structure for different departments and roles. By horizontal I mean what's configured in WP Permissions such as access to CiviComponents and their actions so every department can have an "admin" and a "hand" group. By vertical I mean what's controlled by ACLs such that a department has only access to data within the respective groups.

For example the Membership department would have three Groups, "Membership Admin", "Membership Hand" (both of which are access control groups) and "Member". The Admin Group has access to read/write/delete Contacts and extensive access to CiviMember rules but is restricted in ACLs to read/edit only Members of the "Membership Admin", "Membership Hand" and "Member" Groups. The Hand would then have a more restricted ruleset and ACLs to read/edit and "Members" only.

But the unexpected behavior I encountered is that Members of both Admin and Hand groups cannot add nor remove anyone to the Groups visible to them. I can confirm that Groups are visible to them as expected but when I try to remove a Group from a Contact down the chain of access I get an Error "API permission check failed for GroupContact/delete call; insufficient permission: require access CiviCRM and edit all contacts". And also the Button to add a contact to a Group is not being shown in the contact->groups window. When trying to add contacts via the manage groups menu I get "Select Group is a required field" at the last step when trying to confirm the action and the field for the target group is empty.

Is there a way to fix this? I found a couple of posts regarding this behavior here but no solution. And grating "edit all Contacts" is no feasible option as it would grant access to all contacts.

Help is much appreciated!


1 Answer 1


I found a suitable Plugin: Group Administrators does the Job! Great Plugin


  • great. thx for sharing - i don't think i was familiar with that one
    – petednz - fuzion
    Commented Jan 26 at 20:34

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.