public static function CheckAndSaveFirstTimeAccess($user_id, $contest_id) { $contest_user = self::getByPK($user_id, $contest_id); // If is null, add our contest_user relationship if (is_null($contest_user)) { $contest_user = new ContestsUsers(); $contest_user->setUserId($user_id); $contest_user->setContestId($contest_id); $contest_user->setAccessTime(date("Y-m-d H:i:s")); $contest_user->setScore(0); $contest_user->setTime(0); ContestsUsersDAO::save($contest_user); } else { if ($contest_user->getAccessTime() === "0000-00-00 00:00:00") { // If its set to default time, update it $contest_user->setAccessTime(date("Y-m-d H:i:s")); ContestsUsersDAO::save($contest_user); } } return $contest_user; }
public static function CheckAndSaveFirstTimeAccess($user_id, $contest_id, $grant_access = false) { $contest_user = self::getByPK($user_id, $contest_id); if (is_null($contest_user)) { if (!$grant_access) { // User was not authorized to do this. throw new ForbiddenAccessException(); } $contest_user = new ContestsUsers(); $contest_user->setUserId($user_id); $contest_user->setContestId($contest_id); $contest_user->setAccessTime(date('Y-m-d H:i:s')); $contest_user->setScore(0); $contest_user->setTime(0); ContestsUsersDAO::save($contest_user); } elseif ($contest_user->getAccessTime() === '0000-00-00 00:00:00') { // If its set to default time, update it $contest_user->setAccessTime(date('Y-m-d H:i:s')); ContestsUsersDAO::save($contest_user); } return $contest_user; }
/** * Adds a user to a contest. * By default, any user can view details of public contests. * Only users added through this API can view private contests * * @param Request $r * @return array * @throws InvalidDatabaseOperationException * @throws ForbiddenAccessException */ public static function apiAddUser(Request $r) { if (OMEGAUP_LOCKDOWN) { throw new ForbiddenAccessException("lockdown"); } // Authenticate logged user self::authenticateRequest($r); self::validateAddUser($r); $contest_user = new ContestsUsers(); $contest_user->setContestId($r["contest"]->getContestId()); $contest_user->setUserId($r["user"]->getUserId()); $contest_user->setAccessTime("0000-00-00 00:00:00"); $contest_user->setScore("0"); $contest_user->setTime("0"); // Save the contest to the DB try { ContestsUsersDAO::save($contest_user); } catch (Exception $e) { // Operation failed in the data layer self::$log->error("Failed to create new ContestUser: "******"status" => "ok"); }