loggedin()) { header('Location: /login.php'); die(); } if ($user->getRole() !== "admin") { header('Location: /index.php'); die(); } if (!empty($_POST['ballot']) && !empty($_POST['candidate'])) { $candidate_selected = (int) $_POST['candidate']; $voter_selected = (int) $_POST['voter']; $ballot = $_POST['ballot']; if ($candidate_selected != $_POST['candidate']) $error = "An eccor occurred while processing your ballot. Please retry."; if ($voter_selected != $_POST['voter']) $error = "An eccor occurred while processing your ballot. Please retry."; if ($ballot !== "PRESIDENT" && $ballot !== "DIRECTOR") $error = "An eccor occurred while processing your ballot. Please retry."; if (empty($error)) { $result = $db->query("INSERT INTO votes (candidate_id, position, member_id, vote_type, submitter_id) SELECT $candidate_selected, \"$ballot\", $voter_selected, 'IN PERSON', $voter_selected UNION SELECT $candidate_selected, \"$ballot\", voting_id, 'PROXY IN PERSON', delegate_id from proxy where delegate_id=$voter_selected"); $candidate = $db->fetchRow('select skymanager_id, name, username, md5(coalesce(email, "")) as `gravatar_hash` from members where skymanager_id=' . $candidate_selected); if ($result) { $proxy_votes = $db->fetchAssoc("SELECT member_id, submitter_id from votes where submitter_id={$user->voterId()} and position=\"$ballot\""); $num_affected_rows = count($proxy_votes); if ($num_affected_rows > 1) { $proxy_str = ""; foreach ($proxy_votes as $proxy_vote) { if ($proxy_vote['member_id'] === $proxy_vote['submitter_id']) continue; $proxy_str .= "#{$proxy_vote['member_id']} "; } } } } } $header = new Header("2021 Michigan Flyers Election : Poll Worker"); $header->addStyle("/styles/style.css"); $header->addStyle("/styles/admin.css"); $header->addStyle("/styles/vote.css"); $header->addScript("/js/jquery-1.11.3.min.js"); $header->addScript("/js/search.js"); $header->addScript("/js/admin-search.js"); $header->setAttribute('title', 'Michigan Flyers'); $header->setAttribute('tagline', '2021 Election Administration'); $header->output(); $candidates = $db->fetchAssoc('select skymanager_id, name, username, md5(coalesce(email, "")) as `gravatar_hash` from members where voting_id is not null'); $voters = $db->fetchAssoc('select ANY_VALUE(skymanager_id) as `skymanager_id`, ANY_VALUE(members.voting_id) as `voting_id`, ANY_VALUE(name) as `name`, ANY_VALUE(username) as `username`, group_concat(proxy.voting_id) as `proxies`, ANY_VALUE(upstream_proxy.delegate_id) as `delegate`, md5(coalesce(ANY_VALUE(email), "")) as `gravatar_hash` from members left join proxy on (members.voting_id=proxy.delegate_id) left join proxy as upstream_proxy on (upstream_proxy.voting_id=members.voting_id) where members.voting_id is not null group by members.voting_id UNION select skymanager_id, voting_id, name, username, NULL as `proxies`, NULL as `delegate`, md5(coalesce(email, "")) as `gravatar_hash` from members where members.voting_id is null'); ?>