sistemazione reports - cambio password - profilo utente
This commit is contained in:
@@ -4,11 +4,14 @@ namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\ActivityLog;
|
||||
use App\Models\EmailSetting;
|
||||
use App\Models\User;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Facades\Password;
|
||||
use Illuminate\Validation\ValidationException;
|
||||
use Symfony\Component\Mime\Address;
|
||||
|
||||
class AuthController extends Controller
|
||||
{
|
||||
@@ -32,11 +35,9 @@ class AuthController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
if (Auth::attempt($credentials)) {
|
||||
if (Auth::attempt($credentials, $request->has('remember'))) {
|
||||
$request->session()->regenerate();
|
||||
|
||||
ActivityLog::logLogin();
|
||||
|
||||
return redirect()->intended('/dashboard');
|
||||
}
|
||||
|
||||
@@ -45,63 +46,6 @@ class AuthController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
public function showRegisterForm()
|
||||
{
|
||||
return view('auth.register');
|
||||
}
|
||||
|
||||
public function register(Request $request)
|
||||
{
|
||||
$data = $request->validate([
|
||||
'name' => 'required|string|max:255',
|
||||
'email' => 'required|email|unique:users',
|
||||
'password' => 'required|string|min:8|confirmed',
|
||||
]);
|
||||
|
||||
$isFirstUser = User::count() === 0;
|
||||
|
||||
$defaultPermissions = [
|
||||
'individui' => 1,
|
||||
'gruppi' => 1,
|
||||
'eventi' => 1,
|
||||
'documenti' => 1,
|
||||
'mailing' => 1,
|
||||
'viste' => 1,
|
||||
'report' => 0,
|
||||
'settings' => 0,
|
||||
];
|
||||
|
||||
if ($isFirstUser) {
|
||||
$defaultPermissions = [
|
||||
'individui' => 2,
|
||||
'gruppi' => 2,
|
||||
'eventi' => 2,
|
||||
'documenti' => 2,
|
||||
'mailing' => 2,
|
||||
'viste' => 2,
|
||||
'report' => 0,
|
||||
'settings' => 0,
|
||||
];
|
||||
}
|
||||
|
||||
$user = User::create([
|
||||
'name' => $data['name'],
|
||||
'email' => $data['email'],
|
||||
'password' => Hash::make($data['password']),
|
||||
'is_admin' => $isFirstUser,
|
||||
'status' => User::STATUS_ACTIVE,
|
||||
'permissions' => $defaultPermissions,
|
||||
]);
|
||||
|
||||
ActivityLog::log('create', 'utenti', 'Registrato nuovo utente: ' . $user->name, [
|
||||
'user_id' => $user->id,
|
||||
]);
|
||||
|
||||
Auth::login($user);
|
||||
|
||||
return redirect('/dashboard');
|
||||
}
|
||||
|
||||
public function logout(Request $request)
|
||||
{
|
||||
Auth::logout();
|
||||
@@ -109,4 +53,53 @@ class AuthController extends Controller
|
||||
$request->session()->regenerateToken();
|
||||
return redirect('/');
|
||||
}
|
||||
}
|
||||
|
||||
public function showForgotForm()
|
||||
{
|
||||
return view('auth.forgot-password');
|
||||
}
|
||||
|
||||
public function sendResetLink(Request $request)
|
||||
{
|
||||
$request->validate(['email' => 'required|email']);
|
||||
|
||||
$user = User::where('email', $request->email)->first();
|
||||
if (!$user) {
|
||||
return back()->withErrors(['email' => 'Nessun account trovato con questa email.']);
|
||||
}
|
||||
|
||||
$token = Password::broker()->createToken($user);
|
||||
$user->sendPasswordResetNotification($token);
|
||||
|
||||
return back()->with('success', 'Ti abbiamo inviato un link per il reset della password via email.');
|
||||
}
|
||||
|
||||
public function showResetForm(string $token)
|
||||
{
|
||||
return view('auth.reset-password', ['token' => $token]);
|
||||
}
|
||||
|
||||
public function reset(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'token' => 'required',
|
||||
'email' => 'required|email',
|
||||
'password' => 'required|string|min:8|confirmed',
|
||||
]);
|
||||
|
||||
$status = Password::broker()->reset(
|
||||
$request->only('email', 'password', 'password_confirmation', 'token'),
|
||||
function (User $user, string $password) {
|
||||
$user->forceFill([
|
||||
'password' => Hash::make($password),
|
||||
])->save();
|
||||
}
|
||||
);
|
||||
|
||||
if ($status === Password::PASSWORD_RESET) {
|
||||
return redirect()->route('login')->with('success', 'Password reimpostata con successo. Accedi con la nuova password.');
|
||||
}
|
||||
|
||||
return back()->withErrors(['email' => [__($status)]]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user