protected function initFreeModelOfTheMonth() { $year = date("Y"); $month = date("n"); $modelOfTheMonthDAO = new ModelOfTheMonthDAO(); $modelOfTheMonthInfoRecord = $modelOfTheMonthDAO->getFreeModelOfTheMonth($year, $month); if (!empty($modelOfTheMonthInfoRecord['modelId'])) { $this->freeModelOfTheMonth = $this->modelDAO->getRecordById($modelOfTheMonthInfoRecord['modelId']); $ids = array($modelOfTheMonthInfoRecord['modelId']); if (empty($this->freeModelOfTheMonth['id']) || !empty($this->freeModelOfTheMonth['id']) && $this->freeModelOfTheMonth['modelState'] == 'hidden') { $this->freeModelOfTheMonth = null; } else { $this->freeModelOfTheMonthImagesList = $this->fileDAO->getFirstImageListByRecordList('model', $ids, 'gallery'); } } }
public function isCurrentUserAllowed(&$record, $updateDownloadObject) { CoreUtils::checkConstraint($record['id']); CoreUtils::checkConstraint($record['recordId']); $recordId = $record['id']; if (!$this->isProtectedFile($record)) { return true; } $this->freeModelsOfTheMonth[$record['recordId']] = false; $this->setMessage($recordId, false); $this->setErrorMessage($recordId, false); $sessionName = CoreServices2::getRequest()->getSessionName(); if (empty($sessionName)) { $this->setErrorMessage($recordId, 'emptySessionDownloadError'); return false; } $currentUser = CoreServices2::getAccess()->getCurrentUserData(); if (empty($currentUser['id'])) { $this->setErrorMessage($recordId, 'noUserDownloadError'); return false; } if ($sessionName == 'CMSSession') { return $this->isAdminAllowed($record); } $year = date("Y"); $month = date("n"); $modelOfTheMonthDAO = new ModelOfTheMonthDAO(); $modelOfTheMonthInfoRecord = $modelOfTheMonthDAO->getFreeModelOfTheMonth($year, $month); if (!empty($modelOfTheMonthInfoRecord['modelId']) && $modelOfTheMonthInfoRecord['modelId'] == $record['recordId']) { $this->freeModelsOfTheMonth[$record['recordId']] = true; if (!empty($updateDownloadObject)) { $downloadDAO = new DownloadDAO(); $downloadRecord = $downloadDAO->getRecordTemplate(); $modelDAO = new ModelDAO(); $modelRecord = $modelDAO->getRecordById($modelOfTheMonthInfoRecord['modelId']); CoreUtils::checkConstraint(!empty($modelRecord['id'])); $downloadRecord['userId'] = $currentUser['id']; $downloadRecord['modelId'] = $modelRecord['id']; $downloadRecord['fileId'] = $record['id']; $downloadRecord['downloadStartTime'] = CoreUtils::getDateTime(); $downloadRecord['downloadAttempts'] = 0; $downloadRecord['downloadCreditsCost'] = 0; $downloadRecord['downloadModelName'] = $modelRecord['modelName']; $downloadRecord['downloadFileTypeName'] = $record['modelFileTypeName']; $downloadRecord['downloadPaid'] = 0; $downloadRecord['downloadFree'] = 1; $downloadDAO->save($downloadRecord); } return true; } $downloadLogic = new DownloadLogic(); if (!empty($updateDownloadObject)) { $result = $downloadLogic->checkAndUpdateDownloadObject($currentUser['id'], $record); } else { $result = $downloadLogic->checkDownloadObject($currentUser['id'], $record); } if (!$result) { $this->setErrorMessage($recordId, $downloadLogic->getErrorMessage()); } else { $this->setMessage($recordId, $downloadLogic->getMessage()); } return $result; }