2

I've just set up CiviVolunteer, and set permissions for both anonymous and authenticated users to sign up for volunteer opportunities. (That is, they have Drupal permissions for Access AJAX API and CiviVolunteer: Register to Volunteer.) I have set up the user Dashboard to show "Assigned Activities" and authenticated users can see their volunteer assignments listed. So far, so good!

The "Your Assigned Activities" section begins with the message, "Click on the activity subject for more information." However, when I click on an assignment subject while logged in as a non-administrator role, I get the "Access denied. You are not authorized to access this page." error.

Where can I set the permissions for users to view more information about the assignment, as suggested by the note and obvious links?

Also, is there any way for authenticated, non-administrator users to change their assignments? (Either through the Dashboard list of assigned activities, or through returning to the CiviVolunteer sign-up page and seeing a list of assignments that they already have?) This doesn't seem to be part of the CiviVolunteer permissions, but I'm wondering if there is something else that would do. Note that my users already have Access CiviCRM permissions.

Thanks!

2 Answers 2

1

Rowan...

First, I think you want to remove "Access CiviCRM" from all users, unless you want them to be able to access CiviCRM's back end. Ordinarily, you assign that to people who have access to database functions (entering and updating contacts, recording donations, etc) and not people who just need access to the contact dashboard.

I'm pretty sure that the permissions you need to assign to the Authenticated User role (or another role if that's more appropriate) are "View My Contact" and "Edit My Contact." Volunteer assignments are stored in CiviCRM as activities and the contact permission also gives you access to the activities associated with a contact.

There currently isn't a built-in UI for volunteers to update their assignments, although there has been work done for volunteers to report their hours worked. The lead developer, Frank Gomez, is out of the office this week. I'll make sure he sees this and can give you a better idea of when this will be released. On Drupal, it might be possible to create something with the Views and Webform CiviCRM modules.

Other clients have requested some type of Volunteer Dashboard functionality. Everyone's idea of what this entails is a bit different, though. I'll reach out to you separately to get some details about what you're looking for.

1

If I'm not mistaken, the screen Rowan is referring to is the Contact Dashboard (civicrm/user), which is part of CiviCRM core rather than CiviVolunteer, and when an appropriately-permissioned user clicks the activity subject, the activity details appear in a modal.

I'd guess that the reason your volunteer users are getting "Access Denied" errors is that viewing the activity requires "view" permissions for one or more of the other contacts on the record. An activity typically references three contacts: the assignee (the volunteer), the assigner (varies), and the target (the beneficiary, usually the default organization in the CiviCRM instance).

A few ways to get what Rowan wants:

  • Grant the volunteers the "View All Contacts" permission. This is almost certainly not what you want, but it's a quick way to verify that the problem is that volunteers don't have "view" on the target organization. A test like this is best performed in a sandbox.
  • Create an ACL rule so that your volunteers can view specific contacts other than themselves. You'll need to create an actors group (i.e., which contacts are being granted additional permissions) and an asset group (i.e., to which contacts do said permissions apply). The asset group will contain the default organization and any other contacts all volunteers should be able to view. The actors group will contain the volunteers. Potential drawback: the actors group cannot be a smart group; membership in the group is handled explicitly, which might be cumbersome depending on your workflows. If necessary, membership in a static group can managed automatically via custom code.
  • Use custom code to alter how permissions are evaluated. There a few hooks which may be leveraged to allow contacts to view activities where they are the assignee, regardless of their permissions over the other associated contacts.
  • Develop a custom volunteer dashboard. CiviVolunteer doesn't include a dashboard for volunteers, and trying to shoehorn one into CiviCRM core interfaces that were designed for different purposes is likely to be painful and unrewarding.
1
  • Thanks, Frank! I actually tried to add the View All Contacts permission (we're still setting up the database so it won't go live for a couple weeks), and I'm still getting the error. I also tried giving the users View All Activities which also didn't make a difference. Given that I'm still not quite sure what permission is missing, I'm less inclined to start playing with other roles. I'll follow up with you separately about possibly adding functionality. Aug 10, 2017 at 19:48

Your Answer

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

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