diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index 91437fc19c..1451f64265 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -6,6 +6,7 @@ use Illuminate\Foundation\Bus\DispatchesJobs; use Illuminate\Foundation\Validation\ValidatesRequests; use Illuminate\Routing\Controller as BaseController; use Preferences; +use Session; use View; /** @@ -44,6 +45,13 @@ abstract class Controller extends BaseController View::share('language', $lang); // the user is bouncing email. + $bounce = Preferences::get('bounce', 'notBounced')->data; + if ($bounce != 'notBounced') { + $email = Auth::user()->email; + $message = trans('firefly.bounce_error', ['email' => $email, 'message' => $bounce]); + Session::flash('error', $message); + } + } } } diff --git a/app/Http/Controllers/CronController.php b/app/Http/Controllers/CronController.php index d282231df2..0e29913dd5 100644 --- a/app/Http/Controllers/CronController.php +++ b/app/Http/Controllers/CronController.php @@ -2,6 +2,7 @@ namespace FireflyIII\Http\Controllers; +use FireflyIII\Models\Preference; use FireflyIII\User; /** @@ -28,23 +29,23 @@ class CronController extends Controller $fullURL = $URL . '?' . http_build_query($parameters); $data = json_decode(file_get_contents($fullURL)); $users = []; + echo "
\n"; // loop the result, if any. if (is_array($data)) { foreach ($data as $entry) { $address = $entry->email; - $users[] = User::where('email', $address); - + $user = User::where('email', $address)->first(); + if (!is_null($user)) { + $users[] = $user; + echo "Blocked " . $user->email . " because a message bounced.\n"; + // create preference: + $preference = Preference::firstOrCreate(['user_id' => $user->id, 'name' => 'bounce']); + $preference->data = $entry->reason; + $preference->save(); + } } } - - /** @var User $user */ - foreach($users as $user) { - if($user) { - // block because bounce. - } - } - } } \ No newline at end of file diff --git a/resources/lang/en/firefly.php b/resources/lang/en/firefly.php index 8dd038faa6..f6884d8cf7 100644 --- a/resources/lang/en/firefly.php +++ b/resources/lang/en/firefly.php @@ -18,6 +18,7 @@ return [ 'showEverything' => 'Show everything', 'never' => 'Never', 'search_results_for' => 'Search results for ":query"', + 'bounce_error' => 'The message sent to :email bounced.', // attachments 'nr_of_attachments' => 'One attachment|:count attachments', @@ -26,7 +27,7 @@ return [ 'update_attachment' => 'Update attachment', 'delete_attachment' => 'Delete attachment ":name"', 'attachment_deleted' => 'Deleted attachment ":name"', - 'upload_max_file_size' => 'Maximum file size: :size', + 'upload_max_file_size' => 'Maximum file size: :size', // tour: 'prev' => 'Prev', diff --git a/resources/lang/nl/firefly.php b/resources/lang/nl/firefly.php index 163d10486f..9de005c860 100644 --- a/resources/lang/nl/firefly.php +++ b/resources/lang/nl/firefly.php @@ -18,9 +18,12 @@ return [ 'showEverything' => 'Laat alles zien', 'never' => 'Nooit', 'search_results_for' => 'Zoekresultaten voor ":query"', + 'bounce_error' => 'The message sent to :email bounced.', + 'nr_of_attachments' => 'Eén bijlage|:count bijlagen', 'attachments' => 'Bijlagen', + // tour: 'prev' => 'Vorige', 'next' => 'Volgende',