private function trackChairDetails() { if (!Member::currentUser()) { return $this->httpError(403); } $data = array('categories' => NULL); $TrackChair = SummitTrackChair::get()->filter('MemberID', Member::currentUserID()); if ($TrackChair->count()) { $chair = $TrackChair->first(); $data['first_name'] = $chair->Member()->FirstName; $data['last_name'] = $chair->Member()->Surname; foreach ($chair->Categories() as $c) { $data['categories'][] = $c->toJSON(); } } if (Permission::check('ADMIN')) { $data['is_admin'] = TRUE; $data['categories'] = []; $summit = Summit::get_active(); foreach ($summit->Categories()->filter('ChairVisible', TRUE) as $c) { $data['categories'][] = $c->toJSON(); } } else { $data['is_admin'] = FALSE; } return $data; }
/** * @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 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); }