diff --git a/app/Http/Controllers/MailController.php b/app/Http/Controllers/MailController.php index 5824360..b3c19b2 100644 --- a/app/Http/Controllers/MailController.php +++ b/app/Http/Controllers/MailController.php @@ -9,14 +9,12 @@ namespace App\Http\Controllers; use App\Mail\InscriptionMail; -use App\Models\LaboratoryType; use Illuminate\Support\Facades\Mail; class MailController extends Controller { public function sendInscriptionMail($member) { - $laboratories = LaboratoryType::inscription()->get(); - Mail::to($member->email)->send(new InscriptionMail($member, $laboratories)); + Mail::to($member->email)->send(new InscriptionMail($member)); } } diff --git a/app/Mail/InscriptionMail.php b/app/Mail/InscriptionMail.php index 80f0aca..82fa3ff 100644 --- a/app/Mail/InscriptionMail.php +++ b/app/Mail/InscriptionMail.php @@ -19,7 +19,7 @@ class InscriptionMail extends Mailable { use Queueable, SerializesModels; - public $member; + private $member; public function __construct($member) { diff --git a/app/Models/Member.php b/app/Models/Member.php index 2c2fe8a..b1be155 100644 --- a/app/Models/Member.php +++ b/app/Models/Member.php @@ -54,6 +54,10 @@ class Member extends Model return $this->hasOne('App\Models\CommunicationMethod', "preferred_communication_method_id", 'id'); } + public function user() { + return $this->hasOne('App\Models\User'); + } + /* ------------------------------------------------------------------------------------------------------- Static */ public static function getSemesterLetter() diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php index 3049068..0dfa9e4 100644 --- a/app/Providers/AuthServiceProvider.php +++ b/app/Providers/AuthServiceProvider.php @@ -3,6 +3,7 @@ namespace App\Providers; use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider; +use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Gate; class AuthServiceProvider extends ServiceProvider @@ -25,6 +26,8 @@ class AuthServiceProvider extends ServiceProvider { $this->registerPolicies(); - // + Auth::provider('user_provider', function ($app, array $config) { + return new UserProvider($app['hash'], $config['model']); + }); } } diff --git a/app/Providers/UserProvider.php b/app/Providers/UserProvider.php new file mode 100644 index 0000000..632df7f --- /dev/null +++ b/app/Providers/UserProvider.php @@ -0,0 +1,47 @@ +newModelQuery(); + + foreach ($credentials as $key => $value) { + if (Str::contains($key, 'password')) { + continue; + } + + if (is_array($value) || $value instanceof Arrayable) { + $query->with([$this->email_model => function ($q) use ($key, $value) { + $q->whereIn($key, $value); + }]); + } else { + $query->with([$this->email_model => function ($q) use ($key, $value) { + $q->where($key, $value); + }]); + } + } + + return $query->first(); + } +} diff --git a/app/User.php b/app/User.php index 0dd9b57..bcd7008 100644 --- a/app/User.php +++ b/app/User.php @@ -2,7 +2,6 @@ namespace App; -use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; @@ -37,8 +36,27 @@ class User extends Authenticatable 'email_verified_at' => 'datetime', ]; + protected $appends = [ + 'email', 'first_name', 'last_name' + ]; + public function member() { - return $this->hasOne("App\Models\Member"); + return $this->belongsTo("App\Models\Member"); + } + + public function getEmailAttribute() + { + return $this->member->email; + } + + public function getFirstNameAttribute() + { + return $this->member->first_name; + } + + public function getLastNameAttribute() + { + return $this->member->last_name; } } diff --git a/config/auth.php b/config/auth.php index 897dc82..04a81b2 100644 --- a/config/auth.php +++ b/config/auth.php @@ -67,7 +67,7 @@ return [ 'providers' => [ 'users' => [ - 'driver' => 'eloquent', + 'driver' => 'user_provider', 'model' => App\User::class, ], diff --git a/public/img/logo-conjure.png b/public/img/logo-conjure.png new file mode 100644 index 0000000..3697c91 Binary files /dev/null and b/public/img/logo-conjure.png differ diff --git a/resources/lang/en/mails.php b/resources/lang/en/mails.php new file mode 100644 index 0000000..a628528 --- /dev/null +++ b/resources/lang/en/mails.php @@ -0,0 +1,13 @@ + "Laboratory", + 'laboratory-instruction' => "Choose one of the following laboratories.", + 'general.laboratory-return-instruction' => "To return the finished laboratory, send us a link towards your project to the following email: conjure.etsmtl.ca.", + 'general.laboratory-deadline' => "You have up to the following date :deadline to return your finished admission laboratory.", +]; diff --git a/resources/lang/fr/mails.php b/resources/lang/fr/mails.php new file mode 100644 index 0000000..b964eff --- /dev/null +++ b/resources/lang/fr/mails.php @@ -0,0 +1,13 @@ + "Laboratoire", + 'laboratory-instruction' => "Choisissez un des laboratoire suivant.", + 'laboratory-return-instruction' => "Pour remettre le laboratoire, envoit nous un lien vers ton projet au courriel suivant: conjure.etsmtl.ca.", + 'laboratory-deadline' => "Vous avez jusqu'au :deadline pour remettre le laboratoire d'admission.", +]; diff --git a/resources/views/layouts/app-email.blade.php b/resources/views/layouts/app-email.blade.php index c9d1f07..0485838 100644 --- a/resources/views/layouts/app-email.blade.php +++ b/resources/views/layouts/app-email.blade.php @@ -21,10 +21,15 @@
+