|
|
<?php |
|
|
|
|
|
namespace Kanboard\Subscriber; |
|
|
|
|
|
use Kanboard\Core\User\UserProfile; |
|
|
use Kanboard\Event\UserProfileSyncEvent; |
|
|
use Symfony\Component\EventDispatcher\EventSubscriberInterface; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class LdapUserPhotoSubscriber extends BaseSubscriber implements EventSubscriberInterface |
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static function getSubscribedEvents() |
|
|
{ |
|
|
return array( |
|
|
UserProfile::EVENT_USER_PROFILE_AFTER_SYNC => 'syncUserPhoto', |
|
|
); |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function syncUserPhoto(UserProfileSyncEvent $event) |
|
|
{ |
|
|
if (is_a($event->getUser(), 'Kanboard\User\LdapUserProvider')) { |
|
|
$profile = $event->getProfile(); |
|
|
$photo = $event->getUser()->getPhoto(); |
|
|
|
|
|
if (empty($profile['avatar_path']) && ! empty($photo)) { |
|
|
$this->logger->info('Saving user photo from LDAP profile'); |
|
|
$this->avatarFileModel->uploadImageContent($profile['id'], $photo); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|