From 0f3eec629d8e3d8aed0f8d0be64e2085d120b724 Mon Sep 17 00:00:00 2001 From: Georg Duemmler Date: Mon, 9 May 2016 14:15:26 +0200 Subject: [PATCH 1/6] add BackendUserProvider --- Classes/Client.php | 10 +++++ Classes/Provider/BackendUserProvider.php | 47 ++++++++++++++++++++++++ ext_localconf.php | 1 + 3 files changed, 58 insertions(+) create mode 100644 Classes/Provider/BackendUserProvider.php diff --git a/Classes/Client.php b/Classes/Client.php index 1297c8f..e9aff0f 100644 --- a/Classes/Client.php +++ b/Classes/Client.php @@ -14,6 +14,7 @@ use T3Monitor\T3monitoringClient\Provider\DataProviderInterface; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\HttpUtility; +use TYPO3\CMS\Frontend\Utility\EidUtility; class Client { @@ -27,6 +28,15 @@ public function run() HttpUtility::setResponseCodeAndExit(HttpUtility::HTTP_STATUS_403); } + EidUtility::initTCA(); + $GLOBALS['TSFE'] = GeneralUtility::makeInstance('TYPO3\\CMS\\Frontend\\Controller\\TypoScriptFrontendController', $GLOBALS['TYPO3_CONF_VARS'], 0, 0, true); + $GLOBALS['TSFE']->connectToDB(); + $GLOBALS['TSFE']->fe_user = EidUtility::initFeUser(); + $GLOBALS['TSFE']->id = 0; + $GLOBALS['TSFE']->determineId(); + $GLOBALS['TSFE']->initTemplate(); + $GLOBALS['TSFE']->getConfigArray(); + $data = $this->collectData(); echo json_encode($data); } diff --git a/Classes/Provider/BackendUserProvider.php b/Classes/Provider/BackendUserProvider.php new file mode 100644 index 0000000..b16f86f --- /dev/null +++ b/Classes/Provider/BackendUserProvider.php @@ -0,0 +1,47 @@ +objectManager = GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager'); + $this->backendUserRepository = $this->objectManager->get('TYPO3\\CMS\\Extbase\\Domain\\Repository\\BackendUserRepository'); + + /** @var BackendUser[] $backendUsers */ + $backendUsers = $this->backendUserRepository->findAll(); + foreach($backendUsers as $backendUser) + { + $data['users']['backend'][] = array( + 'userName' => $backendUser->getUserName(), + 'realName' => $backendUser->getRealName(), + 'description' => $backendUser->getDescription(), + 'lastLogin' => $backendUser->getLastLoginDateAndTime() + ); + } + + return $data; + } +} \ No newline at end of file diff --git a/ext_localconf.php b/ext_localconf.php index 6683dcb..101f135 100644 --- a/ext_localconf.php +++ b/ext_localconf.php @@ -16,6 +16,7 @@ } else { $GLOBALS['TYPO3_CONF_VARS']['EXT']['t3monitoring_client']['provider'][] = 'T3Monitor\\T3monitoringClient\\Provider\\Extension6xProvider'; } +$GLOBALS['TYPO3_CONF_VARS']['EXT']['t3monitoring_client']['provider'][] = 'T3Monitor\\T3monitoringClient\\Provider\\BackendUserProvider'; //$GLOBALS['TYPO3_CONF_VARS']['EXT']['t3monitoring_client']['provider'][] = 'T3Monitor\\T3monitoringClient\\Provider\\DummyDataProvider'; From 2e9aecb007a6a1e4b05752c8a67e79026c3ca8c2 Mon Sep 17 00:00:00 2001 From: Georg Duemmler Date: Mon, 9 May 2016 17:14:27 +0200 Subject: [PATCH 2/6] add avatar and email address --- Classes/Provider/BackendUserProvider.php | 34 +++++++++++++++++++++--- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/Classes/Provider/BackendUserProvider.php b/Classes/Provider/BackendUserProvider.php index b16f86f..e11ebaa 100644 --- a/Classes/Provider/BackendUserProvider.php +++ b/Classes/Provider/BackendUserProvider.php @@ -11,6 +11,8 @@ use TYPO3\CMS\Beuser\Domain\Model\BackendUser; use TYPO3\CMS\Core\Utility\GeneralUtility; +use TYPO3\CMS\Extbase\Object\ObjectManager; +use TYPO3\CMS\Extbase\Service\ImageService; class BackendUserProvider implements DataProviderInterface { @@ -28,20 +30,44 @@ public function get(array $data) { $this->objectManager = GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager'); - $this->backendUserRepository = $this->objectManager->get('TYPO3\\CMS\\Extbase\\Domain\\Repository\\BackendUserRepository'); + $this->backendUserRepository = $this->objectManager->get('TYPO3\\CMS\\Beuser\\Domain\\Repository\\BackendUserRepository'); /** @var BackendUser[] $backendUsers */ $backendUsers = $this->backendUserRepository->findAll(); foreach($backendUsers as $backendUser) { - $data['users']['backend'][] = array( + $backendUserData = array( 'userName' => $backendUser->getUserName(), 'realName' => $backendUser->getRealName(), + 'emailAddress' => $backendUser->getEmail(), 'description' => $backendUser->getDescription(), - 'lastLogin' => $backendUser->getLastLoginDateAndTime() + 'lastLogin' => $backendUser->getLastLoginDateAndTime(), + 'avatar' => '' ); + if (GeneralUtility::compat_version('7.5')) { + $backendUserData['avatar'] = $this->getAvatarUrl($backendUser->getUid()); + } + $data['users']['backend'][] = $backendUserData; } - return $data; } + + protected function getAvatarUrl($beUserUid) + { + $fileRepository = GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\FileRepository'); + $fileObjects = $fileRepository->findByRelation('be_users', 'avatar', $beUserUid); + if(count($fileObjects) > 0) + { + $fileObject = $fileObjects[0]; + $objectManager = GeneralUtility::makeInstance(ObjectManager::class); + $imageService = $objectManager->get(ImageService::class); + $processingInstructions = array( + 'width' => '32c', + 'height' => '32', + ); + $processedImage = $imageService->applyProcessingInstructions($fileObject, $processingInstructions); + return $imageService->getImageUri($processedImage); + } + return NULL; + } } \ No newline at end of file From fe380dae4c4757f3688a7825c222c8d4cfd9dcd9 Mon Sep 17 00:00:00 2001 From: Georg Duemmler Date: Tue, 10 May 2016 14:39:57 +0200 Subject: [PATCH 3/6] remove avatar & use TYPO3_DB instead of extbase to make it more lowlevel --- Classes/Client.php | 9 ----- Classes/Provider/BackendUserProvider.php | 45 ++++-------------------- 2 files changed, 6 insertions(+), 48 deletions(-) diff --git a/Classes/Client.php b/Classes/Client.php index e9aff0f..93af15d 100644 --- a/Classes/Client.php +++ b/Classes/Client.php @@ -28,15 +28,6 @@ public function run() HttpUtility::setResponseCodeAndExit(HttpUtility::HTTP_STATUS_403); } - EidUtility::initTCA(); - $GLOBALS['TSFE'] = GeneralUtility::makeInstance('TYPO3\\CMS\\Frontend\\Controller\\TypoScriptFrontendController', $GLOBALS['TYPO3_CONF_VARS'], 0, 0, true); - $GLOBALS['TSFE']->connectToDB(); - $GLOBALS['TSFE']->fe_user = EidUtility::initFeUser(); - $GLOBALS['TSFE']->id = 0; - $GLOBALS['TSFE']->determineId(); - $GLOBALS['TSFE']->initTemplate(); - $GLOBALS['TSFE']->getConfigArray(); - $data = $this->collectData(); echo json_encode($data); } diff --git a/Classes/Provider/BackendUserProvider.php b/Classes/Provider/BackendUserProvider.php index e11ebaa..a724292 100644 --- a/Classes/Provider/BackendUserProvider.php +++ b/Classes/Provider/BackendUserProvider.php @@ -9,11 +9,6 @@ * LICENSE.txt file that was distributed with this source code. */ -use TYPO3\CMS\Beuser\Domain\Model\BackendUser; -use TYPO3\CMS\Core\Utility\GeneralUtility; -use TYPO3\CMS\Extbase\Object\ObjectManager; -use TYPO3\CMS\Extbase\Service\ImageService; - class BackendUserProvider implements DataProviderInterface { /** @@ -28,46 +23,18 @@ class BackendUserProvider implements DataProviderInterface public function get(array $data) { - - $this->objectManager = GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager'); - $this->backendUserRepository = $this->objectManager->get('TYPO3\\CMS\\Beuser\\Domain\\Repository\\BackendUserRepository'); - - /** @var BackendUser[] $backendUsers */ - $backendUsers = $this->backendUserRepository->findAll(); + $backendUsers = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('*', 'be_users', 'deleted=0'); foreach($backendUsers as $backendUser) { $backendUserData = array( - 'userName' => $backendUser->getUserName(), - 'realName' => $backendUser->getRealName(), - 'emailAddress' => $backendUser->getEmail(), - 'description' => $backendUser->getDescription(), - 'lastLogin' => $backendUser->getLastLoginDateAndTime(), - 'avatar' => '' + 'userName' => $backendUser['username'], + 'realName' => $backendUser['realName'], + 'emailAddress' => $backendUser['email'], + 'description' => $backendUser['description'], + 'lastLogin' => $backendUser['lastlogin'], ); - if (GeneralUtility::compat_version('7.5')) { - $backendUserData['avatar'] = $this->getAvatarUrl($backendUser->getUid()); - } $data['users']['backend'][] = $backendUserData; } return $data; } - - protected function getAvatarUrl($beUserUid) - { - $fileRepository = GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\FileRepository'); - $fileObjects = $fileRepository->findByRelation('be_users', 'avatar', $beUserUid); - if(count($fileObjects) > 0) - { - $fileObject = $fileObjects[0]; - $objectManager = GeneralUtility::makeInstance(ObjectManager::class); - $imageService = $objectManager->get(ImageService::class); - $processingInstructions = array( - 'width' => '32c', - 'height' => '32', - ); - $processedImage = $imageService->applyProcessingInstructions($fileObject, $processingInstructions); - return $imageService->getImageUri($processedImage); - } - return NULL; - } } \ No newline at end of file From fecba3b9eccb0579f4331842af1af34964d2b92c Mon Sep 17 00:00:00 2001 From: Georg Duemmler Date: Wed, 11 May 2016 15:43:37 +0200 Subject: [PATCH 4/6] compatibility for php 5.4 --- Classes/Provider/StatusReportProvider.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Classes/Provider/StatusReportProvider.php b/Classes/Provider/StatusReportProvider.php index d714073..b358c5a 100644 --- a/Classes/Provider/StatusReportProvider.php +++ b/Classes/Provider/StatusReportProvider.php @@ -77,7 +77,7 @@ protected function initialize() protected function getLanguageService() { if ($GLOBALS['LANG'] === null) { - $GLOBALS['LANG'] = GeneralUtility::makeInstance(\TYPO3\CMS\Lang\LanguageService::class); + $GLOBALS['LANG'] = GeneralUtility::makeInstance('TYPO3\\CMS\\Lang\\LanguageService'); } return $GLOBALS['LANG']; } From aea54eaa6a76c4f0feb4a23bec9e55cdba152bce Mon Sep 17 00:00:00 2001 From: Janek Ruessmann Date: Wed, 11 Oct 2017 22:39:11 +0200 Subject: [PATCH 5/6] cleanup for php 5.3 --- Classes/Provider/BackendUserProvider.php | 5 ++--- Classes/Provider/StatusReportProvider.php | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/Classes/Provider/BackendUserProvider.php b/Classes/Provider/BackendUserProvider.php index a724292..5aea9f2 100644 --- a/Classes/Provider/BackendUserProvider.php +++ b/Classes/Provider/BackendUserProvider.php @@ -24,8 +24,7 @@ class BackendUserProvider implements DataProviderInterface public function get(array $data) { $backendUsers = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('*', 'be_users', 'deleted=0'); - foreach($backendUsers as $backendUser) - { + foreach ($backendUsers as $backendUser) { $backendUserData = array( 'userName' => $backendUser['username'], 'realName' => $backendUser['realName'], @@ -37,4 +36,4 @@ public function get(array $data) } return $data; } -} \ No newline at end of file +} diff --git a/Classes/Provider/StatusReportProvider.php b/Classes/Provider/StatusReportProvider.php index 7bf08dc..9a1298c 100644 --- a/Classes/Provider/StatusReportProvider.php +++ b/Classes/Provider/StatusReportProvider.php @@ -30,11 +30,11 @@ public function get(array $data) $statusReport = GeneralUtility::makeInstance('TYPO3\\CMS\\Reports\\Report\\Status\\Status'); $statusCollection = $statusReport->getSystemStatus(); - $severityConversion = [ + $severityConversion = array ( Status::INFO => 'info', Status::WARNING => 'warning', Status::ERROR => 'danger', - ]; + ); foreach ($statusCollection as $statusProvider => $providerStatuses) { /** @var $status \TYPO3\CMS\Reports\Status */ foreach ($providerStatuses as $status) { From 370de53b74ff69301781f31b28484d0678d6ff40 Mon Sep 17 00:00:00 2001 From: Janek Ruessmann Date: Wed, 11 Oct 2017 23:49:32 +0200 Subject: [PATCH 6/6] cleanup --- Classes/Client.php | 1 - 1 file changed, 1 deletion(-) diff --git a/Classes/Client.php b/Classes/Client.php index 6ad5d55..17f24ba 100644 --- a/Classes/Client.php +++ b/Classes/Client.php @@ -14,7 +14,6 @@ use T3Monitor\T3monitoringClient\Provider\DataProviderInterface; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\HttpUtility; -use TYPO3\CMS\Frontend\Utility\EidUtility; /** * Class Client