private function updateStatusForUsers() { $userStatus = Config::get('userStatus'); $user = new UserHelper(); $users = $user->findUsersInDatabase(); foreach ($users as $feideUsername => $arrayOfPossibleUsernamesForAUser) { $userHasFolderOnDisk = $user->hasFolderOnDisk($arrayOfPossibleUsernamesForAUser); $query = "SELECT userName FROM tblUser WHERE userName LIKE '" . $feideUsername . "'"; $userExistsInRelayDb = $this->relaySQL->query($query); $criteria = array(UsersSchema::USERNAME => $feideUsername); $userDocument = $this->mongo->findOne($criteria); $statusFrom = $userDocument[UsersSchema::STATUS]; if ($userExistsInRelayDb && !$userHasFolderOnDisk) { if ($userDocument[UsersSchema::STATUS] == 1) { continue; } else { $statusTo = 1; } } elseif ($userExistsInRelayDb && $userHasFolderOnDisk) { if ($userDocument[UsersSchema::STATUS] == 2) { continue; } else { $statusTo = 2; } } elseif (!$userExistsInRelayDb && $userHasFolderOnDisk) { if ($userDocument[UsersSchema::STATUS] == 3) { continue; } else { $statusTo = 3; } } elseif (!$userExistsInRelayDb && !$userHasFolderOnDisk) { if ($userDocument[UsersSchema::STATUS] == 4) { continue; } else { $statusTo = 4; } } else { $this->LogError("None matched when checking statuses. This should never happen."); continue; } $success = $this->mongo->update($criteria, '$set', UsersSchema::STATUS, $statusTo, 0); if ($success) { $this->LogInfo("Changed status for " . $userDocument[UsersSchema::USERNAME] . " from: " . $userStatus[$statusFrom] . " to: " . $userStatus[$statusTo]); $this->numberOfStatusChanges = $this->numberOfStatusChanges + 1; } } }