mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 08:56:36 +02:00
MDL-69342 core_user: fixed user picture updating
When editing a user and checking the 'Delete picture' checkbox to delete the old picture and uploading a new one at a time, the new one didn't appear in the user profile. This happened due to the 'if/else' statement in the 'core_user::update_picture()' method which allowed either to delete the old picture or to upload a new one. The fix removes the 'else' part of the 'if/else' statement to force checking for a new uploaded picture no matter if a user checked the 'Delete picture' checkbox or not.
This commit is contained in:
parent
e2ef786003
commit
141216f94c
1 changed files with 27 additions and 25 deletions
|
@ -601,34 +601,36 @@ class core_user {
|
||||||
// The user has chosen to delete the selected users picture.
|
// The user has chosen to delete the selected users picture.
|
||||||
$fs->delete_area_files($context->id, 'user', 'icon'); // Drop all images in area.
|
$fs->delete_area_files($context->id, 'user', 'icon'); // Drop all images in area.
|
||||||
$newpicture = 0;
|
$newpicture = 0;
|
||||||
|
}
|
||||||
|
|
||||||
} else {
|
// Save newly uploaded file, this will avoid context mismatch for newly created users.
|
||||||
// Save newly uploaded file, this will avoid context mismatch for newly created users.
|
if (!isset($usernew->imagefile)) {
|
||||||
file_save_draft_area_files($usernew->imagefile, $context->id, 'user', 'newicon', 0, $filemanageroptions);
|
$usernew->imagefile = 0;
|
||||||
if (($iconfiles = $fs->get_area_files($context->id, 'user', 'newicon')) && count($iconfiles) == 2) {
|
}
|
||||||
// Get file which was uploaded in draft area.
|
file_save_draft_area_files($usernew->imagefile, $context->id, 'user', 'newicon', 0, $filemanageroptions);
|
||||||
foreach ($iconfiles as $file) {
|
if (($iconfiles = $fs->get_area_files($context->id, 'user', 'newicon')) && count($iconfiles) == 2) {
|
||||||
if (!$file->is_directory()) {
|
// Get file which was uploaded in draft area.
|
||||||
break;
|
foreach ($iconfiles as $file) {
|
||||||
}
|
if (!$file->is_directory()) {
|
||||||
}
|
break;
|
||||||
// Copy file to temporary location and the send it for processing icon.
|
|
||||||
if ($iconfile = $file->copy_content_to_temp()) {
|
|
||||||
// There is a new image that has been uploaded.
|
|
||||||
// Process the new image and set the user to make use of it.
|
|
||||||
// NOTE: Uploaded images always take over Gravatar.
|
|
||||||
$newpicture = (int)process_new_icon($context, 'user', 'icon', 0, $iconfile);
|
|
||||||
// Delete temporary file.
|
|
||||||
@unlink($iconfile);
|
|
||||||
// Remove uploaded file.
|
|
||||||
$fs->delete_area_files($context->id, 'user', 'newicon');
|
|
||||||
} else {
|
|
||||||
// Something went wrong while creating temp file.
|
|
||||||
// Remove uploaded file.
|
|
||||||
$fs->delete_area_files($context->id, 'user', 'newicon');
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Copy file to temporary location and the send it for processing icon.
|
||||||
|
if ($iconfile = $file->copy_content_to_temp()) {
|
||||||
|
// There is a new image that has been uploaded.
|
||||||
|
// Process the new image and set the user to make use of it.
|
||||||
|
// NOTE: Uploaded images always take over Gravatar.
|
||||||
|
$newpicture = (int)process_new_icon($context, 'user', 'icon', 0, $iconfile);
|
||||||
|
// Delete temporary file.
|
||||||
|
@unlink($iconfile);
|
||||||
|
// Remove uploaded file.
|
||||||
|
$fs->delete_area_files($context->id, 'user', 'newicon');
|
||||||
|
} else {
|
||||||
|
// Something went wrong while creating temp file.
|
||||||
|
// Remove uploaded file.
|
||||||
|
$fs->delete_area_files($context->id, 'user', 'newicon');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($newpicture != $user->picture) {
|
if ($newpicture != $user->picture) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue