function perform(&$in)
{
global $pommo;
$dbo =& Pommo::$_dbo;
$logger =& Pommo::$_logger;
if (!is_numeric($in['id']) || !is_numeric($in['subscriber_id'])) {
$logger->addErr('Pommo_Pending::perform() -> invalid pending object sent.');
return false;
}
switch ($in['type']) {
case 'add':
// subscribe
$query = "\n\t\t\t\t\tUPDATE " . $dbo->table['subscribers'] . "\n\t\t\t\t\tSET status=1\n\t\t\t\t\tWHERE subscriber_id=%i";
$query = $dbo->prepare($query, array($in['subscriber_id']));
if (!$dbo->query($query)) {
$logger->addErr('Pommo_Pending::perform() -> Error updating subscriber.');
return false;
}
break;
case 'change':
// update
require_once Pommo::$_baseDir . 'classes/Pommo_Subscribers.php';
$subscriber =& $in['array'];
if (!Pommo_Subscribers::update($subscriber, 'REPLACE_ACTIVE')) {
$logger->addErr('Pommo_Pending::perform() -> Error updating subscriber.');
return false;
}
break;
case 'password':
// change (admin) password
require_once Pommo::$_baseDir . 'classes/Pommo_Subscribers.php';
$password = Pommo_Helper::makePassword();
$config = Pommo_Api::configGet(array('admin_username', 'admin_email'));
if (!Pommo_Api::configUpdate(array('admin_password' => md5($password)), TRUE)) {
$logger->addMsg('Error updating password.');
return false;
}
$logger->addErr(sprintf(Pommo::_T('You may now %1$s login %2$s with username: %3$s and password: %4$s '), '<a href="' . Pommo::$_baseUrl . 'index.php">', '</a>', '<span style="font-size: 130%">' . $config['admin_username'] . '</span>', '<span style="font-size: 130%">' . $password . '</span>'));
break;
}
$query = "\n\t\t\tDELETE FROM " . $dbo->table['subscriber_pending'] . "\n\t\t\tWHERE pending_id=%i";
$query = $dbo->prepare($query, array($in['id']));
if (!$dbo->query($query)) {
$logger->addErr('Pommo_Pending::perform() -> Error removing pending entry.');
return false;
}
return true;
}