Esempio n. 1
0
 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();
 }
Esempio n. 2
0
 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()]);
 }
Esempio n. 3
0
 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]);
 }
Esempio n. 4
0
 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();
     }
 }