Exemplo n.º 1
0
 foreach ($data as $item) {
     foreach ($item as $k => $v) {
         $keys = explode(':', $k);
         $raceID = intval($keys[1], 10);
         $race = isset($elec->getRaces()[$raceID]) ? $elec->getRaces()[$raceID] : null;
         $canID = -1;
         if ($v == 'candidate:writein' && $race->allowWriteIn == true) {
             continue;
         }
         if (sizeof($keys) == 2) {
             $vals = explode(':', $v);
             $canID = intval($vals[1], 10);
         }
         $vote = new Vote((object) array('user' => $user->id, 'election' => $elec->id, 'race' => $raceID, 'candidate' => $canID));
         if (sizeof($keys) == 3 && $keys[2] == 'writein' && $race->allowWriteIn == true) {
             $vote->setData('writein', $v);
         }
         if ($race == null || $keys[0] != 'race' || $raceID > sizeof($races) - 1 || $vote->candidate > sizeof($races[$raceID]->candidates) || (!isset($race->allowWriteIn) || $race->allowWriteIn != true) && sizeof($keys) == 3) {
             echo json_encode(array('success' => false, 'error' => 'There was an error submitting your vote. Please refresh and/or try again later.'));
             return;
         }
         $usrTags = $user->getData('tags') == null ? array() : $user->getData('tags');
         $restrictions = isset($race->restrictions) ? $race->restrictions : array();
         if (!empty($restrictions)) {
             $banKey = array_intersect($usrTags, $restrictions);
             if ($banKey != false) {
                 echo json_encode(array('success' => false, 'error' => 'You do not have permission to cast a vote in this election.'));
                 return;
             }
         }
         $vote->save($db);