function executeTodo() { $page = isset($this->page) ? $this->page : 1; $user = $this->getGuardUser(); if ($user) { $query = TicketTable::getInstance()->queryForUser($this->getGuardUser(), array(TicketTable::STATUS_NEW, TicketTable::STATUS_READ)); if (isset($this->campaign_id)) { $query->andWhere($query->getRootAlias() . '.campaign_id = ?', $this->campaign_id); } if (isset($this->petition_id)) { $query->andWhere($query->getRootAlias() . '.petition_id = ?', $this->petition_id); } $this->tickets = new policatPager($query, $page, 'ticket_todo', array(), true, 10); $this->csrf_token = UtilCSRF::gen('tickets'); } }
private function removeOldResignAndCallTickets(Campaign $campaign) { foreach (TicketTable::getInstance()->queryResignTicketForCampaign($campaign)->execute() as $old_ticket) { /* @var $old_ticket Ticket */ $old_ticket->setStatus(TicketTable::STATUS_DENIED); $old_ticket->save(); } foreach (TicketTable::getInstance()->queryCallTicketForCampaign($campaign)->execute() as $old_ticket) { /* @var $old_ticket Ticket */ $old_ticket->setStatus(TicketTable::STATUS_DENIED); $old_ticket->save(); } }
public function executePrivacyLang(sfWebRequest $request) { $this->campaign = CampaignTable::getInstance()->findById($request->getParameter('id'), $this->userIsAdmin()); /* @var $this->campaign Campaign */ if (!$this->campaign) { return $this->notFound(); } if (!$this->getGuardUser()->isCampaignAdmin($this->campaign)) { return $this->noAccess(); } $this->languages = LanguageTable::getInstance()->queryAll()->execute(); $this->language = LanguageTable::getInstance()->find($request->getParameter('lang')); if (!$this->language) { return $this->notFound(); } $campaign_store = CampaignStoreTable::getInstance()->findByCampaignLanguageKey($this->campaign, $this->language, CampaignStoreTable::KEY_PRIVACY_POLICY); if (!$campaign_store) { $campaign_store = new CampaignStore(); $campaign_store->setCampaign($this->campaign); $campaign_store->setLanguage($this->language); $campaign_store->setKey(CampaignStoreTable::KEY_PRIVACY_POLICY); $store = StoreTable::getInstance()->findByKeyAndLanguage(StoreTable::ACTION_PRIVACY_POLICY, $campaign_store->getLanguage()->getId()); if (!$store) { $store = StoreTable::getInstance()->findByKeyAndLanguage(StoreTable::ACTION_PRIVACY_POLICY, 'en'); } if ($store) { $campaign_store->setValue($store->getField('body')); } } $this->form = new CampaignStoreForm($campaign_store); if ($request->isMethod('post')) { $this->form->bind($request->getPostParameter($this->form->getName())); if ($this->form->isValid()) { $before = $campaign_store->getValue(); $this->form->save(); $data_owner = $this->campaign->getDataOwnerId() ? $this->campaign->getDataOwner() : null; /* @var $data_owner sfGuardUser */ if ($data_owner && $this->getGuardUser()->getId() != $data_owner->getId()) { $ticket = TicketTable::getInstance()->generate(array(TicketTable::CREATE_AUTO_FROM => true, TicketTable::CREATE_TO => $data_owner, TicketTable::CREATE_CAMPAIGN => $this->campaign, TicketTable::CREATE_KIND => TicketTable::KIND_PRIVACY_POLICY_CHANGED, TicketTable::CREATE_TEXT => $this->getGuardUser()->getFullName() . ' (' . $this->getGuardUser()->getOrganisation() . ") modified the privacy policy text '" . $this->language->getName() . "'\n" . "BEFORE:\n" . $before . "\n\nAFTER:\n" . $campaign_store->getValue())); $ticket->save(); $ticket->notifyAdmin(); } return $this->ajax()->remove('#no_text')->alert('Saved.', '', '#campaign_privacy_form .form-actions', 'before')->render(); } return $this->ajax()->form($this->form)->render(); } $this->includeMarkdown(); $this->includeHighlight(); }
public function executeDataOwner(sfWebRequest $request) { $this->ajax()->setAlertTarget('#widget_list table', 'after'); if ($request->getPostParameter('csrf_token') !== UtilCSRF::gen('widget_data_owner')) { return $this->ajax()->alert('CSRF Attack detected, please relogin.', 'Error')->render(); } $id = $request->getPostParameter('id'); if (!is_numeric($id)) { return $this->ajax()->alert('invalid data', 'Error')->render(); } $widget = WidgetTable::getInstance()->find($id); /* @var $widget Widget */ if (!$widget) { return $this->ajax()->alert('Widget not found', 'Error')->render(); } if (!$this->userIsAdmin() && ($widget->getCampaign()->getStatus() == CampaignTable::STATUS_DELETED || $widget->getPetition()->getStatus() == Petition::STATUS_DELETED)) { return $this->ajax()->alert('Widget not found', 'Error')->render(); } if (!$widget->getCampaign()->getOwnerRegister()) { return $this->ajax()->alert('Disabled function', 'Error')->render(); } if (!$widget->getUserId() || $widget->getUserId() != $this->getGuardUser()->getId()) { return $this->ajax()->alert('You are not owner of this widget', '')->render(); } if ($widget->getDataOwner() == WidgetTable::DATA_OWNER_YES) { return $this->ajax()->alert('You are already Data-owner of this widget', '')->render(); } $ticket = TicketTable::getInstance()->generate(array(TicketTable::CREATE_AUTO_FROM => true, TicketTable::CREATE_WIDGET => $widget, TicketTable::CREATE_KIND => TicketTable::KIND_WIDGET_DATA_OWNER, TicketTable::CREATE_CHECK_DUPLICATE => true)); if ($ticket) { $ticket->save(); $ticket->notifyAdmin(); } else { return $this->ajax()->alert('Application already pending', '')->render(); } return $this->ajax()->alert('Application has been sent to Campaign admin', '')->render(); }
public function executeActivate(sfWebRequest $request) { $this->ajax()->setAlertTarget('#form .form-actions', 'before'); if ($request->getPostParameter('csrf_token') !== UtilCSRF::gen('target_activate')) { return $this->ajax()->alert('CSRF Attack detected, please relogin.', 'Error')->render(); } $id = $request->getPostParameter('id'); if (!is_numeric($id)) { return $this->ajax()->alert('invalid data', 'Error')->render(); } $target_list = $this->findTargetList($id); /* @var $target_list MailingList */ if (!$target_list) { return $this->ajax()->alert('Target-list not found', 'Error')->render(); } if ($target_list->getStatus() == MailingListTable::STATUS_ACTIVE) { return $this->ajax()->alert('Target-list is already active.', 'Error')->render(); } if ($this->getGuardUser()->isCampaignAdmin($target_list->getCampaignId())) { $target_list->setStatus(MailingListTable::STATUS_ACTIVE); $target_list->save(); $petition_id = $request->getPostParameter('petition_id'); if (is_numeric($petition_id) && $petition_id) { return $this->ajax()->redirectRotue('petition_target', array('id' => $petition_id))->render(); } else { return $this->ajax()->redirectRotue('target_edit', array('id' => $target_list->getId()))->render(); } } if (!$this->getGuardUser()->isTargetListMember($target_list)) { return $this->noAccess(); } $ticket = TicketTable::getInstance()->generate(array(TicketTable::CREATE_AUTO_FROM => true, TicketTable::CREATE_TARGET_LIST => $target_list, TicketTable::CREATE_KIND => TicketTable::KIND_TARGET_LIST_ACTIVATE, TicketTable::CREATE_CHECK_DUPLICATE => true)); if ($ticket) { $ticket->save(); $ticket->notifyAdmin(); } else { return $this->ajax()->alert('Application already pending', '')->render(); } return $this->ajax()->alert('Application has been sent to Campaign admin', '')->render(); }
public function executeJoinAdmin(sfWebRequest $request) { $this->ajax()->setAlertTarget('#petition_members table', 'after'); if ($request->getPostParameter('csrf_token') !== UtilCSRF::gen('action_join_admin')) { return $this->ajax()->alert('CSRF Attack detected, please relogin.', 'Error')->render(); } $id = $request->getPostParameter('id'); if (!is_numeric($id)) { return $this->ajax()->alert('invalid data', 'Error')->render(); } $petition = PetitionTable::getInstance()->findById($id); /* @var $petition Petition */ if (!$petition) { return $this->ajax()->alert('Petition not found', 'Error')->render(); } if (!$petition->getCampaign()->getBecomePetitionAdmin()) { return $this->ajax()->alert('Disabled function', 'Error')->render(); } $pr = $this->getGuardUser()->getRightsByPetition($petition); if (!$pr || !$pr->getActive() || !$pr->getMember()) { return $this->ajax()->alert('You are not member of this action', '')->render(); } if ($pr->getAdmin()) { return $this->ajax()->alert('You are already member-manager.', '')->render(); } $ticket = TicketTable::getInstance()->generate(array(TicketTable::CREATE_AUTO_FROM => true, TicketTable::CREATE_PETITION => $petition, TicketTable::CREATE_KIND => TicketTable::KIND_JOIN_PETITION_ADMIN, TicketTable::CREATE_CHECK_DUPLICATE => true)); if ($ticket) { $ticket->save(); $ticket->notifyAdmin(); } else { return $this->ajax()->alert('Application already pending', '')->render(); } return $this->ajax()->alert('Application has been sent to Campaign admin', '')->render(); }
public function executeUnblock(sfWebRequest $request) { if ($this->getUser()->isNotBlocked()) { return $this->ajax()->redirectRotue('dashboard')->render(); } if (TicketTable::getInstance()->checkOpenUnblockTicketForUser($this->getGuardUser())) { return $this->ajax()->alert('There is already a pending ticket for your request.', 'Sorry.')->render(); } $form = new UnblockForm(); if ($request->isMethod('post')) { $form->bind($request->getParameter($form->getName())); if ($form->isValid()) { $ticket = TicketTable::getInstance()->generate(array(TicketTable::CREATE_AUTO_FROM => true, TicketTable::CREATE_CHECK_DUPLICATE => true, TicketTable::CREATE_KIND => TicketTable::KIND_USER_UNBLOCK, TicketTable::CREATE_TEXT => $form->getValue('reason'))); if ($ticket) { $ticket->save(); return $this->ajax()->modal('#unblock_modal', 'hide')->remove('#unblock_modal')->alert('Message sent.')->render(); } else { return $this->ajax()->alert('There is already a pending ticket for your request.', 'Sorry')->render(); } } else { return $this->ajax()->form($form)->render(); } } return $this->ajax()->appendPartial('body', 'unblock', array('form' => $form))->modal('#unblock_modal')->render(); }