public function executeCreate(sfWebRequest $request) { if (!($this->getUser()->hasCredential(myUser::CREDENTIAL_ADMIN) || StoreTable::value(StoreTable::CAMAPIGN_CREATE_ON))) { return $this->ajax()->alert('', 'You have no right to create a campaign.', '#my_campaigns h3', 'after')->render(); } $form = new NewCampaignNameForm(); $form->bind($request->getPostParameter($form->getName())); if (!$form->isValid()) { return $this->ajax()->form_error_list($form, '#my_campaigns_create', 'after')->render(); } CampaignTable::getInstance()->getConnection()->beginTransaction(); try { $campaign = new Campaign(); $campaign->setName($form->getValue('name')); $campaign->setDataOwner($this->getGuardUser()); $store = StoreTable::getInstance()->findByKey(StoreTable::PRIVACY_AGREEMENT); if ($store) { $campaign->setPrivacyPolicy($store->getField('text')); } $campaign->save(); $cr = new CampaignRights(); $cr->setCampaign($campaign); $cr->setUser($this->getGuardUser()); $cr->setActive(1); $cr->setAdmin(1); $cr->setMember(1); $cr->save(); CampaignTable::getInstance()->getConnection()->commit(); } catch (Exception $e) { CampaignTable::getInstance()->getConnection()->rollback(); return $this->ajax()->alert('', 'DB Error', '#my_campaigns_create', 'after')->render(); } return $this->ajax()->redirectRotue('campaign_edit_', array('id' => $campaign->getId()))->render(); // return $this->ajax()->alert('Campaign created', '', '#my_campaigns_create', 'after')->render(); }
protected function joinCampaign(Ticket $ticket) { $cr = CampaignRightsTable::getInstance()->queryByCampaignAndUser($ticket->getCampaign(), $ticket->getFrom())->fetchOne(); if ($cr) { /* @var $cr CampaignRights */ if (!$cr->getActive()) { $cr->setActive(1); $cr->setMember(1); $cr->setAdmin(0); $cr->save(); } return; } $cr = new CampaignRights(); $cr->setCampaignId($ticket->getCampaignId()); $cr->setUserId($ticket->getFromId()); $cr->setActive(1); $cr->setMember(1); $cr->setAdmin(0); $cr->save(); }