diff options
author | Frederic Guillot <fred@kanboard.net> | 2016-05-07 12:59:35 -0400 |
---|---|---|
committer | Frederic Guillot <fred@kanboard.net> | 2016-05-07 12:59:35 -0400 |
commit | 300dabe6b4e9e648c1111363fad8154def7cfb5f (patch) | |
tree | 1eb9cac2b56401e3c6f0fe8b46233f01909d4885 /app/Subscriber | |
parent | 94989663eca0d0dc2e9adb6d3190f0ab3cca9d2a (diff) |
Added support for LDAP user photo profile
Diffstat (limited to 'app/Subscriber')
-rw-r--r-- | app/Subscriber/BaseSubscriber.php | 1 | ||||
-rw-r--r-- | app/Subscriber/LdapUserPhotoSubscriber.php | 49 |
2 files changed, 49 insertions, 1 deletions
diff --git a/app/Subscriber/BaseSubscriber.php b/app/Subscriber/BaseSubscriber.php index 2e41da76..fdea29f6 100644 --- a/app/Subscriber/BaseSubscriber.php +++ b/app/Subscriber/BaseSubscriber.php @@ -34,7 +34,6 @@ class BaseSubscriber extends Base } $this->called[$key] = true; - return false; } } diff --git a/app/Subscriber/LdapUserPhotoSubscriber.php b/app/Subscriber/LdapUserPhotoSubscriber.php new file mode 100644 index 00000000..3cf46077 --- /dev/null +++ b/app/Subscriber/LdapUserPhotoSubscriber.php @@ -0,0 +1,49 @@ +<?php + +namespace Kanboard\Subscriber; + +use Kanboard\Core\User\UserProfile; +use Kanboard\Event\UserProfileSyncEvent; +use Symfony\Component\EventDispatcher\EventSubscriberInterface; + +/** + * Class LdapUserPhotoSubscriber + * + * @package Kanboard\Subscriber + * @author Frederic Guillot + */ +class LdapUserPhotoSubscriber extends BaseSubscriber implements EventSubscriberInterface +{ + /** + * Get event listeners + * + * @static + * @access public + * @return array + */ + public static function getSubscribedEvents() + { + return array( + UserProfile::EVENT_USER_PROFILE_AFTER_SYNC => 'syncUserPhoto', + ); + } + + /** + * Save the user profile photo from LDAP to the object storage + * + * @access public + * @param UserProfileSyncEvent $event + */ + 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->avatarFile->uploadImageContent($profile['id'], $photo); + } + } + } +} |