summaryrefslogtreecommitdiffstats
path: root/lib/private/avatarmanager.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/private/avatarmanager.php')
-rw-r--r--lib/private/avatarmanager.php22
1 files changed, 20 insertions, 2 deletions
diff --git a/lib/private/avatarmanager.php b/lib/private/avatarmanager.php
index b39f5495122..21f88b1fd3f 100644
--- a/lib/private/avatarmanager.php
+++ b/lib/private/avatarmanager.php
@@ -26,6 +26,7 @@
namespace OC;
+use OCP\Files\Folder;
use OCP\IAvatarManager;
use OCP\IUserManager;
use OCP\Files\IRootFolder;
@@ -45,6 +46,13 @@ class AvatarManager implements IAvatarManager {
/** @var IL10N */
private $l;
+ /**
+ * AvatarManager constructor.
+ *
+ * @param IUserManager $userManager
+ * @param IRootFolder $rootFolder
+ * @param IL10N $l
+ */
public function __construct(
IUserManager $userManager,
IRootFolder $rootFolder,
@@ -57,7 +65,7 @@ class AvatarManager implements IAvatarManager {
/**
* return a user specific instance of \OCP\IAvatar
* @see \OCP\IAvatar
- * @param string $user the ownCloud user id
+ * @param string $userId the ownCloud user id
* @return \OCP\IAvatar
* @throws \Exception In case the username is potentially dangerous
*/
@@ -66,6 +74,16 @@ class AvatarManager implements IAvatarManager {
if (is_null($user)) {
throw new \Exception('user does not exist');
}
- return new Avatar($this->rootFolder->getUserFolder($userId)->getParent(), $this->l, $user);
+
+ /*
+ * Fix for #22119
+ * Basically we do not want to copy the skeleton folder
+ */
+ \OC\Files\Filesystem::initMountPoints($userId);
+ $dir = '/' . $userId;
+ /** @var Folder $folder */
+ $folder = $this->rootFolder->get($dir);
+
+ return new Avatar($folder, $this->l, $user);
}
}