madbob/GASdottoNG

View on GitHub
code/app/Extensions/BypassUserProvider.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace App\Extensions;

use Illuminate\Auth\EloquentUserProvider;

use Log;

use App\Contact;

class BypassUserProvider extends EloquentUserProvider
{
    private function mapEmail($email)
    {
        $contact = Contact::whereIn('type', ['email', 'skip_email'])->where('value', $email)->first();
        if (is_null($contact)) {
            Log::error('Email not found while trying to reset password: ' . $email);
            return null;
        }
        else {
            return $contact->target;
        }
    }

    public function retrieveByCredentials(array $credentials)
    {
        foreach($credentials as $key => $value) {
            if ($key == 'email') {
                return $this->mapEmail($value);
            }
        }

        Log::debug('Falling back searching user to reset password: ' . print_r($credentials, true));
        return parent::retrieveByCredentials($credentials);
    }
}