public function update(Request $request, $id)
 {
     $is_system_admin = '';
     $users = null;
     $user_data = \Input::all();
     if (array_key_exists('user_type', $user_data)) {
         $is_system_admin = $user_data['user_type'];
     }
     $validator = Validator::make($user_data, ['email_addr_text' => 'required|email', 'first_name_text' => 'required|string', 'last_name_text' => 'required|string', 'nickname_text' => 'required|string', 'new_password' => 'required|string']);
     if ($validator->fails()) {
         $messages = $validator->messages()->getMessages();
         $flash_message = '';
         foreach ($messages as $key => $value) {
             switch ($key) {
                 case 'email_addr_text':
                     $flash_message = 'Email is blank or format is invalid (use abc@domain.tld)';
                     break;
                 case 'first_name_text':
                     $flash_message = 'First Name contains invalid characters (use a-z, A-Z, 0-9, . and -)';
                     break;
                 case 'last_name_text':
                     $flash_message = 'Last Name contains invalid characters (use a-z, A-Z, 0-9, . and -)';
                     break;
                 case 'nickname_text':
                     $flash_message = 'Nickname contains invalid characters (use a-z, A-Z, 0-9, . and -)';
                     break;
                 case 'new_password':
                     $flash_message = 'Password is blank or contains invalid characters';
                     break;
             }
             break;
         }
         Session::flash('flash_message', $flash_message);
         Session::flash('flash_type', 'alert-danger');
         $_redirect = '/v1/users/' . $id . '/edit?user_type=';
         if ($is_system_admin) {
             $_redirect .= 'admin';
         } else {
             $_redirect .= 'user';
         }
         return redirect($_redirect)->withInput();
     }
     if (array_key_exists('user_type', $user_data)) {
         $is_system_admin = $user_data['user_type'];
     }
     if ($id != $user_data['user_auth']) {
         if (array_key_exists('active_ind', $user_data)) {
             $user_data['active_ind'] = 1;
         } else {
             $user_data['active_ind'] = 0;
         }
     }
     if ($is_system_admin != '') {
         $user = ServiceUser::where('email_addr_text', '=', $user_data['email_addr_text'])->first();
         if ($user != null) {
             if ($user->id != $id) {
                 return 'FAIL';
             }
         }
         $users = new ServiceUser();
     } else {
         $user = User::where('email_addr_text', '=', $user_data['email_addr_text'])->first();
         if ($user != null) {
             if ($user->id != $id) {
                 return 'FAIL';
             }
         }
         $users = new User();
     }
     if ($user_data['new_password'] != '********') {
         /** @noinspection PhpUndefinedMethodInspection */
         $user_data['password_text'] = Hash::make($user_data['new_password']);
     } else {
         unset($user_data['password_text']);
     }
     unset($user_data['_method']);
     unset($user_data['_token']);
     unset($user_data['new_password']);
     unset($user_data['user_type']);
     unset($user_data['user_auth']);
     unset($user_data['instance_manage_ind']);
     unset($user_data['instance_policy_ind']);
     try {
         $user = $users->find($id);
         $user->update($user_data);
         $result_text = 'The user "' . $user_data['first_name_text'] . ' ' . $user_data['last_name_text'] . '" was updated successfully!';
         $result_status = 'alert-success';
         Session::flash('flash_message', $result_text);
         Session::flash('flash_type', $result_status);
         return \Redirect::to($this->makeRedirectUrl('users'));
     } catch (QueryException $e) {
         //$res_text = $e->getMessage();
         Session::flash('flash_message', 'An error occurred! Check for errors and try again.');
         Session::flash('flash_type', 'alert-danger');
         $_redirect = '/v1/users/' . $id . '/edit?user_type=';
         if ($is_system_admin) {
             $_redirect .= 'admin';
         } else {
             $_redirect .= 'user';
         }
         return redirect($_redirect)->withInput();
     }
 }