Compare commits

..

3 Commits

Author SHA1 Message Date
solocla 247f154cc8 fixing 310325 2025-03-31 14:25:58 +02:00
solocla e683a81f46 adjustment fixing 2025-03-31 14:22:38 +02:00
solocla cf7068d7c6 change logo 2025-03-31 14:10:46 +02:00
5 changed files with 60 additions and 29 deletions
+2 -2
View File
@@ -3,7 +3,7 @@
/public/hot /public/hot
/public/storage /public/storage
/storage/*.key /storage/*.key
/vendor
/.idea /.idea
/.fleet /.fleet
/.vscode /.vscode
@@ -12,7 +12,7 @@ Homestead.json
Homestead.yaml Homestead.yaml
npm-debug.log npm-debug.log
yarn-error.log yarn-error.log
.env
.phpunit.result.cache .phpunit.result.cache
.php_cs.cache .php_cs.cache
/documentation /documentation
@@ -44,7 +44,7 @@ class LoginController extends Controller
$throttles = (bool) setting('throttle_enabled'); $throttles = (bool) setting('throttle_enabled');
//Redirect URL that can be passed as hidden field. //Redirect URL that can be passed as hidden field.
$to = $request->has('to') ? '?to='.$request->get('to') : ''; $to = $request->has('to') ? '?to=' . $request->get('to') : '';
if ($throttles && $this->hasTooManyLoginAttempts($request)) { if ($throttles && $this->hasTooManyLoginAttempts($request)) {
return $this->sendLockoutResponse($request); return $this->sendLockoutResponse($request);
@@ -60,20 +60,20 @@ class LoginController extends Controller
$this->incrementLoginAttempts($request); $this->incrementLoginAttempts($request);
} }
return redirect()->to('login'.$to) return redirect()->to('login' . $to)
->withErrors(trans('auth.failed')); ->withErrors(trans('auth.failed'));
} }
$user = Auth::getProvider()->retrieveByCredentials($credentials); $user = Auth::getProvider()->retrieveByCredentials($credentials);
if ($user->isBanned()) { if ($user->isBanned()) {
return redirect()->to('login'.$to) return redirect()->to('login' . $to)
->withErrors(trans('auth.banned')); ->withErrors(trans('auth.banned'));
} }
$maxSessions = setting('max_active_sessions'); $maxSessions = setting('max_active_sessions');
if ($maxSessions && $sessions->getActiveSessionsCount($user->id) >= $maxSessions) { if ($maxSessions && $sessions->getActiveSessionsCount($user->id) >= $maxSessions) {
return redirect()->to('login'.$to) return redirect()->to('login' . $to)
->withErrors(trans('auth.max_sessions_reached')); ->withErrors(trans('auth.max_sessions_reached'));
} }
@@ -107,15 +107,14 @@ class LoginController extends Controller
} }
// Reindirizza in base al ruolo // Reindirizza in base al ruolo
if ($user->hasRole('Admin')) { if ($user->hasRole('Admin')) {
return redirect()->to('userarea/admin.php'); return redirect()->to('userarea/import_dashboard.php');
} elseif ($user->hasRole('User')) { } elseif ($user->hasRole('User')) {
return redirect()->to('userarea/index.php'); return redirect()->to('userarea/index.php');
} }
// Se il ruolo non è specificato, reindirizza alla home predefinita
return redirect()->intended('/');
// Se il ruolo non è specificato, reindirizza alla home predefinita
return redirect()->intended('/');
} }
protected function logoutAndRedirectToTokenPage(Request $request, $user, ?string $redirectPage): RedirectResponse protected function logoutAndRedirectToTokenPage(Request $request, $user, ?string $redirectPage): RedirectResponse
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 10 KiB

+1 -1
View File
@@ -50,7 +50,7 @@
<div class="card-body"> <div class="card-body">
<div class="d-flex align-items-center"> <div class="d-flex align-items-center">
<div> <div>
<p class="mb-0 text-dark">Bounce Rate</p> <p class="mb-0 text-dark">Other Stats</p>
<h4 class="my-1 text-dark">34.46%</h4> <h4 class="my-1 text-dark">34.46%</h4>
<p class="mb-0 font-13 text-dark"><i class="bx bxs-down-arrow align-middle"></i>12.2% from last week</p> <p class="mb-0 font-13 text-dark"><i class="bx bxs-down-arrow align-middle"></i>12.2% from last week</p>
</div> </div>
+46 -14
View File
@@ -40,10 +40,10 @@ if (!is_writable($uploadDir)) {
exit; exit;
} }
// Verifica che il file sia un'immagine // Verifica che il file sia un'immagine (inclusi HEIC/HEIF)
$allowedTypes = ['image/jpeg', 'image/png', 'image/gif']; $allowedTypes = ['image/jpeg', 'image/png', 'image/gif', 'image/heic', 'image/heif'];
if (!in_array($photo['type'], $allowedTypes)) { if (!in_array($photo['type'], $allowedTypes)) {
echo json_encode(['success' => false, 'message' => 'Il file deve essere un\'immagine (JPEG, PNG, GIF)']); echo json_encode(['success' => false, 'message' => 'Il file deve essere un\'immagine (JPEG, PNG, GIF, HEIC)']);
exit; exit;
} }
@@ -56,24 +56,56 @@ if (!file_exists($photo['tmp_name']) || !is_uploaded_file($photo['tmp_name'])) {
// Rinomina il file: idriga-timestamp-nomeoriginale.estensione // Rinomina il file: idriga-timestamp-nomeoriginale.estensione
$timestamp = date('YmdHis'); $timestamp = date('YmdHis');
$originalName = pathinfo($photo['name'], PATHINFO_FILENAME); $originalName = pathinfo($photo['name'], PATHINFO_FILENAME);
$extension = pathinfo($photo['name'], PATHINFO_EXTENSION); $extension = strtolower(pathinfo($photo['name'], PATHINFO_EXTENSION));
$newFileName = "{$iddatadb}-{$timestamp}-{$originalName}.{$extension}";
$destination = $uploadDir . $newFileName; // Se il file è HEIC/HEIF, convertilo in JPEG
if (in_array($photo['type'], ['image/heic', 'image/heif'])) {
// Verifica che la libreria GD sia disponibile
if (!extension_loaded('gd')) {
echo json_encode(['success' => false, 'message' => 'La libreria GD non è disponibile per convertire il file HEIC']);
exit;
}
// Carica il file HEIC
$image = imagecreatefromstring(file_get_contents($photo['tmp_name']));
if ($image === false) {
echo json_encode(['success' => false, 'message' => 'Impossibile caricare il file HEIC']);
exit;
}
// Crea un nuovo nome per il file JPEG
$newFileName = "{$iddatadb}-{$timestamp}-{$originalName}.jpg";
$destination = $uploadDir . $newFileName;
// Salva l'immagine come JPEG
if (!imagejpeg($image, $destination, 90)) { // 90 è la qualità JPEG
imagedestroy($image);
echo json_encode(['success' => false, 'message' => 'Errore durante la conversione del file HEIC in JPEG']);
exit;
}
// Libera la memoria
imagedestroy($image);
} else {
// Per i formati non HEIC, usa il nome e l'estensione originali
$newFileName = "{$iddatadb}-{$timestamp}-{$originalName}.{$extension}";
$destination = $uploadDir . $newFileName;
// Salva il file
if (!move_uploaded_file($photo['tmp_name'], $destination)) {
$error = error_get_last();
echo json_encode(['success' => false, 'message' => 'Errore durante il caricamento del file: ' . (isset($error['message']) ? $error['message'] : 'Sconosciuto')]);
exit;
}
}
// Debug: verifica i percorsi // Debug: verifica i percorsi
error_log("Upload directory: $uploadDir"); error_log("Upload directory: $uploadDir");
error_log("Destination: $destination"); error_log("Destination: $destination");
error_log("Temp file: " . $photo['tmp_name']); error_log("Temp file: " . $photo['tmp_name']);
// Salva il file
if (!move_uploaded_file($photo['tmp_name'], $destination)) {
$error = error_get_last();
echo json_encode(['success' => false, 'message' => 'Errore durante il caricamento del file: ' . (isset($error['message']) ? $error['message'] : 'Sconosciuto')]);
exit;
}
// Salva il riferimento nel database // Salva il riferimento nel database
$stmt = $pdo->prepare("INSERT INTO datadb_photos (iddatadb, file_path, file_name, uploaded_by) VALUES (?, ?, ?, ?)"); $stmt = $pdo->prepare("INSERT INTO datadb_photos (iddatadb, file_path, file_name, uploaded_by) VALUES (?, ?, ?, ?)");
$stmt->execute([$iddatadb, $newFileName, $photo['name'], $iduserlogin]); $stmt->execute([$iddatadb, $newFileName, $newFileName, $iduserlogin]);
echo json_encode(['success' => true, 'message' => 'Foto caricata con successo']); echo json_encode(['success' => true, 'message' => 'Foto caricata con successo']);