Source for file pear-election-accountrequest.php
Documentation is available at pear-election-accountrequest.php
class PEAR_Election_Accountrequest
$this->dbh = &$GLOBALS['dbh'];
$this->user = isset ($GLOBALS['auth_user']) ? $GLOBALS['auth_user']->handle : false;
$this->cleanOldRequests ();
function _makeSalt ($handle)
return md5($handle . ((float) $usec + (float) $sec));
SELECT id, created_on, salt, handle
FROM election_account_request
$request = $this->dbh->getRow ($sql, array ($salt), DB_FETCHMODE_ASSOC );
if (count($request) > 0 ) {
foreach ($request as $field => $value) {
* Adds a request in the DB
function addRequest ($handle, $email, $firstName, $lastName, $pw1, $pw2)
'firstname' => $firstName,
'purpose' => 'vote in general election',
include_once 'pear-database-user.php';
$useradd = user ::add ($data, false , true );
if (is_array($useradd) || DB ::isError ($useradd)) {
$salt = $this->_makeSalt ($handle);
$created_on = gmdate('Y-m-d');
INSERT INTO election_account_request (created_on, handle, email, salt)
$res = $this->dbh->query ($query, array ($created_on, $handle, $email, $salt));
$query = 'DELETE FROM election_account_request WHERE salt = ?';
return $this->dbh->query ($query, array ($this->salt));
function confirmRequest ($salt)
if (!$this->find ($salt)) {
return PEAR ::raiseError ('cannot find request');
// activate the handle and grant karma
// implicitly without human intervention
// copied from the user class and Damblan_Karma
include_once 'pear-database-user.php';
$user = user ::info ($this->handle, null , 0 );
if (!isset ($user['registered'])) {
return PEAR ::raiseError ('Error - user request was deleted, please try again');
include_once 'pear-database-note.php';
note ::removeAll ($this->handle);
$data['handle'] = $user['handle'];
$data['created'] = gmdate('Y-m-d');
$data['createdby'] = SITE . 'web';
$e = user ::update ($data, true );
if (PEAR ::isError ($e) || !$e) {
$query = 'INSERT INTO karma VALUES (?, ?, ?, ?, NOW())';
$id = $this->dbh->nextId ('karma');
$sth = $this->dbh->query ($query, array ($id, $this->handle, 'pear.voter', SITE . 'web'));
$id = $this->dbh->nextId ('karma');
$sth = $this->dbh->query ($query, array ($id, $this->handle, 'pear.bug', SITE . 'web'));
if (!DB ::isError ($sth)) {
note ::add ($this->handle, 'Account opened', SITE . 'web');
$msg = "Your PEAR voter account has been opened.\n"
. "You can now participate in the elections by going to\n"
. " http://" . PEAR_CHANNELNAME . "/election/";
$xhdr = "From: " . PEAR_WEBMASTER_EMAIL;
mail($user['email'], "Your PEAR Account Request", $msg, $xhdr, "-f " . PEAR_BOUNCE_EMAIL );
function cleanOldRequests ()
$findquery = 'SELECT handle FROM election_account_request WHERE created_on < ?';
$all = $this->dbh->getAll ($findquery, array ($old));
// purge reserved usernames as well as their account requests
foreach ($all as $data) {
DELETE FROM users WHERE handle = ?
DELETE FROM bugdb WHERE handle = ?
DELETE FROM bugdb_comments WHERE handle = ?
$query = 'DELETE FROM election_account_request WHERE created_on < ?';
// purge out-of-date account requests
return $this->dbh->query ($query, array ($old));
Documentation generated on Mon, 11 Mar 2019 15:34:36 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.
|