1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-14 07:02:34 +01:00
invoiceninja/app/Livewire/Profile/Settings/General.php

85 lines
1.9 KiB
PHP
Raw Normal View History

2020-09-24 13:29:41 +02:00
<?php
/**
* Invoice Ninja (https://invoiceninja.com).
*
* @link https://github.com/invoiceninja/invoiceninja source repository
*
2023-01-28 23:21:40 +01:00
* @copyright Copyright (c) 2023. Invoice Ninja LLC (https://invoiceninja.com)
2020-09-24 13:29:41 +02:00
*
2021-06-16 08:58:16 +02:00
* @license https://www.elastic.co/licensing/elastic-license
2020-09-24 13:29:41 +02:00
*/
2023-12-13 17:52:49 +01:00
namespace App\Livewire\Profile\Settings;
2020-09-24 13:29:41 +02:00
2020-09-24 14:40:06 +02:00
use Illuminate\Support\Facades\Hash;
2020-09-24 13:29:41 +02:00
use Livewire\Component;
class General extends Component
{
public $profile;
public $first_name;
2020-09-24 13:29:41 +02:00
public $last_name;
2020-09-24 13:29:41 +02:00
public $email;
2020-09-24 13:29:41 +02:00
public $phone;
2020-09-24 13:29:41 +02:00
public $password;
2020-09-24 13:29:41 +02:00
public $password_confirmation;
public $saved;
protected $rules = [
2021-01-15 14:07:33 +01:00
'first_name' => ['sometimes'],
'last_name' => ['sometimes'],
2020-09-24 13:29:41 +02:00
'email' => ['required', 'email'],
'phone' => ['sometimes'],
2020-09-24 13:29:41 +02:00
];
public function mount()
{
$profile = auth()->guard('contact')->user();
2020-09-24 13:29:41 +02:00
$this->fill([
'profile' => $profile,
'first_name' => $profile->first_name,
'last_name' => $profile->last_name,
'email' => $profile->email,
'phone' => $profile->phone,
'saved' => ctrans('texts.save'),
]);
}
public function render()
{
return render('profile.settings.general');
}
public function submit()
{
if ($this->profile->email != $this->email) {
$this->rules['email'][] = 'unique:client_contacts,email';
}
if (! empty($this->password)) {
2020-09-24 13:29:41 +02:00
$this->rules['password'] = ['sometimes', 'nullable', 'required', 'min:6', 'confirmed'];
}
$data = $this->validate($this->rules);
if (! empty($this->password)) {
2020-11-25 15:19:52 +01:00
$this->profile->password = Hash::make($this->password);
}
2020-09-24 13:29:41 +02:00
$this->profile
->fill($data)
->save();
$this->saved = ctrans('texts.saved_at', ['time' => now()->toTimeString()]);
}
}