Many of our subscribers have informed us of the problem that they sign our petition, and then when other household members go to sign the same petition (e.g. particularly grandparents who don't have their own computer) they are unable to. I understand that clearing the cookie cache of the browser and thereby killing the sessionid or else opening a private window would be a work-a-round, but I'd like to just not have the problem. Can anyone point me to which file in the source code performs this check? And, as an aside, what do DAO and BAO mean? How civicrm works is really a mystery to me...
The code in question is in
<civiroot>/CRM/Campaign/Form/Petition/Signature.php. You're looking for the redirectIfSigned method, most likely.