How do I manipulate votes on a node? I have nodes that I want people to be able to vote on. I am currently using the Rate module for this. My use case also requires me to be able to change vote values on individual nodes if necessary. Please how would I do this?

I do not want to go into the database directly. The end user needs to be able to do this in the Drupal interface. I would also like to be able to restrict to access to this feature to certain roles using the permissions system
Undo/Cancel in individual vote

Head over to relative path /admin/structure/rate, and use the edit link for the rate widget for which you want to be able to Undo/Cancel a vote.

Next, within /admin/structure/rate/id/edit (with id corresponding to the widget you selected), scroll down to the section titled "Interaction". There you'll be able to change the value for "Should a second click on the same button delete the vote?" from "No" to "Yes". Save your changes, and repeat for each of the rating widgets for which you want to enable this facility.

Set or delete votes for selected roles

There doesn't seem to be a Drupal interface for this. However, you may want to use the Services Voting API, which provide Services endpoints (actions) for Voting API module. From its project page:


  You are allowed to get votes as flexible as Voting API allows it.
  You are allowed to set votes as flexible as Voting API allows it.
  You are allowed to delete votes.


From its README.txt:


  After enabling the module as usual...
  
  
  Go to admin/people/permissions
  Enable the following permissions for your desired user role(s):
  
  
  Retrieve votes
  Set votes
  Delete votes
  
  Go to admin/structure/services
  Click 'edit' next to your endpoint
  Enable the following resources under the 'votingapi' service:
  
  
  select_votes
  set_votes
  delete_votes
  
  


And the issue about How to use this services resources? contains an interesting (JSON) samples about how to actually set votes*.