Skip to content
Snippets Groups Projects
Commit 3769f822 authored by Alexander Purr's avatar Alexander Purr Committed by Dorian Merz
Browse files

refs #16669 [fid_adlr] add LiberoId into feedback mail if user is logged in

* get LiberoId via Client
* add FeedbackControllerDelegatorFactory
parent 1c8258bf
Branches
Tags
No related merge requests found
......@@ -23,6 +23,7 @@
use fid\Controller\RecordControllerDelegatorFactory;
use fid\FormModel\PasswordChangeModel;
use fid_adlr\Controller\FeedbackController;
use fid_adlr\Controller\FeedbackControllerDelegatorFactory;
use fid_adlr\Controller\MyResearchController;
use fid_adlr\Controller\MyResearchControllerFactory;
use fid_adlr\Controller\RecordController;
......@@ -55,6 +56,9 @@ $config = [
RecordController::class => [
RecordControllerDelegatorFactory::class,
],
FeedbackController::class => [
FeedbackControllerDelegatorFactory::class,
],
],
],
'view_helpers' => [
......
......@@ -21,6 +21,7 @@
namespace fid_adlr\Controller;
use fid\Service\Client;
use VuFind\Controller\FeedbackController as BaseFeedbackController;
use Zend\View\Model\ViewModel;
......@@ -37,6 +38,19 @@ use Zend\View\Model\ViewModel;
*/
class FeedbackController extends BaseFeedbackController
{
/**
* @var Client
*/
protected $client;
/**
* @param Client $client
*/
public function setClient(Client $client): void
{
$this->client = $client;
}
/**
* Display Feedback form.
*
......@@ -150,6 +164,13 @@ class FeedbackController extends BaseFeedbackController
protected function sendFeedback($form, $postParams): array
{
list($messageParams, $template) = $form->formatEmailMessage($postParams);
if (!empty($this->getUser()) && $user = $this->client->requestUserDetails())
{
$messageParams["LiberoID"] = [
"type" => "text",
"value" => $user->getLiberoId()
];
}
$emailMessage = $this->getViewRenderer()->partial($template, ['fields' => $messageParams]);
list($senderName, $senderEmail) = $this->getSender();
......
<?php
namespace fid_adlr\Controller;
use fid\Service\Client;
use Interop\Container\ContainerInterface;
use Zend\ServiceManager\Factory\DelegatorFactoryInterface;
class FeedbackControllerDelegatorFactory implements DelegatorFactoryInterface
{
public function __invoke(ContainerInterface $container, $name, callable $callback, array $options = null)
{
/** @var FeedbackController $instance */
$instance = call_user_func($callback);
$instance->setClient($container->get(Client::class));
return $instance;
}
}
\ No newline at end of file
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment