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();
 }
 public function executeMembers()
 {
     $this->target_list_rights_list = TargetListRightsTable::getInstance()->queryByTargetList($this->target_list)->execute();
     $this->admin = $this->getGuardUser()->isCampaignAdmin($this->target_list->getCampaign());
     $this->csrf_token = UtilCSRF::gen('target_list_members');
 }
 public function executeEditMembers(sfWebRequest $request)
 {
     $this->ajax()->setAlertTarget('#target_list_members', 'after');
     $target_list = $this->findTargetList();
     /* @var $target_list MailingList */
     if (!$target_list) {
         return $this->ajax()->alert('Target-list not found', 'Error')->render();
     }
     if ($target_list->getCampaignId()) {
         if (!$this->userIsAdmin() && $target_list->getCampaign()->getStatus() == CampaignTable::STATUS_DELETED) {
             return $this->notFound();
         }
     }
     if (!$this->getGuardUser()->isCampaignAdmin($target_list->getCampaign())) {
         return $this->ajax()->alert('You are not admin', 'Error')->render();
     }
     if ($request->getPostParameter('csrf_token') !== UtilCSRF::gen('target_list_members')) {
         return $this->ajax()->alert('CSRF Attack detected, please relogin.', 'Error')->render();
     }
     $ids = $request->getPostParameter('ids');
     $method = $request->getPostParameter('method');
     if (!in_array($method, array('enable', 'disable'))) {
         return $this->ajax()->alert('Something is wrong.', 'Error')->render();
     }
     if (is_array($ids)) {
         foreach (TargetListRightsTable::getInstance()->queryByTargetListAndUsers($target_list, $ids)->execute() as $target_list_rights) {
             /* @var $target_list_rights TargetListRights */
             if ($method === 'enable') {
                 $target_list_rights->setActive(1);
             } elseif ($method === 'disable') {
                 $target_list_rights->setActive(0);
             }
             $target_list_rights->save();
         }
     }
     return $this->ajax()->replaceWithComponent('#target_list_members', 'target', 'members', array('target_list' => $target_list))->render();
 }
 /**
  *
  * @param MailingList $mailing_list
  * @return TargetListRights
  */
 public function getTargetListRights(MailingList $mailing_list)
 {
     if (array_key_exists($mailing_list->getId(), $this->tr_cache)) {
         return $this->tr_cache[$mailing_list->getId()];
     }
     return $this->tr_cache[$mailing_list->getId()] = TargetListRightsTable::getInstance()->queryByTargetListAndUser($mailing_list, $this)->fetchOne();
 }