/**
  * @param $member
  * @param $category_id
  * @throws ValidationException
  * @throws null
  */
 public static function addChair($member, $category_id)
 {
     $priorChair = SummitTrackChair::get()->filter('MemberID', $member->ID)->first();
     $category = PresentationCategory::get()->byID($category_id);
     if (!$priorChair) {
         $chair = new self();
         $chair->MemberID = $member->ID;
         $chair->write();
         $chair->Categories()->add($category);
         //Find or create the 'track-chairs' group
         if (!($Group = Group::get()->filter('Code', 'track-chairs')->first())) {
             $Group = new Group();
             $Group->Code = "track-chairs";
             $Group->Title = "Track Chairs";
             $Group->Write();
             $member->Groups()->add($Group);
         }
         //Add member to the group
         $member->Groups()->add($Group);
         return $chair->ID;
     } else {
         $priorChair->Categories()->add($category);
         $priorChair->Member()->addToGroupByCode('track-chairs');
         return $priorChair->ID;
     }
 }
 function trackChairCheck()
 {
     $member = Member::currentUser();
     $chair = new SummitTrackChair();
     if ($member) {
         $chair = SummitTrackChair::get()->filter(array('MemberID' => $member->ID, 'SummitID' => Summit::get_active()->ID));
     }
     if ($chair->exists() || Permission::check('ADMIN')) {
         return true;
     }
 }
Example #3
0
 public function handleAddChair(SS_HTTPRequest $r)
 {
     $email = $r->getVar('email');
     $catid = $r->getVar('cat_id');
     $category = PresentationCategory::get()->byID($catid);
     if (!$category) {
         return 'category not found';
     }
     $member = Member::get()->filter('Email', $email)->first();
     if (!$member) {
         return 'member not found';
     }
     SummitTrackChair::addChair($member, $catid);
     $category->MemberList($member->ID);
     $category->GroupList();
     return $member->FirstName . ' ' . $member->Surname . ' added as a chair to category ' . $category->Title;
 }
 public function handleDeleteChair(SS_HTTPRequest $r)
 {
     parse_str($r->getBody(), $vars);
     if (!isset($vars['chairID']) || !isset($vars['categoryID'])) {
         return $this->httpError(400, 'You must provide a chairID and categoryID param');
     }
     $category = PresentationCategory::get()->byID($vars['categoryID']);
     $chair = SummitTrackChair::get()->byID($vars['chairID']);
     if (!$category) {
         return $this->httpError(404, 'Category not found');
     }
     if (!$chair) {
         return $this->httpError(404, 'Chair not found');
     }
     $category->TrackChairs()->remove($chair);
     return new SS_HTTPResponse("Chair {$chair->Member()->getName()} removed from {$category->Title}", 200);
 }