From d9347f2c9b1411a06a742e45702d6c27d7a2d1b4 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Fri, 22 Nov 2013 23:58:30 +0100 Subject: LDAP: last avatar lookup must be stored per user. Someone had a blackout, eh? --- apps/user_ldap/user_ldap.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'apps/user_ldap') diff --git a/apps/user_ldap/user_ldap.php b/apps/user_ldap/user_ldap.php index 2bff4b28212..97fc2fbb6c8 100644 --- a/apps/user_ldap/user_ldap.php +++ b/apps/user_ldap/user_ldap.php @@ -76,20 +76,22 @@ class USER_LDAP extends BackendUtility implements \OCP\UserInterface { * @return void */ private function updateAvatar($uid, $dn) { - $lastChecked = $this->access->connection->lastJpegPhotoLookup; + $lastChecked = \OCP\Config::getUserValue($uid, 'user_ldap', 'lastJpegPhotoLookup', 0); if((time() - $lastChecked) < 86400 ) { //update only once a day return; } $jpegPhoto = $this->access->readAttribute($dn, 'jpegPhoto'); - $this->access->connection->lastJpegPhotoLookup = time(); + \OCP\Config::setUserValue($uid, 'user_ldap', 'lastJpegPhotoLookup', time()); if(!$jpegPhoto || !is_array($jpegPhoto) || !isset($jpegPhoto[0])) { //not set, nothing left to do; return; } - $image = new \OCP\Image($jpegPhoto[0]); + $image = new \OCP\Image(); + $image->loadFromBase64(base64_encode($jpegPhoto[0])); + if(!$image->valid()) { \OCP\Util::writeLog('user_ldap', 'jpegPhoto data invalid for '.$dn, \OCP\Util::ERROR); @@ -103,10 +105,9 @@ class USER_LDAP extends BackendUtility implements \OCP\UserInterface { \OCP\Util::ERROR); return; } - $avatarManager = \OC::$server->getAvatarManager(); $avatar = $avatarManager->getAvatar($uid); - $avatar->set($image->data()); + $avatar->set($image); } /** -- cgit v1.2.3