update profile
This commit is contained in:
parent
a02a6b2c4c
commit
0645a0c675
1
.gitignore
vendored
1
.gitignore
vendored
@ -33,6 +33,7 @@ yarn-error.log
|
|||||||
/public/userarea/*.log
|
/public/userarea/*.log
|
||||||
/public/userarea/*.txt
|
/public/userarea/*.txt
|
||||||
/public/userarea/*_response.json
|
/public/userarea/*_response.json
|
||||||
|
/public/userarea/customfield_values_response.json
|
||||||
/public/userarea/error_log.txt
|
/public/userarea/error_log.txt
|
||||||
/public/userarea/import_debug.log
|
/public/userarea/import_debug.log
|
||||||
/public/userarea/last_url.txt
|
/public/userarea/last_url.txt
|
||||||
|
|||||||
1994
liquibase/changelog/db.changelog-master.yaml
Normal file
1994
liquibase/changelog/db.changelog-master.yaml
Normal file
File diff suppressed because it is too large
Load Diff
6
liquibase/liquibase.properties
Normal file
6
liquibase/liquibase.properties
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# DB LOCALE (Windows 11)
|
||||||
|
url=jdbc:mysql://localhost:3306/trfcertest
|
||||||
|
username=solocla
|
||||||
|
password=!Massarosa2
|
||||||
|
driver=com.mysql.cj.jdbc.Driver
|
||||||
|
changeLogFile=liquibase/changelog/db.changelog-master.yaml
|
||||||
File diff suppressed because one or more lines are too long
@ -26,6 +26,8 @@ $nameuser = $user->present()->first_name;
|
|||||||
$surnameuser = $user->present()->last_name;
|
$surnameuser = $user->present()->last_name;
|
||||||
$emailuser = $user->present()->email;
|
$emailuser = $user->present()->email;
|
||||||
$avatar = $user->present()->avatar;
|
$avatar = $user->present()->avatar;
|
||||||
|
$lims_user_id = $user->lims_user_id ?? '';
|
||||||
|
$lims_global_user_id = $user->lims_global_user_id ?? '';
|
||||||
|
|
||||||
$kindofrole = $user->present()->role_id;
|
$kindofrole = $user->present()->role_id;
|
||||||
|
|
||||||
|
|||||||
@ -6,47 +6,88 @@ if (!Auth::check()) {
|
|||||||
redirectTo('../public/login');
|
redirectTo('../public/login');
|
||||||
}
|
}
|
||||||
|
|
||||||
$user = Auth::user();
|
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
|
||||||
$id = $_POST['iduserlogin'];
|
|
||||||
|
|
||||||
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|
||||||
$first_name = $_POST['first_name'];
|
|
||||||
$last_name = $_POST['last_name'];
|
|
||||||
$email = $_POST['email'];
|
|
||||||
$password = $_POST['password'] ?: null;
|
|
||||||
|
|
||||||
$db = DBHandlerSelect::getInstance()->getConnection();
|
|
||||||
|
|
||||||
// Gestione avatar
|
|
||||||
$avatar = $user->present()->avatar;
|
|
||||||
if (isset($_FILES['avatar']) && $_FILES['avatar']['error'] === UPLOAD_ERR_OK) {
|
|
||||||
$avatar = time() . '_' . basename($_FILES['avatar']['name']);
|
|
||||||
$uploadDir = __DIR__ . '/../../public/upload/users/';
|
|
||||||
if (!is_dir($uploadDir)) {
|
|
||||||
mkdir($uploadDir, 0755, true);
|
|
||||||
}
|
|
||||||
move_uploaded_file($_FILES['avatar']['tmp_name'], $uploadDir . $avatar);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Aggiornamento dati
|
|
||||||
$sql = "UPDATE auth_users SET first_name = ?, last_name = ?, email = ?, avatar = ? WHERE id = ?";
|
|
||||||
$stmt = $db->prepare($sql);
|
|
||||||
$stmt->execute([$first_name, $last_name, $email, $avatar, $id]);
|
|
||||||
|
|
||||||
// Aggiornamento password se fornita
|
|
||||||
if ($password) {
|
|
||||||
$hashedPassword = password_hash($password, PASSWORD_BCRYPT);
|
|
||||||
$sql = "UPDATE auth_users SET password = ? WHERE id = ?";
|
|
||||||
$stmt = $db->prepare($sql);
|
|
||||||
$stmt->execute([$hashedPassword, $id]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Aggiorna la sessione con i nuovi dati
|
|
||||||
$_SESSION["nameuser"] = $first_name;
|
|
||||||
$_SESSION["surnameuser"] = $last_name;
|
|
||||||
$_SESSION["emailuser"] = $email;
|
|
||||||
$_SESSION["photouser"] = $avatar;
|
|
||||||
|
|
||||||
header('Location: user-profile.php');
|
header('Location: user-profile.php');
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
$id = isset($_POST['iduserlogin']) ? (int)$_POST['iduserlogin'] : 0;
|
||||||
|
|
||||||
|
$first_name = trim($_POST['first_name'] ?? '');
|
||||||
|
$last_name = trim($_POST['last_name'] ?? '');
|
||||||
|
$email = trim($_POST['email'] ?? '');
|
||||||
|
$password = trim($_POST['password'] ?? '');
|
||||||
|
|
||||||
|
$lims_user_id = isset($_POST['lims_user_id']) && $_POST['lims_user_id'] !== ''
|
||||||
|
? (int)$_POST['lims_user_id']
|
||||||
|
: null;
|
||||||
|
|
||||||
|
$lims_global_user_id = isset($_POST['lims_global_user_id']) && $_POST['lims_global_user_id'] !== ''
|
||||||
|
? (int)$_POST['lims_global_user_id']
|
||||||
|
: null;
|
||||||
|
|
||||||
|
if ($id <= 0) {
|
||||||
|
die('Invalid user ID');
|
||||||
|
}
|
||||||
|
|
||||||
|
$db = DBHandlerSelect::getInstance()->getConnection();
|
||||||
|
|
||||||
|
// Current avatar
|
||||||
|
$avatar = $user->present()->avatar;
|
||||||
|
|
||||||
|
// Avatar upload
|
||||||
|
if (isset($_FILES['avatar']) && $_FILES['avatar']['error'] === UPLOAD_ERR_OK) {
|
||||||
|
$originalName = basename($_FILES['avatar']['name']);
|
||||||
|
$safeName = preg_replace('/[^A-Za-z0-9_\.-]/', '_', $originalName);
|
||||||
|
$avatar = time() . '_' . $safeName;
|
||||||
|
|
||||||
|
$uploadDir = __DIR__ . '/../../public/upload/users/';
|
||||||
|
if (!is_dir($uploadDir)) {
|
||||||
|
mkdir($uploadDir, 0755, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
move_uploaded_file($_FILES['avatar']['tmp_name'], $uploadDir . $avatar);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update main user data
|
||||||
|
$sql = "UPDATE auth_users
|
||||||
|
SET first_name = ?,
|
||||||
|
last_name = ?,
|
||||||
|
email = ?,
|
||||||
|
avatar = ?,
|
||||||
|
lims_user_id = ?,
|
||||||
|
lims_global_user_id = ?
|
||||||
|
WHERE id = ?";
|
||||||
|
$stmt = $db->prepare($sql);
|
||||||
|
$stmt->execute([
|
||||||
|
$first_name,
|
||||||
|
$last_name,
|
||||||
|
$email,
|
||||||
|
$avatar,
|
||||||
|
$lims_user_id,
|
||||||
|
$lims_global_user_id,
|
||||||
|
$id
|
||||||
|
]);
|
||||||
|
|
||||||
|
// Update password only if provided
|
||||||
|
if ($password !== '') {
|
||||||
|
$hashedPassword = password_hash($password, PASSWORD_BCRYPT);
|
||||||
|
|
||||||
|
$sql = "UPDATE auth_users SET password = ? WHERE id = ?";
|
||||||
|
$stmt = $db->prepare($sql);
|
||||||
|
$stmt->execute([$hashedPassword, $id]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update session
|
||||||
|
if (session_status() === PHP_SESSION_NONE) {
|
||||||
|
session_start();
|
||||||
|
}
|
||||||
|
|
||||||
|
$_SESSION["nameuser"] = $first_name;
|
||||||
|
$_SESSION["surnameuser"] = $last_name;
|
||||||
|
$_SESSION["emailuser"] = $email;
|
||||||
|
$_SESSION["photouser"] = $avatar;
|
||||||
|
|
||||||
|
header('Location: user-profile.php');
|
||||||
|
exit;
|
||||||
|
|||||||
@ -48,6 +48,17 @@
|
|||||||
<label for="email" class="form-label">Email</label>
|
<label for="email" class="form-label">Email</label>
|
||||||
<input type="email" class="form-control" id="email" name="email" value="<?= htmlspecialchars($emailuser); ?>" required>
|
<input type="email" class="form-control" id="email" name="email" value="<?= htmlspecialchars($emailuser); ?>" required>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="lims_user_id" class="form-label">Accettatore</label>
|
||||||
|
<input type="number" class="form-control" id="lims_user_id" name="lims_user_id" value="<?= htmlspecialchars($lims_user_id ?? ''); ?>">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="lims_global_user_id" class="form-label">LIMS Global</label>
|
||||||
|
<input type="number" class="form-control" id="lims_global_user_id" name="lims_global_user_id" value="<?= htmlspecialchars($lims_global_user_id ?? ''); ?>">
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label for="avatar" class="form-label">Profile Picture</label>
|
<label for="avatar" class="form-label">Profile Picture</label>
|
||||||
<input type="file" class="form-control" id="avatar" name="avatar">
|
<input type="file" class="form-control" id="avatar" name="avatar">
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user