/** * @brief Delete a Mozilla Sync user. * * DELETE https://server/pathname/version/username * * Deletes the user account. * NOTE: Requires simple authentication with the username and password associated with the account. * * Return value: * 0 on success * * Possible errors: * 503: there was an error removing the user * 404: the user does not exist in the database * 401: authentication failed * * @param string $syncHash Mozilla Sync user hash of the user to be deleted. */ private function deleteUser($syncHash) { if (User::isAutoCreateUser()) { //auto create accounts only Utils::changeHttpStatus(Utils::STATUS_INVALID_USER); Utils::writeLog("Failed to delete user " . $syncHash . ". Delete disabled"); } if (User::syncUserExists($syncHash) === false) { Utils::changeHttpStatus(Utils::STATUS_NOT_FOUND); Utils::writeLog("Failed to delete user " . $syncHash . ". User does not exist."); } if (User::authenticateUser($syncHash) === false) { Utils::changeHttpStatus(Utils::STATUS_INVALID_USER); Utils::writeLog("Authentication for deleting user " . $syncHash . " failed."); } $syncId = User::syncHashToSyncId($syncHash); if ($syncId === false) { Utils::changeHttpStatus(Utils::STATUS_INVALID_USER); Utils::writeLog("Failed to convert user " . $syncHash . " to Sync ID."); } if (Storage::deleteStorage($syncId) === false) { Utils::changeHttpStatus(Utils::STATUS_MAINTENANCE); Utils::writeLog("Failed to delete storage for user " . $syncId . "."); } if (User::deleteUser($syncId) === false) { Utils::changeHttpStatus(Utils::STATUS_MAINTENANCE); Utils::writeLog("Failed to delete user " . $syncId . "."); } OutputData::write('0'); }
/** * @brief Detete user * * DELETE https://server/pathname/version/username * * Deletes the user account. * NOTE: Requires simple authentication with the username and password associated with the account. * * Return value: * 0 on success * * Possible errors: * 503: there was an error removing the user * 404: the user does not exist in the database * 401: authentication failed * * @param string $userName */ private function deleteUser($syncUserHash) { if (User::syncUserExists($syncUserHash) == false) { Utils::changeHttpStatus(Utils::STATUS_NOT_FOUND); return true; } if (User::authenticateUser($syncUserHash) == false) { Utils::changeHttpStatus(Utils::STATUS_INVALID_USER); return true; } $userId = User::userHashToId($syncUserHash); if ($userId == false) { Utils::changeHttpStatus(Utils::STATUS_INVALID_USER); return true; } if (Storage::deleteStorage($userId) == false) { Utils::changeHttpStatus(Utils::STATUS_MAINTENANCE); return true; } if (User::deleteUser($userId) == false) { Utils::changeHttpStatus(Utils::STATUS_MAINTENANCE); return true; } OutputData::write('0'); return true; }
/** * @brief Deletes all records for the user * * HTTP request: DELETE https://server/pathname/version/username/storage * * Will return a precondition error unless an X-Confirm-Delete header is included. * * All delete requests return the timestamp of the action. * * @param integer $userId * @return bool true if success */ private function deleteStorage($userId) { if (!isset($_SERVER['HTTP_X_CONFIRM_DELETE'])) { return false; } $result = Storage::deleteStorage($userId); if ($result == false) { return false; } OutputData::write(Utils::getMozillaTimestamp()); return true; }
/** * @brief Deletes all records for the specified user. * * HTTP request: DELETE https://server/pathname/version/username/storage * * Will return a precondition error unless an X-Confirm-Delete header is included. * * All delete requests return the timestamp of the action. * * @param integer $syncId The Sync user whose records will be deleted. * @return bool True on success, false otherwise. */ private function deleteStorage($syncId) { // Only continue if X-Confirm-Delete header is set if (!isset($_SERVER['HTTP_X_CONFIRM_DELETE'])) { Utils::writeLog("Did not send X_CONFIRM_DELETE header when trying to delete all records for user " . $syncId . "."); return false; } $result = Storage::deleteStorage($syncId); if ($result === false) { Utils::writeLog("Failed to delete all records for user " . $syncId . "."); return false; } OutputData::write(Utils::getMozillaTimestamp()); return true; }