public function setFeature(SiteModel $site, \BaseSiteFeature $siteFeature, $value, UserAccountModel $userAccountModel = null) { try { $this->app['db']->beginTransaction(); $changeMade = false; $stat = $this->app['db']->prepare("SELECT is_on FROM site_feature_information WHERE site_id=:site_id AND extension_id =:extension_id AND feature_id =:feature_id"); $stat->execute(array('site_id' => $site->getId(), 'extension_id' => $siteFeature->getExtensionId(), 'feature_id' => $siteFeature->getFeatureId())); if ($stat->rowCount() == 1) { $data = $stat->fetch(); if ($data['is_on'] != $value) { $stat = $this->app['db']->prepare("UPDATE site_feature_information SET is_on=:is_on " . " WHERE site_id=:site_id AND extension_id =:extension_id AND feature_id =:feature_id "); $stat->execute(array('site_id' => $site->getId(), 'extension_id' => $siteFeature->getExtensionId(), 'feature_id' => $siteFeature->getFeatureId(), 'is_on' => $value ? 1 : 0)); $changeMade = true; } } else { $stat = $this->app['db']->prepare("INSERT INTO site_feature_information (site_id, extension_id, feature_id, is_on) " . " VALUES(:site_id, :extension_id, :feature_id, :is_on) "); $stat->execute(array('site_id' => $site->getId(), 'extension_id' => $siteFeature->getExtensionId(), 'feature_id' => $siteFeature->getFeatureId(), 'is_on' => $value ? 1 : 0)); $changeMade = true; } if ($changeMade) { $stat = $this->app['db']->prepare("INSERT INTO site_feature_history (site_id, extension_id, feature_id, is_on, user_account_id, created_at) " . " VALUES (:site_id, :extension_id, :feature_id, :is_on, :user_account_id, :created_at)"); $stat->execute(array('site_id' => $site->getId(), 'extension_id' => $siteFeature->getExtensionId(), 'feature_id' => $siteFeature->getFeatureId(), 'is_on' => $value ? 1 : 0, 'user_account_id' => $userAccountModel ? $userAccountModel->getId() : null, 'created_at' => \TimeSource::getFormattedForDataBase())); } $this->app['db']->commit(); } catch (Exception $e) { $this->app['db']->rollBack(); } }
public function create(ImportedEventModel $importedEvent) { global $DB; $stat = $DB->prepare("INSERT INTO imported_event ( import_url_id, import_id, title, " . "description, start_at, end_at, timezone, is_deleted, url, ticket_url, created_at, reoccur ) " . " VALUES ( :import_url_id, :import_id, :title, " . ":description, :start_at, :end_at, :timezone, '0', :url, :ticket_url, :created_at, :reoccur ) RETURNING id"); $stat->execute(array('import_url_id' => $importedEvent->getImportUrlId(), 'import_id' => $importedEvent->getImportId(), 'title' => substr($importedEvent->getTitle(), 0, VARCHAR_COLUMN_LENGTH_USED), 'description' => $importedEvent->getDescription(), 'start_at' => $importedEvent->getStartAtInUTC()->format("Y-m-d H:i:s"), 'end_at' => $importedEvent->getEndAtInUTC()->format("Y-m-d H:i:s"), 'timezone' => $importedEvent->getTimezone(), 'url' => $importedEvent->getUrl(), 'ticket_url' => $importedEvent->getTicketUrl(), 'reoccur' => $importedEvent->getReoccur() ? json_encode($importedEvent->getReoccur()) : null, 'created_at' => \TimeSource::getFormattedForDataBase())); $data = $stat->fetch(); $importedEvent->setId($data['id']); }
public function create(ContactSupportModel $contact) { global $DB; $stat = $DB->prepare("INSERT INTO contact_support (subject, message, email, user_account_id, ip, browser, created_at, is_spam_honeypot_field_detected) " . "VALUES (:subject, :message, :email, :user_account_id, :ip, :browser, :created_at, :is_spam_honeypot_field_detected) RETURNING id"); $stat->execute(array('subject' => substr($contact->getSubject(), 0, VARCHAR_COLUMN_LENGTH_USED), 'message' => $contact->getMessage(), 'email' => substr($contact->getEmail(), 0, VARCHAR_COLUMN_LENGTH_USED), 'user_account_id' => $contact->getUserAccountId(), 'ip' => substr($contact->getIp(), 0, VARCHAR_COLUMN_LENGTH_USED), 'browser' => $contact->getBrowser(), 'created_at' => \TimeSource::getFormattedForDataBase(), 'is_spam_honeypot_field_detected' => $contact->getIsSpamHoneypotFieldDetected() ? 1 : 0)); $data = $stat->fetch(); $contact->setId($data['id']); }
/** * * @return \models\API2ApplicationRequestTokenModel */ public function create(API2ApplicationModel $app, API2ApplicationRequestTokenModel $requestToken) { global $DB; $requestToken->setRequestToken(createKey(1, 255)); // TODO make sure token is unique!!!!! $stat = $DB->prepare("INSERT INTO api2_application_request_token (api2_application_id, request_token, created_at, user_id, " . "callback_url, is_callback_display, is_callback_javascript, is_editor, state_from_user) " . "VALUES (:api2_application_id, :request_token, :created_at, :user_id, :callback_url, " . ":is_callback_display, :is_callback_javascript, :is_editor, :state_from_user)"); $stat->execute(array('api2_application_id' => $app->getId(), 'request_token' => $requestToken->getRequestToken(), 'created_at' => \TimeSource::getFormattedForDataBase(), 'user_id' => null, 'callback_url' => $app->getIsCallbackUrl() ? $requestToken->getCallbackUrl() : null, 'is_callback_display' => $app->getIsCallbackDisplay() && $requestToken->getIsCallbackDisplay() ? 1 : 0, 'is_callback_javascript' => $app->getIsCallbackJavascript() && $requestToken->getIsCallbackJavascript() ? 1 : 0, 'is_editor' => $requestToken->getIsEditor() && $app->getIsEditor() ? 1 : 0, 'state_from_user' => $requestToken->getStateFromUser())); return $requestToken; }
public function createForAppAndUserId(API2ApplicationModel $app, $userID) { global $DB; $stat = $DB->prepare("SELECT api2_application_user_token_information.* FROM api2_application_user_token_information WHERE " . "api2_application_id =:api2_application_id AND user_id =:user_id"); $stat->execute(array('api2_application_id' => $app->getId(), 'user_id' => $userID)); if ($stat->rowCount() == 0) { $stat = $DB->prepare("INSERT INTO api2_application_user_token_information " . "(api2_application_id, user_id, user_token, user_secret, created_at) " . "VALUES (:api2_application_id, :user_id, :user_token, :user_secret, :created_at)"); $stat->execute(array('api2_application_id' => $app->getId(), 'user_id' => $userID, 'user_token' => createKey(1, 255), 'user_secret' => createKey(1, 255), 'created_at' => \TimeSource::getFormattedForDataBase())); // TODO check for unique user_token } }
public function create(UserAccountModel $user) { global $DB; $uar = new UserAccountResetModel(); $uar->setUserAccountId($user->getId()); $uar->setAccessKey(createKey(2, 250)); // TODO check not already used $stat = $DB->prepare("INSERT INTO user_account_reset (user_account_id, access_key, created_at) " . "VALUES (:user_account_id, :access_key, :created_at)"); $stat->execute(array('user_account_id' => $uar->getUserAccountId(), 'access_key' => $uar->getAccessKey(), 'created_at' => \TimeSource::getFormattedForDataBase())); $data = $stat->fetch(); return $uar; }
public function addCountryToSite(CountryModel $country, SiteModel $site, UserAccountModel $user) { global $DB; $stat = $DB->prepare("SELECT * FROM country_in_site_information WHERE site_id =:site_id AND country_id =:country_id"); $stat->execute(array('country_id' => $country->getId(), 'site_id' => $site->getId())); if ($stat->rowCount() == 1) { $stat = $DB->prepare("UPDATE country_in_site_information SET is_in='1' WHERE site_id =:site_id AND country_id =:country_id"); $stat->execute(array('country_id' => $country->getId(), 'site_id' => $site->getId())); } else { $stat = $DB->prepare("INSERT INTO country_in_site_information (site_id,country_id,is_in,is_previously_in,created_at) VALUES (:site_id,:country_id,'1','1',:created_at)"); $stat->execute(array('country_id' => $country->getId(), 'site_id' => $site->getId(), 'created_at' => \TimeSource::getFormattedForDataBase())); } }
/** * * @return \models\API2ApplicationModel */ public function create(UserAccountModel $user, $title) { global $DB; $app = new API2ApplicationModel(); $app->setTitle($title); $app->setAppSecret(createKey(1, 255)); $app->setAppToken(createKey(1, 255)); $stat = $DB->prepare("INSERT INTO api2_application_information (user_id,title,app_token,app_secret,created_at) " . "VALUES (:user_id,:title,:app_token,:app_secret,:created_at) RETURNING id"); $stat->execute(array('user_id' => $user->getId(), 'title' => $title, 'app_token' => $app->getAppToken(), 'app_secret' => $app->getAppSecret(), 'created_at' => \TimeSource::getFormattedForDataBase())); $data = $stat->fetch(); $app->setId($data['id']); return $app; }
public function resetAccount(UserAccountModel $user, UserAccountResetModel $reset) { global $DB; try { $DB->beginTransaction(); $stat = $DB->prepare("UPDATE user_account_information SET password_hash=:password_hash WHERE id =:id"); $stat->execute(array('id' => $user->getId(), 'password_hash' => $user->getPasswordHash())); $stat = $DB->prepare("UPDATE user_account_reset SET reset_at=:reset_at WHERE user_account_id =:user_account_id AND access_key=:access_key"); $stat->execute(array('user_account_id' => $user->getId(), 'access_key' => $reset->getAccessKey(), 'reset_at' => \TimeSource::getFormattedForDataBase())); $DB->commit(); } catch (Exception $e) { $DB->rollBack(); } }
public function create(\BaseIncomingLink $incomingLink, SiteModel $site = null) { global $DB; try { $DB->beginTransaction(); $stat = $DB->prepare("INSERT INTO incoming_link (site_id, extension_id, type, source_url, target_url, reporter_useragent, reporter_ip, created_at) " . "VALUES (:site_id, :extension_id, :type, :source_url, :target_url, :reporter_useragent, :reporter_ip, :created_at) RETURNING id"); $stat->execute(array('site_id' => $site ? $site->getId() : null, 'extension_id' => $incomingLink->getTypeExtensionID(), 'type' => $incomingLink->getType(), 'source_url' => $incomingLink->getSourceURL(), 'target_url' => $incomingLink->getTargetURL(), 'reporter_useragent' => $incomingLink->getReporterUseragent(), 'reporter_ip' => $incomingLink->getReporterIp(), 'created_at' => \TimeSource::getFormattedForDataBase())); $data = $stat->fetch(); $incomingLink->setId($data['id']); $DB->commit(); } catch (Exception $e) { $DB->rollBack(); } }
public function markVerifiedByUserAccountIDAndAccessKey($id, $access, $fromIP = null) { global $DB; try { $DB->beginTransaction(); $stat = $DB->prepare("UPDATE user_account_verify_email SET verified_at=:verified_at, verified_from_ip=:verified_from_ip WHERE user_account_id =:user_account_id AND access_key=:access_key"); $stat->execute(array('user_account_id' => $id, 'access_key' => $access, 'verified_at' => \TimeSource::getFormattedForDataBase(), 'verified_from_ip' => $fromIP)); $stat = $DB->prepare("UPDATE user_account_information SET is_email_verified='1' WHERE id =:id"); $stat->execute(array('id' => $id)); $DB->commit(); } catch (Exception $e) { $DB->rollBack(); } }
public function deactivate(EventCustomFieldDefinitionModel $model, UserAccountModel $userAccountModel = null) { global $DB; try { $DB->beginTransaction(); $stat = $DB->prepare("UPDATE event_custom_field_definition_information SET is_active='0' WHERE id=:id"); $stat->execute(array('id' => $model->getId())); $stat = $DB->prepare("INSERT INTO event_custom_field_definition_history (event_custom_field_definition_id, key_changed, extension_id_changed,type_changed,label_changed,is_active,created_at,user_account_id) " . "VALUES (:event_custom_field_definition_id, -2, -2,-2,-2,'0',:created_at,:user_account_id)"); $stat->execute(array('event_custom_field_definition_id' => $model->getId(), 'created_at' => \TimeSource::getFormattedForDataBase(), 'user_account_id' => $userAccountModel ? $userAccountModel->getId() : null)); $DB->commit(); } catch (Exception $e) { $DB->rollBack(); } $this->updateSiteCache($model->getSiteId()); }
public function startUserWatchingSite(UserAccountModel $user, SiteModel $site) { global $DB; $uws = $this->loadByUserAndSite($user, $site); if ($uws && $uws->getIsWatching()) { // all done! } else { if ($uws && !$uws->getIsWatching()) { $stat = $DB->prepare("UPDATE user_watches_site_information SET is_watching='1', last_watch_started=:last_watch_started WHERE user_account_id =:user_account_id AND site_id=:site_id"); $stat->execute(array('user_account_id' => $user->getId(), 'site_id' => $site->getId(), 'last_watch_started' => \TimeSource::getFormattedForDataBase())); } else { $stat = $DB->prepare("INSERT INTO user_watches_site_information (user_account_id,site_id,is_watching,is_was_once_watching,last_watch_started,created_at) " . "VALUES (:user_account_id,:site_id,:is_watching,:is_was_once_watching,:last_watch_started,:created_at)"); $stat->execute(array('user_account_id' => $user->getId(), 'site_id' => $site->getId(), 'is_watching' => '1', 'is_was_once_watching' => '1', 'created_at' => \TimeSource::getFormattedForDataBase(), 'last_watch_started' => \TimeSource::getFormattedForDataBase())); } } }
public function markUserInterestedInSite(UserAccountModel $user, SiteModel $site) { global $DB; $uiis = $this->loadByUserAndSite($user, $site); if ($uiis && $uiis->isInterested()) { // all done! } else { if ($uiis && !$uiis->isInterested()) { $stat = $DB->prepare("UPDATE user_interested_in_site_information SET is_interested='1' WHERE user_account_id =:user_account_id AND site_id=:site_id"); $stat->execute(array('user_account_id' => $user->getId(), 'site_id' => $site->getId())); } else { $stat = $DB->prepare("INSERT INTO user_interested_in_site_information (user_account_id,site_id,is_interested,created_at) " . "VALUES (:user_account_id,:site_id,:is_interested,:created_at)"); $stat->execute(array('user_account_id' => $user->getId(), 'site_id' => $site->getId(), 'is_interested' => '1', 'created_at' => \TimeSource::getFormattedForDataBase())); } } }
public function create(SiteModel $site, UserAccountModel $owner, $countries, SiteQuotaModel $siteQuota, $canAnyUserVerifiedEdit = false) { global $DB, $CONFIG, $EXTENSIONHOOKRUNNER; $createdat = \TimeSource::getFormattedForDataBase(); if (!$site->isSlugValid($site->getSlug(), $CONFIG)) { throw new Exception("Slug not valid"); } try { $DB->beginTransaction(); // TODO should check slug not already exist and nice error $timezones = array(); foreach ($countries as $country) { foreach (explode(",", $country->getTimezones()) as $timeZone) { $timezones[] = $timeZone; } } $site->setCachedTimezonesAsList($timezones); $site->setCachedIsMultipleCountries(count($countries) > 1); // Site $stat = $DB->prepare("INSERT INTO site_information (title, slug, slug_canonical, " . "created_at,cached_is_multiple_timezones,cached_is_multiple_countries," . "cached_timezones,is_feature_map,is_feature_importer,is_feature_curated_list," . "is_listed_in_index,is_web_robots_allowed, " . " prompt_emails_days_in_advance,site_quota_id, " . "is_feature_tag,is_feature_physical_events,is_feature_virtual_events) " . "VALUES (:title, :slug, :slug_canonical, " . " :created_at,:cached_is_multiple_timezones,:cached_is_multiple_countries," . ":cached_timezones,:is_feature_map,:is_feature_importer,:is_feature_curated_list," . ":is_listed_in_index,:is_web_robots_allowed, " . " :prompt_emails_days_in_advance, :site_quota_id, " . ":is_feature_tag,:is_feature_physical_events,:is_feature_virtual_events) RETURNING id"); $stat->execute(array('title' => substr($site->getTitle(), 0, VARCHAR_COLUMN_LENGTH_USED), 'slug' => $site->getSlug(), 'slug_canonical' => SiteModel::makeCanonicalSlug($site->getSlug()), 'cached_is_multiple_timezones' => $site->getCachedIsMultipleTimezones() ? 1 : 0, 'cached_is_multiple_countries' => $site->getCachedIsMultipleCountries() ? 1 : 0, 'cached_timezones' => $site->getCachedTimezones(), 'created_at' => $createdat, 'is_feature_curated_list' => $site->getIsFeatureCuratedList() ? 1 : 0, 'is_feature_importer' => $site->getIsFeatureImporter() ? 1 : 0, 'is_feature_map' => $site->getIsFeatureMap() ? 1 : 0, 'is_feature_tag' => $site->getIsFeatureTag() ? 1 : 0, 'is_feature_virtual_events' => $site->getIsFeatureVirtualEvents() ? 1 : 0, 'is_feature_physical_events' => $site->getIsFeaturePhysicalEvents() ? 1 : 0, 'is_listed_in_index' => $site->getIsListedInIndex() ? 1 : 0, 'is_web_robots_allowed' => $site->getIsWebRobotsAllowed() ? 1 : 0, 'prompt_emails_days_in_advance' => $site->getPromptEmailsDaysInAdvance(), 'site_quota_id' => $siteQuota->getId())); $data = $stat->fetch(); $site->setId($data['id']); $stat = $DB->prepare("INSERT INTO site_history (site_id, user_account_id, " . "title, slug, slug_canonical, created_at,is_feature_map,is_feature_importer," . "is_feature_curated_list,is_listed_in_index,is_web_robots_allowed, " . " prompt_emails_days_in_advance, is_new," . "is_feature_tag,is_feature_physical_events,is_feature_virtual_events) " . "VALUES (:site_id, :user_account_id, :title, " . ":slug, :slug_canonical, :created_at,:is_feature_map,:is_feature_importer," . ":is_feature_curated_list,:is_listed_in_index,:is_web_robots_allowed, " . " :prompt_emails_days_in_advance, '1', " . ":is_feature_tag,:is_feature_physical_events,:is_feature_virtual_events)"); $stat->execute(array('site_id' => $site->getId(), 'user_account_id' => $owner->getId(), 'title' => substr($site->getTitle(), 0, VARCHAR_COLUMN_LENGTH_USED), 'slug' => $site->getSlug(), 'slug_canonical' => SiteModel::makeCanonicalSlug($site->getSlug()), 'created_at' => $createdat, 'is_feature_curated_list' => $site->getIsFeatureCuratedList() ? 1 : 0, 'is_feature_importer' => $site->getIsFeatureImporter() ? 1 : 0, 'is_feature_map' => $site->getIsFeatureMap() ? 1 : 0, 'is_feature_tag' => $site->getIsFeatureTag() ? 1 : 0, 'is_feature_virtual_events' => $site->getIsFeatureVirtualEvents() ? 1 : 0, 'is_feature_physical_events' => $site->getIsFeaturePhysicalEvents() ? 1 : 0, 'is_listed_in_index' => $site->getIsListedInIndex() ? 1 : 0, 'is_web_robots_allowed' => $site->getIsWebRobotsAllowed() ? 1 : 0, 'prompt_emails_days_in_advance' => $site->getPromptEmailsDaysInAdvance())); // Permissions $ugr = new UserGroupRepository(); $userGroupEditors = new UserGroupModel(); $userGroupEditors->setTitle("Editors"); $userGroupEditors->setIsIncludesVerifiedUsers($canAnyUserVerifiedEdit); $ugr->createForSite($site, $userGroupEditors, $owner, array(array('org.openacalendar', 'CALENDAR_CHANGE')), array($owner)); $userGroupEditors = new UserGroupModel(); $userGroupEditors->setTitle("Administrators"); $ugr->createForSite($site, $userGroupEditors, $owner, array(array('org.openacalendar', 'CALENDAR_ADMINISTRATE')), array($owner)); // Countries! $stat = $DB->prepare("INSERT INTO country_in_site_information (site_id,country_id,is_in,is_previously_in,created_at) VALUES (:site_id,:country_id,'1','1',:created_at)"); foreach ($countries as $country) { $stat->execute(array('country_id' => $country->getId(), 'site_id' => $site->getId(), 'created_at' => $createdat)); } $stat = $DB->prepare("INSERT INTO user_watches_site_information (user_account_id,site_id,is_watching,is_was_once_watching,last_watch_started,created_at) " . "VALUES (:user_account_id,:site_id,:is_watching,:is_was_once_watching,:last_watch_started,:created_at)"); $stat->execute(array('user_account_id' => $owner->getId(), 'site_id' => $site->getId(), 'is_watching' => '1', 'is_was_once_watching' => '1', 'created_at' => \TimeSource::getFormattedForDataBase(), 'last_watch_started' => \TimeSource::getFormattedForDataBase())); $DB->commit(); $EXTENSIONHOOKRUNNER->afterSiteCreate($site, $owner); } catch (Exception $e) { $DB->rollBack(); } }
public function createAboutUser(UserAccountModel $aboutUser, $comment, UserAccountModel $author = null) { global $DB; $createdat = \TimeSource::getFormattedForDataBase(); try { $DB->beginTransaction(); $stat = $DB->prepare("INSERT INTO sysadmin_comment_information (user_account_id, comment, created_at ) " . "VALUES (:user_account_id, :comment, :created_at ) RETURNING id"); $stat->execute(array('user_account_id' => $author ? $author->getId() : null, 'comment' => $comment, 'created_at' => $createdat)); $data = $stat->fetch(); $id = $data['id']; $stat = $DB->prepare("INSERT INTO sysadmin_comment_about_user (user_account_id, sysadmin_comment_id ) " . "VALUES (:user_account_id, :sysadmin_comment_id)"); $stat->execute(array('user_account_id' => $aboutUser->getId(), 'sysadmin_comment_id' => $id)); $DB->commit(); } catch (Exception $e) { $DB->rollBack(); } }
/** * This will always return something. If one doesn't exist, one will be created. * @return UserAccountPrivateFeedKeyModel */ public function getForUser(UserAccountModel $user) { global $DB; $stat = $DB->prepare("SELECT * FROM user_account_general_security_key WHERE user_account_id=:uid"); $stat->execute(array('uid' => $user->getId())); if ($stat->rowCount() > 0) { $uagskm = new UserAccountGeneralSecurityKeyModel(); $uagskm->setFromDataBaseRow($stat->fetch()); return $uagskm; } $uagskm = new UserAccountGeneralSecurityKeyModel(); $uagskm->setUserAccountId($user->getId()); $uagskm->setAccessKey(createKey(2, 150)); // TODO check not already used $stat = $DB->prepare("INSERT INTO user_account_general_security_key (user_account_id, access_key, created_at) " . "VALUES (:user_account_id, :access_key, :created_at)"); $stat->execute(array('user_account_id' => $uagskm->getUserAccountId(), 'access_key' => $uagskm->getAccessKey(), 'created_at' => \TimeSource::getFormattedForDataBase())); return $uagskm; }
/** * This will always return something. If one doesn't exist, one will be created. * @return UserWatchesSiteStopModel */ public function getForUserAndGroup(UserAccountModel $user, GroupModel $group) { global $DB; $stat = $DB->prepare("SELECT * FROM user_watches_group_stop WHERE user_account_id=:uid AND group_id=:gid"); $stat->execute(array('uid' => $user->getId(), 'gid' => $group->getId())); if ($stat->rowCount() > 0) { $uwgs = new UserWatchesGroupStopModel(); $uwgs->setFromDataBaseRow($stat->fetch()); return $uwgs; } $uwgs = new UserWatchesGroupStopModel(); $uwgs->setUserAccountId($user->getId()); $uwgs->setGroupId($group->getId()); $uwgs->setAccessKey(createKey(2, 150)); // TODO check not already used $stat = $DB->prepare("INSERT INTO user_watches_group_stop (user_account_id, group_id, access_key, created_at) " . "VALUES (:user_account_id, :group_id, :access_key, :created_at)"); $stat->execute(array('user_account_id' => $uwgs->getUserAccountId(), 'group_id' => $uwgs->getGroupId(), 'access_key' => $uwgs->getAccessKey(), 'created_at' => \TimeSource::getFormattedForDataBase())); return $uwgs; }
/** * This will always return something. If one doesn't exist, one will be created. * @return UserWatchesSiteStopModel */ public function getForUserAndSite(UserAccountModel $user, SiteModel $site) { global $DB; $stat = $DB->prepare("SELECT * FROM user_watches_site_stop WHERE user_account_id=:uid AND site_id=:sid"); $stat->execute(array('uid' => $user->getId(), 'sid' => $site->getId())); if ($stat->rowCount() > 0) { $uwss = new UserWatchesSiteStopModel(); $uwss->setFromDataBaseRow($stat->fetch()); return $uwss; } $uwss = new UserWatchesSiteStopModel(); $uwss->setUserAccountId($user->getId()); $uwss->setSiteId($site->getId()); $uwss->setAccessKey(createKey(2, 150)); // TODO check not already used $stat = $DB->prepare("INSERT INTO user_watches_site_stop (user_account_id, site_id, access_key, created_at) " . "VALUES (:user_account_id, :site_id, :access_key, :created_at)"); $stat->execute(array('user_account_id' => $uwss->getUserAccountId(), 'site_id' => $uwss->getSiteId(), 'access_key' => $uwss->getAccessKey(), 'created_at' => \TimeSource::getFormattedForDataBase())); return $uwss; }
public function create(ImportURLModel $importURL, SiteModel $site, UserAccountModel $creator) { global $DB; try { $DB->beginTransaction(); $stat = $DB->prepare("SELECT max(slug) AS c FROM import_url_information WHERE site_id=:site_id"); $stat->execute(array('site_id' => $site->getId())); $data = $stat->fetch(); $importURL->setSlug($data['c'] + 1); $stat = $DB->prepare("INSERT INTO import_url_information (site_id, slug, title,url,url_canonical,created_at,group_id,is_enabled,country_id,area_id, approved_at, is_manual_events_creation) " . "VALUES (:site_id, :slug, :title,:url,:url_canonical, :created_at, :group_id,:is_enabled,:country_id,:area_id,:approved_at,:is_manual_events_creation) RETURNING id"); $stat->execute(array('site_id' => $site->getId(), 'slug' => $importURL->getSlug(), 'title' => substr($importURL->getTitle(), 0, VARCHAR_COLUMN_LENGTH_USED), 'url' => substr($importURL->getUrl(), 0, VARCHAR_COLUMN_LENGTH_USED), 'url_canonical' => substr($importURL->getUrlCanonical(), 0, VARCHAR_COLUMN_LENGTH_USED), 'group_id' => $importURL->getGroupId(), 'country_id' => $importURL->getCountryId(), 'area_id' => $importURL->getAreaId(), 'created_at' => \TimeSource::getFormattedForDataBase(), 'approved_at' => \TimeSource::getFormattedForDataBase(), 'is_enabled' => $importURL->getIsEnabled() ? 1 : 0, 'is_manual_events_creation' => $importURL->getIsManualEventsCreation() ? 1 : 0)); $data = $stat->fetch(); $importURL->setId($data['id']); $stat = $DB->prepare("INSERT INTO import_url_history (import_url_id, title, user_account_id , created_at,group_id,is_enabled,country_id,area_id, approved_at, is_new, is_manual_events_creation) VALUES " . "(:curated_list_id, :title, :user_account_id , :created_at, :group_id,:is_enabled,:country_id,:area_id, :approved_at, '1', :is_manual_events_creation )"); $stat->execute(array('curated_list_id' => $importURL->getId(), 'title' => substr($importURL->getTitle(), 0, VARCHAR_COLUMN_LENGTH_USED), 'group_id' => $importURL->getGroupId(), 'country_id' => $importURL->getCountryId(), 'area_id' => $importURL->getAreaId(), 'user_account_id' => $creator->getId(), 'created_at' => \TimeSource::getFormattedForDataBase(), 'approved_at' => \TimeSource::getFormattedForDataBase(), 'is_enabled' => $importURL->getIsEnabled() ? 1 : 0, 'is_manual_events_creation' => $importURL->getIsManualEventsCreation() ? 1 : 0)); $DB->commit(); } catch (Exception $e) { $DB->rollBack(); } }
public function create(EventCommentModel $eventComment, EventModel $event, UserAccountModel $creator) { global $DB; try { $DB->beginTransaction(); $stat = $DB->prepare("SELECT max(slug) AS c FROM event_comment_information WHERE event_id=:event_id"); $stat->execute(array('event_id' => $event->getId())); $data = $stat->fetch(); $eventComment->setSlug($data['c'] + 1); $stat = $DB->prepare("INSERT INTO event_comment_information (event_id, slug, title, comment, user_account_id, is_deleted, created_at, approved_at) " . "VALUES (:event_id, :slug, :title, :comment, :user_account_id, '0', :created_at, :approved_at) RETURNING id"); $stat->execute(array('event_id' => $event->getId(), 'slug' => $eventComment->getSlug(), 'title' => substr($eventComment->getTitle(), 0, VARCHAR_COLUMN_LENGTH_USED), 'comment' => $eventComment->getComment(), 'user_account_id' => $creator->getId(), 'created_at' => \TimeSource::getFormattedForDataBase(), 'approved_at' => \TimeSource::getFormattedForDataBase())); $data = $stat->fetch(); $eventComment->setId($data['id']); $stat = $DB->prepare("INSERT INTO event_comment_history (event_comment_id, title, comment, user_account_id, is_deleted, created_at, approved_at, is_new) VALUES " . "(:event_comment_id, :title, :comment, :user_account_id, '0', :created_at, :approved_at, '1')"); $stat->execute(array('event_comment_id' => $eventComment->getId(), 'title' => substr($eventComment->getTitle(), 0, VARCHAR_COLUMN_LENGTH_USED), 'comment' => $eventComment->getComment(), 'user_account_id' => $creator->getId(), 'created_at' => \TimeSource::getFormattedForDataBase(), 'approved_at' => \TimeSource::getFormattedForDataBase())); $DB->commit(); } catch (Exception $e) { $DB->rollBack(); } }
/** @return \models\EventRecurSetModel **/ public function getForEvent(EventModel $event) { global $DB; $eventRecurSet = $this->loadForEvent($event); if (!$eventRecurSet) { try { $DB->beginTransaction(); $stat = $DB->prepare("INSERT INTO event_recur_set (created_at) VALUES (:created_at) RETURNING id"); $stat->execute(array('created_at' => \TimeSource::getFormattedForDataBase())); $data = $stat->fetch(); $eventRecurSet = new EventRecurSetModel(); $eventRecurSet->setId($data['id']); $stat = $DB->prepare("UPDATE event_information SET event_recur_set_id = :ersi WHERE id = :id"); $stat->execute(array('ersi' => $eventRecurSet->getId(), 'id' => $event->getId())); $DB->commit(); } catch (Exception $e) { $DB->rollBack(); } } return $eventRecurSet; }
public function createOrEdit(SiteModel $site, UserAccountModel $user) { global $DB; $createdat = \TimeSource::getFormattedForDataBase(); try { $DB->beginTransaction(); $stat = $DB->prepare("SELECT * FROM site_profile_media_information WHERE site_id=:site_id"); $stat->execute(array('site_id' => $site->getId())); if ($stat->rowCount() == 1) { $stat = $DB->prepare("UPDATE site_profile_media_information SET logo_media_id=:logo_media_id " . " WHERE site_id=:site_id"); } else { $stat = $DB->prepare("INSERT INTO site_profile_media_information (site_id, logo_media_id) " . " VALUES (:site_id, :logo_media_id)"); } $stat->execute(array('logo_media_id' => $site->getLogoMediaId(), 'site_id' => $site->getId())); $stat = $DB->prepare("INSERT INTO site_profile_media_history (site_id, logo_media_id, user_account_id, created_at) " . " VALUES (:site_id, :logo_media_id, :user_account_id, :created_at)"); $stat->execute(array('site_id' => $site->getId(), 'logo_media_id' => $site->getLogoMediaId(), 'created_at' => $createdat, 'user_account_id' => $user->getId())); $data = $stat->fetch(); $DB->commit(); } catch (Exception $e) { $DB->rollBack(); } }
public function setPermissionsForUserInApp(API2ApplicationUserPermissionsModel $permissions, UserAccountModel $user, API2ApplicationModel $app) { global $DB; $stat = $DB->prepare("SELECT user_in_api2_application_information.* FROM user_in_api2_application_information WHERE " . "api2_application_id =:api2_application_id AND user_id =:user_id"); $stat->execute(array('api2_application_id' => $app->getId(), 'user_id' => $user->getId())); ################## If not there, just add if ($stat->rowCount() == 0) { $stat = $DB->prepare("INSERT INTO user_in_api2_application_information " . "(api2_application_id, user_id, is_editor, created_at) " . "VALUES (:api2_application_id, :user_id, :is_editor, :created_at)"); $stat->execute(array('api2_application_id' => $app->getId(), 'user_id' => $user->getId(), 'is_editor' => $permissions->getIsEditorGranted() ? 1 : 0, 'created_at' => \TimeSource::getFormattedForDataBase())); return; } ################## get data, check if we need to escalate or remove permissions $userInAppData = $stat->fetch(); if ($permissions->getIsEditorGranted() && $userInAppData['is_editor'] == 0) { $stat = $DB->prepare("UPDATE user_in_api2_application_information " . " SET is_editor='1' " . " WHERE api2_application_id =:api2_application_id AND user_id =:user_id "); $stat->execute(array('api2_application_id' => $app->getId(), 'user_id' => $user->getId())); } if ($permissions->getIsEditorRefused() && $userInAppData['is_editor'] == 1) { $stat = $DB->prepare("UPDATE user_in_api2_application_information " . " SET is_editor='0' " . " WHERE api2_application_id =:api2_application_id AND user_id =:user_id "); $stat->execute(array('api2_application_id' => $app->getId(), 'user_id' => $user->getId())); } }
public function createWithMetaData(VenueModel $venue, SiteModel $site, VenueEditMetaDataModel $venueEditMetaDataModel) { global $DB, $EXTENSIONHOOKRUNNER; $EXTENSIONHOOKRUNNER->beforeVenueSave($venue, $venueEditMetaDataModel->getUserAccount()); try { $DB->beginTransaction(); $stat = $DB->prepare("SELECT max(slug) AS c FROM venue_information WHERE site_id=:site_id"); $stat->execute(array('site_id' => $site->getId())); $data = $stat->fetch(); $venue->setSlug($data['c'] + 1); $stat = $DB->prepare("INSERT INTO venue_information (site_id, slug, title," . "description,lat,lng,country_id,area_id,created_at,approved_at,address,address_code, is_deleted) " . "VALUES (:site_id, :slug, :title, " . ":description, :lat, :lng,:country_id, :area_id,:created_at,:approved_at,:address,:address_code, '0') RETURNING id"); $stat->execute(array('site_id' => $site->getId(), 'slug' => $venue->getSlug(), 'title' => substr($venue->getTitle(), 0, VARCHAR_COLUMN_LENGTH_USED), 'lat' => $venue->getLat(), 'lng' => $venue->getLng(), 'description' => $venue->getDescription(), 'address' => $venue->getAddress(), 'address_code' => $venue->getAddressCode(), 'country_id' => $venue->getCountryId(), 'area_id' => $venue->getAreaId(), 'created_at' => \TimeSource::getFormattedForDataBase(), 'approved_at' => \TimeSource::getFormattedForDataBase())); $data = $stat->fetch(); $venue->setId($data['id']); $stat = $DB->prepare("INSERT INTO venue_history (venue_id, title,description,lat,lng, country_id,area_id,user_account_id , created_at,approved_at,address,address_code, is_new, is_deleted, edit_comment) VALUES " . "(:venue_id,:title, :description, :lat, :lng,:country_id,:area_id,:user_account_id , :created_at,:approved_at,:address,:address_code, '1', '0', :edit_comment)"); $stat->execute(array('venue_id' => $venue->getId(), 'title' => substr($venue->getTitle(), 0, VARCHAR_COLUMN_LENGTH_USED), 'lat' => $venue->getLat(), 'lng' => $venue->getLng(), 'description' => $venue->getDescription(), 'address' => $venue->getAddress(), 'address_code' => $venue->getAddressCode(), 'user_account_id' => $venueEditMetaDataModel->getUserAccount() ? $venueEditMetaDataModel->getUserAccount()->getId() : null, 'country_id' => $venue->getCountryId(), 'area_id' => $venue->getAreaId(), 'created_at' => \TimeSource::getFormattedForDataBase(), 'approved_at' => \TimeSource::getFormattedForDataBase(), 'edit_comment' => $venueEditMetaDataModel->getEditComment())); $data = $stat->fetch(); $DB->commit(); } catch (Exception $e) { $DB->rollBack(); } }
public function create(AreaModel $area, AreaModel $parentArea = null, SiteModel $site, CountryModel $country, UserAccountModel $creator = null) { global $DB; try { $DB->beginTransaction(); $stat = $DB->prepare("SELECT max(slug) AS c FROM area_information WHERE site_id=:site_id"); $stat->execute(array('site_id' => $site->getId())); $data = $stat->fetch(); $area->setSlug($data['c'] + 1); if ($parentArea) { $area->setParentAreaId($parentArea->getId()); } $stat = $DB->prepare("INSERT INTO area_information (site_id, slug, title,description,country_id,parent_area_id,created_at,approved_at,cache_area_has_parent_generated, is_deleted) " . "VALUES (:site_id, :slug, :title,:description,:country_id,:parent_area_id,:created_at,:approved_at,:cache_area_has_parent_generated, '0') RETURNING id"); $stat->execute(array('site_id' => $site->getId(), 'slug' => $area->getSlug(), 'title' => substr($area->getTitle(), 0, VARCHAR_COLUMN_LENGTH_USED), 'description' => $area->getDescription(), 'country_id' => $country->getId(), 'parent_area_id' => $parentArea ? $parentArea->getId() : null, 'created_at' => \TimeSource::getFormattedForDataBase(), 'approved_at' => \TimeSource::getFormattedForDataBase(), 'cache_area_has_parent_generated' => $parentArea ? '0' : '1')); $data = $stat->fetch(); $area->setId($data['id']); $stat = $DB->prepare("INSERT INTO area_history (area_id, title,description,country_id,parent_area_id,user_account_id , created_at, approved_at, is_new, is_deleted) VALUES " . "(:area_id, :title,:description,:country_id,:parent_area_id,:user_account_id, :created_at,:approved_at,'1','0')"); $stat->execute(array('area_id' => $area->getId(), 'title' => substr($area->getTitle(), 0, VARCHAR_COLUMN_LENGTH_USED), 'description' => $area->getDescription(), 'country_id' => $country->getId(), 'parent_area_id' => $parentArea ? $parentArea->getId() : null, 'user_account_id' => $creator ? $creator->getId() : null, 'created_at' => \TimeSource::getFormattedForDataBase(), 'approved_at' => \TimeSource::getFormattedForDataBase())); $DB->commit(); } catch (Exception $e) { $DB->rollBack(); } }
public function update(TagModel $tag, $fields, TagEditMetaDataModel $tagEditMetaDataModel) { $alreadyInTransaction = $this->db->inTransaction(); // Make Information Data $fieldsSQL1 = array(); $fieldsParams1 = array('id' => $tag->getId()); foreach ($fields as $field) { $fieldsSQL1[] = " " . $field . "=:" . $field . " "; if ($field == 'title') { $fieldsParams1['title'] = substr($tag->getTitle(), 0, VARCHAR_COLUMN_LENGTH_USED); } else { if ($field == 'description') { $fieldsParams1['description'] = $tag->getDescription(); } else { if ($field == 'is_deleted') { $fieldsParams1['is_deleted'] = $tag->getIsDeleted() ? 1 : 0; } } } } // Make History Data $fieldsSQL2 = array('tag_id', 'user_account_id', 'created_at', 'approved_at'); $fieldsSQLParams2 = array(':tag_id', ':user_account_id', ':created_at', ':approved_at'); $fieldsParams2 = array('tag_id' => $tag->getId(), 'user_account_id' => $tagEditMetaDataModel->getUserAccount() ? $tagEditMetaDataModel->getUserAccount()->getId() : null, 'created_at' => $this->timesource->getFormattedForDataBase(), 'approved_at' => $this->timesource->getFormattedForDataBase()); if ($tagEditMetaDataModel->getEditComment()) { $fieldsSQL2[] = ' edit_comment '; $fieldsSQLParams2[] = ' :edit_comment '; $fieldsParams2['edit_comment'] = $tagEditMetaDataModel->getEditComment(); } foreach ($this->possibleFields as $field) { if (in_array($field, $fields) || $field == 'title') { $fieldsSQL2[] = " " . $field . " "; $fieldsSQLParams2[] = " :" . $field . " "; if ($field == 'title') { $fieldsParams2['title'] = substr($tag->getTitle(), 0, VARCHAR_COLUMN_LENGTH_USED); } else { if ($field == 'description') { $fieldsParams2['description'] = $tag->getDescription(); } else { if ($field == 'is_deleted') { $fieldsParams2['is_deleted'] = $tag->getIsDeleted() ? 1 : 0; } } } $fieldsSQL2[] = " " . $field . "_changed "; $fieldsSQLParams2[] = " 0 "; } else { $fieldsSQL2[] = " " . $field . "_changed "; $fieldsSQLParams2[] = " -2 "; } } try { if (!$alreadyInTransaction) { $this->db->beginTransaction(); } // Information SQL $stat = $this->db->prepare("UPDATE tag_information SET " . implode(",", $fieldsSQL1) . " WHERE id=:id"); $stat->execute($fieldsParams1); // History SQL $stat = $this->db->prepare("INSERT INTO tag_history (" . implode(",", $fieldsSQL2) . ") VALUES (" . implode(",", $fieldsSQLParams2) . ")"); $stat->execute($fieldsParams2); if (!$alreadyInTransaction) { $this->db->commit(); } } catch (Exception $e) { if (!$alreadyInTransaction) { $this->db->rollBack(); } throw $e; } }
public function update(UserGroupModel $userGroup, $fields, UserAccountModel $user = null) { $alreadyInTransaction = $this->db->inTransaction(); // Make Information Data $fieldsSQL1 = array(); $fieldsParams1 = array('id' => $userGroup->getId()); foreach ($fields as $field) { $fieldsSQL1[] = " " . $field . "=:" . $field . " "; if ($field == 'title') { $fieldsParams1['title'] = substr($userGroup->getTitle(), 0, VARCHAR_COLUMN_LENGTH_USED); } else { if ($field == 'description') { $fieldsParams1['description'] = $userGroup->getDescription(); } else { if ($field == 'is_deleted') { $fieldsParams1['is_deleted'] = $userGroup->getIsDeleted() ? 1 : 0; } else { if ($field == 'is_in_index') { $fieldsParams1['is_in_index'] = $userGroup->getIsDeleted() ? 1 : 0; } else { if ($field == 'is_includes_anonymous') { $fieldsParams1['is_includes_anonymous'] = $userGroup->getIsIncludesAnonymous() ? 1 : 0; } else { if ($field == 'is_includes_users') { $fieldsParams1['is_includes_users'] = $userGroup->getIsIncludesUsers() ? 1 : 0; } else { if ($field == 'is_includes_verified_users') { $fieldsParams1['is_includes_verified_users'] = $userGroup->getIsIncludesVerifiedUsers() ? 1 : 0; } } } } } } } } // Make History Data $fieldsSQL2 = array('user_group_id', 'user_account_id', 'created_at'); $fieldsSQLParams2 = array(':user_group_id', ':user_account_id', ':created_at'); $fieldsParams2 = array('user_group_id' => $userGroup->getId(), 'user_account_id' => $user ? $user->getId() : null, 'created_at' => $this->timesource->getFormattedForDataBase()); foreach ($this->possibleFields as $field) { if (in_array($field, $fields) || $field == 'title') { $fieldsSQL2[] = " " . $field . " "; $fieldsSQLParams2[] = " :" . $field . " "; if ($field == 'title') { $fieldsParams2['title'] = substr($userGroup->getTitle(), 0, VARCHAR_COLUMN_LENGTH_USED); } else { if ($field == 'description') { $fieldsParams2['description'] = $userGroup->getDescription(); } else { if ($field == 'is_deleted') { $fieldsParams2['is_deleted'] = $userGroup->getIsDeleted() ? 1 : 0; } else { if ($field == 'is_in_index') { $fieldsParams2['is_in_index'] = $userGroup->getIsDeleted() ? 1 : 0; } else { if ($field == 'is_includes_anonymous') { $fieldsParams2['is_includes_anonymous'] = $userGroup->getIsIncludesAnonymous() ? 1 : 0; } else { if ($field == 'is_includes_users') { $fieldsParams2['is_includes_users'] = $userGroup->getIsIncludesUsers() ? 1 : 0; } else { if ($field == 'is_includes_verified_users') { $fieldsParams2['is_includes_verified_users'] = $userGroup->getIsIncludesVerifiedUsers() ? 1 : 0; } } } } } } } $fieldsSQL2[] = " " . $field . "_changed "; $fieldsSQLParams2[] = " 0 "; } else { $fieldsSQL2[] = " " . $field . "_changed "; $fieldsSQLParams2[] = " -2 "; } } try { if (!$alreadyInTransaction) { $this->db->beginTransaction(); } // Information SQL $stat = $this->db->prepare("UPDATE user_group_information SET " . implode(",", $fieldsSQL1) . " WHERE id=:id"); $stat->execute($fieldsParams1); // History SQL $stat = $this->db->prepare("INSERT INTO user_group_history (" . implode(",", $fieldsSQL2) . ") VALUES (" . implode(",", $fieldsSQLParams2) . ")"); $stat->execute($fieldsParams2); if (!$alreadyInTransaction) { $this->db->commit(); } } catch (Exception $e) { if (!$alreadyInTransaction) { $this->db->rollBack(); } throw $e; } }
public function create(UserAtEventModel $userAtEvent) { global $DB; $stat = $DB->prepare("INSERT INTO user_at_event_information (user_account_id,event_id,is_plan_attending,is_plan_maybe_attending,is_plan_public,created_at) " . "VALUES (:user_account_id,:event_id,:is_plan_attending,:is_plan_maybe_attending,:is_plan_public,:created_at)"); $stat->execute(array('user_account_id' => $userAtEvent->getUserAccountId(), 'event_id' => $userAtEvent->getEventId(), 'is_plan_attending' => $userAtEvent->getIsPlanAttending() ? 1 : 0, 'is_plan_maybe_attending' => $userAtEvent->getIsPlanMaybeAttending() ? 1 : 0, 'is_plan_public' => $userAtEvent->getIsPlanPublic() ? 1 : 0, 'created_at' => \TimeSource::getFormattedForDataBase())); }
public function markSent(OrganiserEmailModel $organiserEmailModel) { global $DB; $stat = $DB->prepare("UPDATE organiser_email SET sent_at=:sent_at WHERE id=:id"); $stat->execute(array('id' => $organiserEmailModel->getId(), 'sent_at' => \TimeSource::getFormattedForDataBase())); }