示例#1
0
 /**
  *  @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');
 }
示例#2
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;
 }
示例#3
0
 /**
  * @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;
 }
示例#4
0
 /**
  * @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;
 }