/** * @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; } }
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); }