feat: Implement client authentication and pre-fill functionality
- Added AuthController for client login and token management. - Introduced AuthGate for handling authentication state and login UI. - Updated API to support fetching client data for pre-filling forms. - Modified App.vue to pre-fill client information if logged in. - Enhanced client model to include username and password fields. - Created migration for adding username and password to clients table. - Added utility for generating secure usernames and passwords. - Updated frontend to handle client tokens for pre-filling checkout forms. - Removed old CSS file and updated HTML references to new assets. - Added StatsOverview widget for displaying client and quote statistics. - Improved error handling and user feedback in the login process.
This commit is contained in:
@@ -4,16 +4,28 @@ namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
use Laravel\Sanctum\HasApiTokens;
|
||||
|
||||
class Cliente extends Model
|
||||
{
|
||||
use HasApiTokens;
|
||||
|
||||
protected $table = 'clienti';
|
||||
|
||||
protected $fillable = [
|
||||
'username', 'password',
|
||||
'nome', 'cognome', 'ragione_sociale', 'email', 'telefono',
|
||||
'indirizzo', 'cap', 'citta', 'provincia', 'note',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'password',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'password' => 'hashed',
|
||||
];
|
||||
|
||||
public function preventivi(): HasMany
|
||||
{
|
||||
return $this->hasMany(Preventivo::class);
|
||||
@@ -25,6 +37,8 @@ class Cliente extends Model
|
||||
return $this->ragione_sociale;
|
||||
}
|
||||
|
||||
return trim("{$this->nome} {$this->cognome}");
|
||||
$nome = trim("{$this->nome} {$this->cognome}");
|
||||
|
||||
return $nome !== '' ? $nome : $this->username;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user