<?php
namespace App\Models;
use Illuminate\Auth\Authenticatable;
use Laravel\Lumen\Auth\Authorizable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract;
class User extends Model implements AuthenticatableContract, AuthorizableContract
{
use Authenticatable, Authorizable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'username',
];
* The attributes excluded from the model's JSON form.
protected $hidden = [
'password',
public function getMail() {
$mail = Mail::query()
->where("user_id", "=", $this->id)
->where("primary", "=", 1)
->where("status", "=", "valide")
->first();
if(is_null($mail)) {
return null;
}
return $mail->mail;
public function createMailResetToken() {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$randstring = '';
for ($i = 0; $i < 20; $i++) {
$randstring .= $characters[rand(0, strlen($characters)-1)];
$this->password_recovery_code = $randstring;