-
-
Notifications
You must be signed in to change notification settings - Fork 4.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix deletion of User when system link are used in him user folder #38429
Fix deletion of User when system link are used in him user folder #38429
Conversation
Signed-off-by: Lorenzo Tanganelli <lorenzo.tanganelli@hotmail.it>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Makes sense 👍
/backport to stable27 |
/backport to stable26 |
/backport to stable25 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good , thanks! Is there an issue for this? If so, please link it!
I haven't open it, just put a PR. Lett me know if issue is required. |
The backport to stable27 failed. Please do this backport manually. # Switch to the target branch and update it
git checkout stable27
git pull origin/stable27
# Create the new backport branch
git checkout -b fix/foo-stable27
# Cherry pick the change from the commit sha1 of the change against the default branch
# This might cause conflicts. Resolve them.
git cherry-pick abc123
# Push the cherry pick commit to the remote repository and open a pull request
git push origin fix/foo-stable27 More info at https://docs.nextcloud.com/server/latest/developer_manual/getting_started/development_process.html#manual-backport |
The backport to stable26 failed. Please do this backport manually. # Switch to the target branch and update it
git checkout stable26
git pull origin/stable26
# Create the new backport branch
git checkout -b fix/foo-stable26
# Cherry pick the change from the commit sha1 of the change against the default branch
# This might cause conflicts. Resolve them.
git cherry-pick abc123
# Push the cherry pick commit to the remote repository and open a pull request
git push origin fix/foo-stable26 More info at https://docs.nextcloud.com/server/latest/developer_manual/getting_started/development_process.html#manual-backport |
The backport to stable25 failed. Please do this backport manually. # Switch to the target branch and update it
git checkout stable25
git pull origin/stable25
# Create the new backport branch
git checkout -b fix/foo-stable25
# Cherry pick the change from the commit sha1 of the change against the default branch
# This might cause conflicts. Resolve them.
git cherry-pick abc123
# Push the cherry pick commit to the remote repository and open a pull request
git push origin fix/foo-stable25 More info at https://docs.nextcloud.com/server/latest/developer_manual/getting_started/development_process.html#manual-backport |
Signed-off-by: Lorenzo Tanganelli lorenzo.tanganelli@hotmail.it
Summary
In a localstorage with
localstorage.allowsymlinks
enabled, if we add a symlink in a folder under<user_id>
data and then we try to delete this<user_id>
, we receive a delete error and user is not deleted completly because these folder are recognized as a dir and not symlink.This beacase in the
lib/private/Files/Storage/Local.php
at line 140 it's used the functionisDir()
that , as per php documentation,->isDir()
return TRUE for symlinks of directories. Better usegetType()
method instead, which returns 'link' for symlinks.`To easy fix it, without rewrite function with getType(), we can simply invert
elseif
in that function, checking dir after the check ofisFile
orisLink
.In that way we check if is file or link before and unlink it.
TODO
N/A
Checklist