/** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $rules = ['password' => 'confirmed|min:6']; if (Auth::user()->admin) { $rules['username'] = '******'; $rules['institution_id'] = 'integer'; } $this->validate($request, $rules); if (Auth::user()->admin) { $data = Input::only(['username', 'institution_id', 'admin']); $data['admin'] = Input::has('admin') ? true : false; if (empty($data['institution_id'])) { $data['institution_id'] = null; } } $data['password'] = Input::get('password'); if (!empty($data['password'])) { $data['password'] = bcrypt($data['password']); } else { unset($data['password']); } User::find($id)->update($data); return Redirect::route(Auth::user()->admin ? 'users.index' : 'home'); }