throw new UserException('Profile not found.'); } } else { $person = $user; } if ($user['person_id'] !== $person['person_id'] && $user['person_is_moderator'] !== 'y') { throw new UserException('Moderator login required.'); } if (isset($_POST['save'])) { $person['person_first_name'] = $_POST['person_first_name']; $person['person_last_name'] = $_POST['person_last_name']; $person['person_organization'] = $_POST['person_organization']; if ($user['person_is_moderator'] === 'y') { $person['person_is_moderator'] = $_POST['person_is_moderator']; } $dal->updatePerson($person); $message = 'Saved.'; } else { if (isset($_POST['subscribe'])) { $person['person_subscribe'] = 'y'; $dal->updatePerson($person); $message = 'Subscribed.'; } else { if (isset($_POST['unsubscribe'])) { $person['person_subscribe'] = 'n'; $dal->updatePerson($person); $message = 'Unsubscribed.'; } else { if (isset($_POST['delete'])) { if (count($dal->selectUniqueIdsByPersonId($person['person_id'])) > 0) { throw new UserException('Delete unique id ranges first.');
$person = array('person_first_name' => $_POST['first_name'], 'person_last_name' => $_POST['last_name'], 'person_organization' => $_POST['organization'], 'person_email' => $_POST['email'], 'person_subscribe' => isset($_POST['subscribe']) ? 'y' : 'n', 'person_email_verified' => 'n', 'person_email_shared_secret' => randHex()); setPersonPassword($person, $_POST['password']); $dal->insertPerson($person); $url = "http://" . $_SERVER['HTTP_HOST'] . "/register?person_id=" . $person['person_id'] . "&person_email_shared_secret=" . $person['person_email_shared_secret'] . '&verify'; $name = formatPersonName($person); $email = formatPersonEmail($person); $subject = "Register as OpenLCB User"; $body = "Hi {$name},\r\n\r\nYou can verify your email address with the link below.\r\n{$url}\r\n\r\nThe OpenLCB Group"; if (!mail_abstraction(array($email), $subject, $body)) { throw new UserError('Failed to send email.'); } $message = 'Registered and verification email sent.'; } else { if (isset($_GET['verify'])) { $user['person_email_verified'] = 'y'; $dal->updatePerson($user); $message = 'Email address verified.'; } else { if ($user !== null) { header('Location: .'); exit; } } } $dal->commit(); } catch (UserException $e) { $dal->rollback(); $error = $e->getMessage(); } catch (Exception $e) { $dal->rollback(); throw $e;