diff --git a/.all-contributorsrc b/.all-contributorsrc index 60e3c89e88..5a0a631176 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -791,6 +791,15 @@ "contributions": [ "code" ] + }, + { + "login": "thakilla", + "name": "Nicolai Essig", + "avatar_url": "https://avatars0.githubusercontent.com/u/449411?v=4", + "profile": "http://www.nicolai-essig.de", + "contributions": [ + "code" + ] } ] } diff --git a/README.md b/README.md index f4840f508b..4a5172016c 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ [![Build Status](https://travis-ci.org/snipe/snipe-it.svg?branch=develop)](https://travis-ci.org/snipe/snipe-it) [![Stories in Ready](https://badge.waffle.io/snipe/snipe-it.png?label=ready+for+dev&title=Ready+for+development)](http://waffle.io/snipe/snipe-it) [![Maintenance](https://img.shields.io/maintenance/yes/2017.svg)]() [![Crowdin](https://d322cqt584bo4o.cloudfront.net/snipe-it/localized.svg)](https://crowdin.com/project/snipe-it) [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/snipe/snipe-it?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Docker Pulls](https://img.shields.io/docker/pulls/snipe/snipe-it.svg)](https://hub.docker.com/r/snipe/snipe-it/) [![Twitter Follow](https://img.shields.io/twitter/follow/snipeyhead.svg?style=social)](https://twitter.com/snipeyhead) [![Zenhub](https://img.shields.io/badge/Shipping_faster_with-ZenHub-5e60ba.svg)](https://zenhub.io) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/553ce52037fc43ea99149785afcfe641)](https://www.codacy.com/app/snipe/snipe-it?utm_source=github.com&utm_medium=referral&utm_content=snipe/snipe-it&utm_campaign=Badge_Grade) -[![All Contributors](https://img.shields.io/badge/all_contributors-85-orange.svg?style=flat-square)](#contributors) +[![All Contributors](https://img.shields.io/badge/all_contributors-86-orange.svg?style=flat-square)](#contributors) ## Snipe-IT - Open Source Asset Management System @@ -68,7 +68,7 @@ Thanks goes to all of these wonderful people ([emoji key](https://github.com/ken | [
Gil Rutkowski](http://FlashingCursor.com)
[πŸ’»](https://github.com/snipe/snipe-it/commits?author=flashingcursor "Code") | [
Desmond Morris](http://www.desmondmorris.com)
[πŸ’»](https://github.com/snipe/snipe-it/commits?author=desmondmorris "Code") | [
Nick Peelman](http://peelman.us)
[πŸ’»](https://github.com/snipe/snipe-it/commits?author=peelman "Code") | [
Abraham Vegh](https://abrahamvegh.com)
[πŸ’»](https://github.com/snipe/snipe-it/commits?author=abrahamvegh "Code") | [
Mohamed Rashid](https://github.com/rashivkp)
[πŸ“–](https://github.com/snipe/snipe-it/commits?author=rashivkp "Documentation") | [
Kasey](http://hinchk.github.io)
[πŸ’»](https://github.com/snipe/snipe-it/commits?author=HinchK "Code") | [
Brett](https://github.com/BrettFagerlund)
[⚠️](https://github.com/snipe/snipe-it/commits?author=BrettFagerlund "Tests") | | [
Jason Spriggs](http://jasonspriggs.com)
[πŸ’»](https://github.com/snipe/snipe-it/commits?author=jasonspriggs "Code") | [
Nate Felton](http://n8felton.wordpress.com)
[πŸ’»](https://github.com/snipe/snipe-it/commits?author=n8felton "Code") | [
Manasses Ferreira](http://homepages.dcc.ufmg.br/~manassesferreira)
[πŸ’»](https://github.com/snipe/snipe-it/commits?author=manassesferreira "Code") | [
Steve](https://github.com/steveelwood)
[⚠️](https://github.com/snipe/snipe-it/commits?author=steveelwood "Tests") | [
matc](http://twitter.com/matc)
[⚠️](https://github.com/snipe/snipe-it/commits?author=matc "Tests") | [
Cole R. Davis](http://www.davisracingteam.com)
[⚠️](https://github.com/snipe/snipe-it/commits?author=VanillaNinjaD "Tests") | [
gibsonjoshua55](https://github.com/gibsonjoshua55)
[πŸ’»](https://github.com/snipe/snipe-it/commits?author=gibsonjoshua55 "Code") | | [
Robin Temme](https://github.com/zwerch)
[πŸ’»](https://github.com/snipe/snipe-it/commits?author=zwerch "Code") | [
Iman](https://github.com/imanghafoori1)
[πŸ’»](https://github.com/snipe/snipe-it/commits?author=imanghafoori1 "Code") | [
Richard Hofman](https://github.com/richardhofman6)
[πŸ’»](https://github.com/snipe/snipe-it/commits?author=richardhofman6 "Code") | [
gizzmojr](https://github.com/gizzmojr)
[πŸ’»](https://github.com/snipe/snipe-it/commits?author=gizzmojr "Code") | [
Jenny Li](https://github.com/imjennyli)
[πŸ“–](https://github.com/snipe/snipe-it/commits?author=imjennyli "Documentation") | [
Geoff Young](https://github.com/GeoffYoung)
[πŸ’»](https://github.com/snipe/snipe-it/commits?author=GeoffYoung "Code") | [
Elliot Blackburn](http://www.elliotblackburn.com)
[πŸ“–](https://github.com/snipe/snipe-it/commits?author=BlueHatbRit "Documentation") | -| [
TΓ΅nis Ormisson](http://andmemasin.eu)
[πŸ’»](https://github.com/snipe/snipe-it/commits?author=TonisOrmisson "Code") | +| [
TΓ΅nis Ormisson](http://andmemasin.eu)
[πŸ’»](https://github.com/snipe/snipe-it/commits?author=TonisOrmisson "Code") | [
Nicolai Essig](http://www.nicolai-essig.de)
[πŸ’»](https://github.com/snipe/snipe-it/commits?author=thakilla "Code") | This project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind welcome! diff --git a/app/Http/Controllers/Api/SettingsController.php b/app/Http/Controllers/Api/SettingsController.php index 6cc6724e09..f8ba5942bd 100644 --- a/app/Http/Controllers/Api/SettingsController.php +++ b/app/Http/Controllers/Api/SettingsController.php @@ -7,6 +7,7 @@ use App\Http\Controllers\Controller; use App\Models\Ldap; use Validator; use App\Models\Setting; +use Mail; class SettingsController extends Controller { @@ -160,4 +161,28 @@ class SettingsController extends Controller } + /** + * Test the email configuration + * + * @author [A. Gianotto] [] + * @since [v3.0] + * @return Redirect + */ + public function ajaxTestEmail() + { + try { + Mail::send('emails.test', [], function ($m) { + $m->to(config('mail.from.address'), config('mail.from.name')); + $m->replyTo(config('mail.reply_to.address'), config('mail.reply_to.name')); + $m->subject(trans('mail.test_email')); + }); + return response()->json(['message' => 'Mail sent! '], 200); + } catch (Exception $e) { + return response()->json(['message' => $e->getMessage()], 500); + } + + } + + + } diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index dcd85d535f..2cbf5cd289 100755 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -21,6 +21,7 @@ use App\Models\User; use App\Http\Requests\SetupUserRequest; use App\Http\Requests\ImageUploadRequest; use App\Http\Requests\SettingsLdapRequest; +use App\Helpers\Helper; /** * This controller handles all actions related to Settings for @@ -136,28 +137,6 @@ class SettingsController extends Controller ->with('section', 'Pre-Flight Check'); } - /** - * Test the email configuration - * - * @author [A. Gianotto] [] - * @since [v3.0] - * @return Redirect - */ - public function ajaxTestEmail() - { - - try { - Mail::send('emails.test', [], function ($m) { - $m->to(config('mail.from.address'), config('mail.from.name')); - $m->replyTo(config('mail.reply_to.address'), config('mail.reply_to.name')); - $m->subject(trans('mail.test_email')); - }); - return 'success'; - } catch (Exception $e) { - return 'error'; - } - - } /** * Save the first admin user from Setup. @@ -1024,4 +1003,28 @@ class SettingsController extends Controller public function api() { return view('settings.api'); } + + + + /** + * Test the email configuration + * + * @author [A. Gianotto] [] + * @since [v3.0] + * @return Redirect + */ + public function ajaxTestEmail() + { + try { + Mail::send('emails.test', [], function ($m) { + $m->to(config('mail.from.address'), config('mail.from.name')); + $m->replyTo(config('mail.reply_to.address'), config('mail.reply_to.name')); + $m->subject(trans('mail.test_email')); + }); + return response()->json(Helper::formatStandardApiResponse('success', null, 'Maiol sent!')); + } catch (Exception $e) { + return response()->json(Helper::formatStandardApiResponse('success', null, $e->getMessage())); + } + + } } diff --git a/config/session.php b/config/session.php index d4dc3fedd8..7e907834be 100644 --- a/config/session.php +++ b/config/session.php @@ -109,7 +109,7 @@ return [ | */ - 'cookie' => env('COOKIE_NAME', 'sl53_session'), + 'cookie' => env('COOKIE_NAME', 'snipeitv4_session'), /* |-------------------------------------------------------------------------- diff --git a/resources/views/settings/general.blade.php b/resources/views/settings/general.blade.php index bd5584109f..ffa7ad9548 100644 --- a/resources/views/settings/general.blade.php +++ b/resources/views/settings/general.blade.php @@ -178,6 +178,27 @@ + +
+
+ {{ Form::label('login_note', 'Test Mail') }} +
+
+ + Send Test + + + +
+
+
+
+
+

This will attempt to send a test mail to {{ config('mail.from.address') }}.

+
+ +
+ - {{Form::close()}} + {{ Form::close() }} @stop @@ -208,5 +229,56 @@ }).on('ifUnchecked', function(){ $('#auto_increment_prefix').prop('disabled', true); }); + + + // Test Mail + $("#mailtest").click(function(){ + $("#mailtestrow").removeClass('text-success'); + $("#mailtestrow").removeClass('text-danger'); + $("#mailtesticon").html(''); + $("#mailteststatus").html(''); + $('#mailteststatus-error').html(''); + $("#mailtesticon").html(' Sending Test Email...'); + $.ajax({ + url: '{{ route('api.settings.mailtest') }}', + type: 'POST', + headers: { + "X-Requested-With": 'XMLHttpRequest', + "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content') + }, + data: {}, + dataType: 'json', + + success: function (data) { + $("#mailtesticon").html(''); + $("#mailteststatus").html(''); + $('#mailteststatus-error').html(''); + $("#mailteststatus").removeClass('text-danger'); + $("#mailteststatus").addClass('text-success'); + $("#mailteststatus").html(' Mail sent!'); + }, + + error: function (data) { + + $("#mailtesticon").html(''); + $("#mailteststatus").html(''); + $('#mailteststatus-error').html(''); + $("#mailteststatus").removeClass('text-success'); + $("#mailteststatus").addClass('text-danger'); + $("#mailtesticon").html(''); + $('#mailteststatus').html('Mail could not be sent.'); + if (data.responseJSON) { + $('#mailteststatus-error').html('Error: ' + data.responseJSON.messages); + } else { + console.dir(data); + } + + } + + + }); + }); + + @stop diff --git a/resources/views/setup/index.blade.php b/resources/views/setup/index.blade.php index 602b272758..033d2da058 100644 --- a/resources/views/setup/index.blade.php +++ b/resources/views/setup/index.blade.php @@ -165,13 +165,22 @@ Create a User :: - + Email - + + + Send Test - - - + + + + +
+
+
+
+

This will attempt to send a test mail to {{ config('mail.from.address') }}.

+
@@ -190,34 +199,61 @@ Create a User :: @stop diff --git a/routes/api.php b/routes/api.php index fe0f5f3250..db12229776 100644 --- a/routes/api.php +++ b/routes/api.php @@ -428,7 +428,15 @@ Route::group(['prefix' => 'v1','namespace' => 'Api'], function () { 'as' => 'api.settings.ldaptestlogin', 'uses' => 'SettingsController@ldaptestlogin' ]); - + + Route::post( + 'settings/mailtest', + [ + 'as' => 'api.settings.mailtest', + 'uses' => 'SettingsController@ajaxTestEmail' ] + ); + + Route::resource('settings', 'SettingsController', [ 'names' =>