54 lines
2.1 KiB
PHP
54 lines
2.1 KiB
PHP
<?php
|
|
session_start();
|
|
require '../../../assets/utils/db_auth.php';
|
|
require '../../../assets/utils/classes/FileUploader.php';
|
|
require '../../../assets/utils/classes/UserManager.php';
|
|
|
|
try {
|
|
$um = new UserManager($pdo1, $company_id, $user_id);
|
|
|
|
// ── Fetch current picture filename from DB ────────────────
|
|
$current_picture = $um->getProfilePicture();
|
|
|
|
// ── Handle new picture upload ─────────────────────────────
|
|
$db_picture = $current_picture;
|
|
|
|
if (!empty($_FILES['profile_picture']['name'])) {
|
|
|
|
// Remove old file if exists
|
|
if (!empty($current_picture)) {
|
|
$old_path = $include_url . 'uploads/profile/' . $current_picture;
|
|
if (file_exists($old_path)) unlink($old_path);
|
|
}
|
|
|
|
$uploader = new FileUploader($include_url . 'uploads/profile/');
|
|
$errors = $uploader->upload('profile_picture');
|
|
|
|
if (!empty($errors)) {
|
|
$answer['message'] = $errors[0];
|
|
http_response_code(400);
|
|
exit(json_encode($answer));
|
|
}
|
|
|
|
$db_picture = $uploader->getUploadedFiles()[0] ?? '';
|
|
}
|
|
|
|
// ── Update user record ────────────────────────────────────
|
|
$um->updateProfile($data, $db_picture);
|
|
|
|
// ── Refresh session ───────────────────────────────────────
|
|
$_SESSION['login_name'] = trim($data['name'] ?? '');
|
|
$_SESSION['login_surname'] = trim($data['surname'] ?? '');
|
|
$_SESSION['login_profile_picture'] = $db_picture;
|
|
|
|
$answer['success'] = 1;
|
|
$answer['message'] = 'Profile updated.';
|
|
$answer['profile_picture'] = $db_picture;
|
|
|
|
} catch (Exception $e) {
|
|
$answer['message'] = 'Failed to update profile.';
|
|
http_response_code(500);
|
|
}
|
|
|
|
exit(json_encode($answer));
|