public function update($id = null, Request $request)
 {
     if ($id == null) {
         $id = Auth::id();
     }
     $user = User::find($id);
     if ($user == null) {
         abort(404);
     }
     if ($user->id != Auth::id() && !Auth::user()->can('board')) {
         abort(403);
     }
     $userdata['email'] = $request->input('email');
     $userdata['phone'] = str_replace(' ', '', $request->input('phone'));
     $userdata['website'] = $request->input('website');
     $userdata['phone_visible'] = $request->has('phone_visible');
     $userdata['receive_sms'] = $request->has('receive_sms');
     $validator = Validator::make($userdata, ['email' => 'required|email', 'phone' => 'required|regex:(\\+[0-9]{8,16})']);
     if ($validator->fails()) {
         return Redirect::route('user::dashboard', ['id' => $user->id])->withErrors($validator);
     }
     if ($userdata['email'] !== $user->email) {
         $email = ['old' => $user->email, 'new' => $userdata['email']];
         $name = $user->name;
         Mail::queue('emails.emailchange', ['changer' => ['name' => Auth::user()->name, 'ip' => $request->ip()], 'email' => $email, 'user' => $user], function ($message) use($name, $email) {
             $message->to($email['old'], $name)->to($email['new'], $name)->from('security@' . config('proto.emaildomain'), 'Have You Tried Turning It Off And On Again committee')->subject('Your e-mail address for S.A. Proto has been changed.');
         });
     }
     $user->fill($userdata);
     $user->save();
     Session::flash("flash_message", "Changes saved.");
     return Redirect::route('user::dashboard', ['id' => $user->id]);
 }
示例#2
0
 public function linkForm($user_id)
 {
     $user = User::find($user_id);
     if ($user == null) {
         abort(404);
     }
     if ($user->id != Auth::id() && !Auth::user()->can('board')) {
         abort(403);
     }
     return view('users.study.edit', ['link' => null, 'user' => $user, 'studies' => Study::orderBy('name', 'asc')->get()]);
 }
示例#3
0
 /**
  * Display the profile for a specific user.
  *
  * @param  int $id
  * @return \Illuminate\Http\Response
  */
 public function show($id = null)
 {
     if ($id == null) {
         $id = Auth::id();
     }
     $user = User::find($id);
     if ($user == null) {
         abort(404);
     }
     $ldap = $user->getUtwenteData();
     $pastCommittees = CommitteeMembership::onlyTrashed()->where('user_id', $user->id)->orderBy('created_at', 'desc')->get();
     return view('users.profile.profile', ['user' => $user, 'ldap' => $ldap, 'pastcommittees' => $pastCommittees]);
 }
示例#4
0
 public function startoverlayprint(Request $request)
 {
     $user = User::find($request->input('id'));
     if (!$user) {
         return "This user could not be found!";
     }
     if (!$user->member) {
         return "Only members can have their card printed!";
     }
     $result = FileController::requestPrint('card', route('membercard::download', ['id' => $user->id, 'overlayonly' => 1]));
     if ($result === false) {
         return "Something went wrong trying to reach the printer service.";
     }
     return "The printer service responded: " . $result;
 }
示例#5
0
 public function printForm(Request $request)
 {
     $user = User::find($request->input('id'));
     if (!$user) {
         return "This user could not be found!";
     }
     if ($user->address->count() === 0) {
         return "This user has no address!";
     }
     $result = FileController::requestPrint('document', route('memberform::download', ['id' => $user->id]));
     if ($result === false) {
         return "Something went wrong trying to reach the printer service.";
     }
     return "The printer service responded: " . $result;
 }
