示例#1
0
 protected function targetListMember(Ticket $ticket)
 {
     $tr = TargetListRightsTable::getInstance()->queryByTargetListAndUser($ticket->getTargetList(), $ticket->getFrom())->fetchOne();
     if (!$tr) {
         $tr = new TargetListRights();
         $tr->setMailingList($ticket->getTargetList());
         $tr->setUser($ticket->getFrom());
     }
     /* @var $tr TargetListRights */
     $tr->setActive(1);
     $tr->save();
 }
示例#2
0
 public function executeEdit(sfWebRequest $request)
 {
     $route_params = $this->getRoute()->getParameters();
     $this->csrf_token = UtilCSRF::gen('target_activate');
     if (isset($route_params['type']) && $route_params['type'] == 'new') {
         // CREATE
         $campaign = CampaignTable::getInstance()->findById($request->getParameter('id'), $this->userIsAdmin());
         /* @var $campaign Campaign */
         if (!$campaign) {
             return $this->notFound();
         }
         if (!$this->getGuardUser()->isCampaignMember($campaign)) {
             return $this->noAccess();
         }
         $target_list = new MailingList();
         $target_list->setCampaign($campaign);
         $target_list->setStatus(MailingListTable::STATUS_DRAFT);
     } else {
         $target_list = $this->findTargetList();
         /* @var $target_list MailingList */
         if (!$target_list) {
             return $this->notFound();
         }
         if (!$this->getGuardUser()->isTargetListMember($target_list, true)) {
             return $this->noAccess();
         }
         $this->metas = $target_list->getMailingListMeta();
     }
     if ($target_list->getCampaignId()) {
         $this->campaign = $target_list->getCampaign();
         if (!$this->userIsAdmin() && $this->campaign->getStatus() == CampaignTable::STATUS_DELETED) {
             return $this->notFound();
         }
     }
     $this->target_list = $target_list;
     $this->form = new MailingListForm($target_list);
     if ($request->isMethod('post')) {
         $form_data = $request->getPostParameter($this->form->getName());
         if ($form_data) {
             $this->form->bind($form_data);
             if ($this->form->isValid()) {
                 $was_new = $target_list->isNew();
                 $this->form->save();
                 $target_list->refresh();
                 if ($was_new) {
                     if (!$this->getGuardUser()->isCampaignAdmin($target_list->getCampaign())) {
                         $tr = new TargetListRights();
                         $tr->setUser($this->getGuardUser());
                         $tr->setMailingList($target_list);
                         $tr->setActive(1);
                         $tr->save();
                     }
                     return $this->ajax()->redirectRotue('target_edit', array('id' => $target_list->getId()))->render();
                 } else {
                     return $this->ajax()->replaceWithPartial('#form', 'form', array('form' => new MailingListForm($target_list)))->alert('Name updated', '', '#form', 'after')->render();
                 }
             } else {
                 return $this->ajax()->form($this->form)->render();
             }
         }
     }
     $this->includeIframeTransport();
     $this->includeChosen();
 }