public function create(UserAccountModel $user) { global $DB; $uar = new UserAccountResetModel(); $uar->setUserAccountId($user->getId()); $uar->setAccessKey(createKey(2, 250)); // TODO check not already used $stat = $DB->prepare("INSERT INTO user_account_reset (user_account_id, access_key, created_at) " . "VALUES (:user_account_id, :access_key, :created_at)"); $stat->execute(array('user_account_id' => $uar->getUserAccountId(), 'access_key' => $uar->getAccessKey(), 'created_at' => \TimeSource::getFormattedForDataBase())); $data = $stat->fetch(); return $uar; }
public function resetAccount(UserAccountModel $user, UserAccountResetModel $reset) { global $DB; try { $DB->beginTransaction(); $stat = $DB->prepare("UPDATE user_account_information SET password_hash=:password_hash WHERE id =:id"); $stat->execute(array('id' => $user->getId(), 'password_hash' => $user->getPasswordHash())); $stat = $DB->prepare("UPDATE user_account_reset SET reset_at=:reset_at WHERE user_account_id =:user_account_id AND access_key=:access_key"); $stat->execute(array('user_account_id' => $user->getId(), 'access_key' => $reset->getAccessKey(), 'reset_at' => \TimeSource::getFormattedForDataBase())); $DB->commit(); } catch (Exception $e) { $DB->rollBack(); } }