$user = null; $person = null; $dal = new DAL($opts['hn'], $opts['db'], $opts['un'], $opts['pw']); try { $dal->beginTransaction(); if (isset($_GET['verify'])) { if (!$dal->loginWithEmailSharedSecret($_GET['person_id'], $_GET['person_email_shared_secret'])) { throw new UserException('Login failed.'); } } $user = $dal->selectUser(); if ($user === null) { throw new UserException('Login required.'); } if (isset($_GET['person_id'])) { $person = $dal->selectPersonById($_GET['person_id']); if ($person === null) { 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'];