public function addHelp(Request $request, $id) { $event = Event::findOrFail($id); if (!$event->activity) { $request->session()->flash('flash_message', 'This event has no activity data.'); return Redirect::back(); } $amount = $request->input('amount'); if ($amount < 1) { $request->session()->flash('flash_message', 'The amount of helpers should be positive.'); return Redirect::back(); } $committee = Committee::findOrFail($request->input('committee')); $help = HelpingCommittee::create(['activity_id' => $event->activity->id, 'committee_id' => $committee->id, 'amount' => $amount]); foreach ($committee->users as $user) { $name = $user->name; $email = $user->email; $helptitle = $help->activity->event->title; Mail::queue('emails.committeehelpneeded', ['user' => $user, 'help' => $help], function ($m) use($name, $email, $helptitle) { $m->replyTo('*****@*****.**', 'S.A. Proto'); $m->to($email, $name); $m->subject('The activity ' . $helptitle . ' needs your help.'); }); } $request->session()->flash('flash_message', 'Added ' . $committee->name . ' as helping committee.'); return Redirect::back(); }
public function show($id) { $committee = Committee::findOrFail($id); if (!$committee->public && (!Auth::check() || !Auth::user()->can('board'))) { abort(404); } return view('committee.show', ['committee' => $committee, 'members' => $committee->allmembers()]); }
public function search(Request $request) { $term = $request->input('query'); $data = SearchController::doSearch($term); $aggregate = []; foreach ($data['users'] as $id => $count) { $aggregate[] = ['score' => $count, 'object' => User::findOrFail($id), 'href' => route('user::profile', ['id' => $id])]; } foreach ($data['pages'] as $id => $count) { $page = Page::findOrFail($id); $aggregate[] = ['score' => $count, 'object' => $page, 'href' => route('page::show', ['slug' => $page->slug])]; } foreach ($data['committees'] as $id => $count) { $aggregate[] = ['score' => $count, 'object' => Committee::findOrFail($id), 'href' => route('committee::show', ['id' => $id])]; } foreach ($data['events'] as $id => $count) { $aggregate[] = ['score' => $count, 'object' => Event::findOrFail($id), 'href' => route('event::show', ['id' => $id])]; } usort($aggregate, function ($a, $b) { return $b['score'] - $a['score']; }); return view('website.search', ['term' => $term, 'data' => $aggregate]); }
private function syncCommitteeMembers($provider) { $groups = $provider->search()->groups()->get(); $user2ldap = []; foreach ($groups as $group) { $this->info('Setting members for ' . $group->name[0] . '.'); $committee = Committee::findOrFail($group->description[0]); $newmembers = []; foreach ($committee->users as $user) { if (!array_key_exists($user->id, $user2ldap)) { $ldapuser = $provider->search()->where('objectClass', 'user')->where('description', $user->id)->first(); if ($ldapuser !== null) { $user2ldap[$user->id] = $ldapuser; } else { $this->error("No LDAP user found for " . $user->name . "."); continue; } } if (!in_array($user2ldap[$user->id]->dn, $newmembers)) { $newmembers[] = $user2ldap[$user->id]->dn; } } $group->setMembers($newmembers); $group->save(); } }