示例#6
0
 /**
  * Committee membership tools below
  */
 public function addMembership(Request $request)
 {
     $user = User::find($request->user_id);
     $committee = Committee::find($request->committee_id);
     if ($user == null) {
         abort(404);
     }
     if ($committee == null) {
         abort(404);
     }
     if (($committee->slug == config('proto.rootcommittee') || $committee->slug == config('proto.boardcommittee')) && !Auth::user()->can('admin')) {
         Session::flash("flash_message", "This committee is protected. Only the Have You Tried Turning It Off And On Again committee can change this committee.");
         return Redirect::back();
     }
     $membership = new CommitteeMembership();
     $membership->role = $request->role;
     $membership->edition = $request->edition;
     $membership->user_id = $request->user_id;
     $membership->committee_id = $request->committee_id;
     if (($membership->created_at = date('Y-m-d H:i:s', strtotime($request->start))) === false) {
         Session::flash("flash_message", "Ill-formatted start date.");
         return Redirect::back();
     }
     if ($request->end != "" && ($membership->deleted_at = date('Y-m-d H:i:s', strtotime($request->end))) === false) {
         Session::flash("flash_message", "Ill-formatted end date.");
         return Redirect::back();
     }
     $membership->save();
     Session::flash("flash_message", "You have added " . $membership->user->name . " to " . $membership->committee->name . ".");
     return Redirect::back();
 }
示例#7
0
 public function take($achievement_id, $user_id)
 {
     $achievement = Achievement::find($achievement_id);
     $user = User::find($user_id);
     if (!$user || !$achievement) {
         abort(404);
     }
     $achieved = AchievementOwnership::all();
     foreach ($achieved as $entry) {
         if ($entry->achievement_id == $achievement_id && $entry->user_id == $user_id) {
             $entry->delete();
             Session::flash('flash_message', "Achievement {$achievement->name} taken from {$user->name}.");
         }
     }
     return Redirect::back();
 }
示例#8
0
 public function delete($id)
 {
     $user = User::find($id);
     if ($user == null) {
         abort(404);
     }
     if ($user->id != Auth::id() && !Auth::user()->can('board')) {
         abort(403);
     }
     if ($user->bank == null) {
         Session::flash("flash_message", "You don't have a bank authorization to revoke.");
         return Redirect::route('user::dashboard', ['id' => $id]);
     }
     if ($user->member) {
         Session::flash("flash_message", "As a member you cannot revoke your bank authorization. You can update it, though.");
         return Redirect::back();
     }
     $user->bank->delete();
     Session::flash("flash_message", "Deleted bank account.");
     return Redirect::route('user::dashboard', ['id' => $id]);
 }
示例#9
0
 public function toggleHidden($id, Request $request)
 {
     $user = User::find($id);
     if ($user == null) {
         abort(404);
     }
     if ($user->id != Auth::id() && !Auth::user()->can('board')) {
         abort(403);
     }
     $user->address_visible = !$user->address_visible;
     $user->save();
     Session::flash("flash_message", "Your primary address is now " . ($user->address_visible ? 'visible' : 'hidden') . " for members.");
     return Redirect::back();
 }
示例#10
0
 public function updatePassword(Request $request)
 {
     $user = User::find($request->id);
     if ($user == null) {
         abort(404);
     }
     if ($user->id != Auth::id()) {
         $request->session()->flash('flash_message', 'Sorry! You cannot change another user their password. If a user forgot their password, please let them use the \'forgot password\' form on the login screen.');
         return Redirect::back();
     }
     if (AuthController::verifyCredentials($user->email, $request->oldpass) || $user->utwente_username && AuthController::verifyUtwenteCredentials($user->utwente_username, $request->oldpass)) {
         if ($request->newpass1 !== $request->newpass2) {
             $request->session()->flash('flash_message', 'The new passwords are not identical. Please try again!');
             return Redirect::route('user::dashboard');
         } elseif (strlen($request->newpass1) < 8) {
             $request->session()->flash('flash_message', 'Your new password should be at least 8 characters long.');
             return Redirect::route('user::dashboard');
         } else {
             $user->setPassword($request->newpass1);
             $request->session()->flash('flash_message', 'Your password has been changed.');
             return Redirect::route('user::dashboard');
         }
     }
     $request->session()->flash('flash_message', 'Old password incorrect! Password not updated.');
     return Redirect::route('user::dashboard');
 }