Skip to content

Commit

Permalink
[WIP] Fixes Small Registrations
Browse files Browse the repository at this point in the history
  • Loading branch information
dhoffmann1979 committed Apr 25, 2023
1 parent 0a1b533 commit f89ebf9
Show file tree
Hide file tree
Showing 16 changed files with 128 additions and 110 deletions.
17 changes: 11 additions & 6 deletions Classes/Controller/AbstractController.php
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,8 @@ public function updateAllConfirmed(User $user)
'changes' => UserUtility::getDirtyPropertiesFromUser($existingUser),
'settings' => $this->settings,
],
$this->config['edit.']['email.']['notifyAdmin.'] ?? []
$this->config['edit.']['email.']['notifyAdmin.'] ?? [],
$this->request
);
}

Expand Down Expand Up @@ -208,7 +209,8 @@ public function updateRequest($user)
'changes' => $dirtyProperties,
'hash' => HashUtility::createHashForUser($user),
],
$this->config['edit.']['email.']['updateRequest.'] ?? []
$this->config['edit.']['email.']['updateRequest.'] ?? [],
$this->request
);
$this->logUtility->log(
Log::STATUS_PROFILEUPDATEREFUSEDADMIN,
Expand Down Expand Up @@ -263,7 +265,8 @@ public function finalCreate(
ConfigurationUtility::getValue('new./email./createUserNotify./subject.', $this->config),
),
$variables,
ConfigurationUtility::getValue('new./email./createUserNotify.', $this->config)
ConfigurationUtility::getValue('new./email./createUserNotify.', $this->config),
$this->request
);
}

Expand All @@ -288,7 +291,8 @@ public function finalCreate(
ConfigurationUtility::getValue('new./email./createAdminNotify./subject.', $this->config)
),
$variables,
ConfigurationUtility::getValue('new./email./createAdminNotify.', $this->config)
ConfigurationUtility::getValue('new./email./createAdminNotify.', $this->config),
$this->request
);
}

Expand Down Expand Up @@ -351,7 +355,7 @@ protected function redirectByAction($action = 'new', $category = 'redirect')

// if redirect target
if ($target) {
$this->redirectToUri(StringUtility::removeDoubleSlashesFromUri($target));
return $this->redirectToUri(StringUtility::removeDoubleSlashesFromUri($target));
}
}

Expand Down Expand Up @@ -545,7 +549,8 @@ public function sendCreateUserConfirmationMail(User $user)
'user' => $user,
'hash' => HashUtility::createHashForUser($user),
],
ConfigurationUtility::getValue('new./email./createUserConfirmation.', $this->config)
ConfigurationUtility::getValue('new./email./createUserConfirmation.', $this->config),
$this->request
);
}
}
11 changes: 8 additions & 3 deletions Classes/Controller/NewController.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
use In2code\Femanager\Utility\HashUtility;
use In2code\Femanager\Utility\LocalizationUtility;
use In2code\Femanager\Utility\StringUtility;
use In2code\Femanager\Utility\TemplateUtility;
use In2code\Femanager\Utility\UserUtility;
use JsonException;
use Psr\Http\Message\ResponseInterface;
Expand All @@ -29,6 +30,7 @@
use TYPO3\CMS\Extbase\Event\Mvc\AfterRequestDispatchedEvent;
use TYPO3\CMS\Extbase\Persistence\Exception\IllegalObjectTypeException;
use TYPO3\CMS\Extbase\Persistence\Exception\UnknownObjectException;
use TYPO3\CMS\Fluid\View\StandaloneView;

/**
* Class NewController
Expand Down Expand Up @@ -67,6 +69,7 @@ public function newAction(User $user = null): ResponseInterface
#[Validate(['validator' => CaptchaValidator::class, 'param' => 'user'])]
public function createAction(User $user): ResponseInterface
{

if ($this->ratelimiterService->isLimited()) {
$this->addFlashMessage(
LocalizationUtility::translate('ratelimiter_too_many_attempts'),
Expand Down Expand Up @@ -156,7 +159,7 @@ public function confirmCreateRequestAction(int $user, string $hash, string $stat
}

if ($furtherFunctions) {
$this->redirectByAction('new', $status . 'Redirect');
return $this->redirectByAction('new', $status . 'Redirect');
}

return $this->redirect('new');
Expand Down Expand Up @@ -283,7 +286,8 @@ protected function statusAdminConfirmationRefused(User $user, $hash, $status): b
['sender@femanager.org' => 'Sender Name'],
'Your profile was refused',
['user' => $user],
ConfigurationUtility::getValue('new./email./createUserNotifyRefused.', $this->config)
ConfigurationUtility::getValue('new./email./createUserNotifyRefused.', $this->config),
$this->request
);
}
$this->userRepository->remove($user);
Expand Down Expand Up @@ -370,7 +374,8 @@ protected function createAdminConfirmationRequest(User $user)
'user' => $user,
'hash' => HashUtility::createHashForUser($user)
],
ConfigurationUtility::getValue('new./email./createAdminConfirmation.', $this->config)
ConfigurationUtility::getValue('new./email./createAdminConfirmation.', $this->config),
$this->request
);
$this->addFlashMessage(LocalizationUtility::translate('createRequestWaitingForAdminConfirm'));
}
Expand Down
15 changes: 9 additions & 6 deletions Classes/Domain/Service/SendMailService.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
use TYPO3\CMS\Core\Mail\Mailer;
use TYPO3\CMS\Core\Mail\MailMessage;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Extbase\Mvc\RequestInterface;

/**
* Class SendMailService
Expand Down Expand Up @@ -61,7 +62,8 @@ public function send(
array $sender,
string $subject,
array $variables = [],
array $typoScript = []
array $typoScript = [],
RequestInterface|null $request = null
): bool {
if (false === $this->isMailEnabled($typoScript, $receiver)) {
return false;
Expand All @@ -70,7 +72,7 @@ public function send(
$this->contentObjectStart($variables);
$email = GeneralUtility::makeInstance(MailMessage::class);
$variables = $this->embedImages($variables, $typoScript, $email);
$this->prepareMailObject($template, $receiver, $sender, $subject, $variables, $email);
$this->prepareMailObject($template, $receiver, $sender, $subject, $variables, $email, $request);
$this->overwriteEmailReceiver($typoScript, $email);
$this->overwriteEmailSender($typoScript, $email);
$this->setSubject($typoScript, $email);
Expand All @@ -91,9 +93,9 @@ public function send(
* @param string $template Template file in Templates/Email/
* @param array $variables Variables for assignMultiple
*/
protected function getMailBody(string $template, array $variables): string
protected function getMailBody(string $template, array $variables, RequestInterface|null $request = null): string
{
$standAloneView = TemplateUtility::getDefaultStandAloneView();
$standAloneView = TemplateUtility::getDefaultStandAloneView($request);
$standAloneView->setTemplatePathAndFilename($this->getRelativeEmailPathAndFilename($template));
$standAloneView->assignMultiple($variables);
return $standAloneView->render();
Expand Down Expand Up @@ -130,9 +132,10 @@ protected function prepareMailObject(
array $sender,
string $subject,
array $variables,
MailMessage $email
MailMessage $email,
RequestInterface|null $request = null
): void {
$html = $this->getMailBody($template, $variables);
$html = $this->getMailBody($template, $variables, $request);
$email->setTo($receiver)
->setFrom($sender)
->setSubject($subject)
Expand Down
5 changes: 5 additions & 0 deletions Classes/Utility/TemplateUtility.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface;
use TYPO3\CMS\Extbase\Mvc\RequestInterface;
use TYPO3\CMS\Fluid\View\StandaloneView;

/**
Expand Down Expand Up @@ -111,10 +112,14 @@ public static function getTemplatePaths($pathAndFilename, $part = 'template')
* @return StandaloneView
*/
public static function getDefaultStandAloneView(
RequestInterface|null $request = null,
string $format = 'html'
) {
/** @var StandaloneView $standAloneView */
$standAloneView = GeneralUtility::makeInstance(StandaloneView::class);
if ($request instanceof RequestInterface) {
$standAloneView->setRequest($request);
}
$standAloneView->setFormat($format);
$standAloneView->setLayoutRootPaths(TemplateUtility::getTemplateFolders('layout'));
$standAloneView->setPartialRootPaths(TemplateUtility::getTemplateFolders('partial'));
Expand Down
44 changes: 22 additions & 22 deletions Resources/Private/Partials/Mail/UserProperties.html
Original file line number Diff line number Diff line change
@@ -1,141 +1,141 @@
<table border="1" cellpadding="2" cellspacing="2">
<f:if condition="{user.username}">
<tr>
<td><f:translate key="tx_femanager_domain_model_user.username" /></td>
<td><f:translate key="LLL:EXT:femanager/Resources/Private/Language/locallang.xlf:tx_femanager_domain_model_user.username" /></td>
<td>
{user.username}
</td>
</tr>
</f:if>
<f:if condition="{user.email}">
<tr>
<td><f:translate key="tx_femanager_domain_model_user.email" /></td>
<td><f:translate key="LLL:EXT:femanager/Resources/Private/Language/locallang.xlf:tx_femanager_domain_model_user.email" /></td>
<td>
{user.email}
</td>
</tr>
</f:if>
<f:if condition="{user.www}">
<tr>
<td><f:translate key="tx_femanager_domain_model_user.www" /></td>
<td><f:translate key="LLL:EXT:femanager/Resources/Private/Language/locallang.xlf:tx_femanager_domain_model_user.www" /></td>
<td>
{user.www}
</td>
</tr>
</f:if>
<f:if condition="{user.title}">
<tr>
<td><f:translate key="tx_femanager_domain_model_user.title" /></td>
<td><f:translate key="LLL:EXT:femanager/Resources/Private/Language/locallang.xlf:tx_femanager_domain_model_user.title" /></td>
<td>
{user.title}
</td>
</tr>
</f:if>
<f:if condition="{user.firstName}">
<tr>
<td><f:translate key="tx_femanager_domain_model_user.firstName" /></td>
<td><f:translate key="LLL:EXT:femanager/Resources/Private/Language/locallang.xlf:tx_femanager_domain_model_user.firstName" /></td>
<td>
{user.firstName}
</td>
</tr>
</f:if>
<f:if condition="{user.middleName}">
<tr>
<td><f:translate key="tx_femanager_domain_model_user.middleName" /></td>
<td><f:translate key="LLL:EXT:femanager/Resources/Private/Language/locallang.xlf:tx_femanager_domain_model_user.middleName" /></td>
<td>
{user.middleName}
</td>
</tr>
</f:if>
<f:if condition="{user.lastName}">
<tr>
<td><f:translate key="tx_femanager_domain_model_user.lastName" /></td>
<td><f:translate key="LLL:EXT:femanager/Resources/Private/Language/locallang.xlf:tx_femanager_domain_model_user.lastName" /></td>
<td>
{user.lastName}
</td>
</tr>
</f:if>
<f:if condition="{user.name}">
<tr>
<td><f:translate key="tx_femanager_domain_model_user.name" /></td>
<td><f:translate key="LLL:EXT:femanager/Resources/Private/Language/locallang.xlf:tx_femanager_domain_model_user.name" /></td>
<td>
{user.name}
</td>
</tr>
</f:if>
<f:if condition="{user.company}">
<tr>
<td><f:translate key="tx_femanager_domain_model_user.company" /></td>
<td><f:translate key="LLL:EXT:femanager/Resources/Private/Language/locallang.xlf:tx_femanager_domain_model_user.company" /></td>
<td>
{user.company}
</td>
</tr>
</f:if>
<tr>
<td><f:translate key="tx_femanager_domain_model_user.gender" /></td>
<td><f:translate key="LLL:EXT:femanager/Resources/Private/Language/locallang.xlf:tx_femanager_domain_model_user.gender" /></td>
<td>
<f:translate key="tx_femanager_domain_model_user.gender.item{user.gender}" />
<f:translate key="LLL:EXT:femanager/Resources/Private/Language/locallang.xlf:tx_femanager_domain_model_user.gender.item{user.gender}" />
</td>
</tr>
<f:if condition="{user.dateOfBirth}">
<tr>
<td><f:translate key="tx_femanager_domain_model_user.dateOfBirth" /></td>
<td><f:translate key="LLL:EXT:femanager/Resources/Private/Language/locallang.xlf:tx_femanager_domain_model_user.dateOfBirth" /></td>
<td>
<f:format.date format="{f:translate(key:'tx_femanager_domain_model_user.dateFormat')}">{user.dateOfBirth}</f:format.date>
<f:format.date format="{f:translate(key:'LLL:EXT:femanager/Resources/Private/Language/locallang.xlf:tx_femanager_domain_model_user.dateFormat')}">{user.dateOfBirth}</f:format.date>
</td>
</tr>
</f:if>
<f:if condition="{user.telephone}">
<tr>
<td><f:translate key="tx_femanager_domain_model_user.telephone" /></td>
<td><f:translate key="LLL:EXT:femanager/Resources/Private/Language/locallang.xlf:tx_femanager_domain_model_user.telephone" /></td>
<td>
{user.telephone}
</td>
</tr>
</f:if>
<f:if condition="{user.fax}">
<tr>
<td><f:translate key="tx_femanager_domain_model_user.fax" /></td>
<td><f:translate key="LLL:EXT:femanager/Resources/Private/Language/locallang.xlf:tx_femanager_domain_model_user.fax" /></td>
<td>
{user.fax}
</td>
</tr>
</f:if>
<f:if condition="{user.address}">
<tr>
<td><f:translate key="tx_femanager_domain_model_user.address" /></td>
<td><f:translate key="LLL:EXT:femanager/Resources/Private/Language/locallang.xlf:tx_femanager_domain_model_user.address" /></td>
<td>
{user.address}
</td>
</tr>
</f:if>
<f:if condition="{user.zip}">
<tr>
<td><f:translate key="tx_femanager_domain_model_user.zip" /></td>
<td><f:translate key="LLL:EXT:femanager/Resources/Private/Language/locallang.xlf:tx_femanager_domain_model_user.zip" /></td>
<td>
{user.zip}
</td>
</tr>
</f:if>
<f:if condition="{user.city}">
<tr>
<td><f:translate key="tx_femanager_domain_model_user.city" /></td>
<td><f:translate key="LLL:EXT:femanager/Resources/Private/Language/locallang.xlf:tx_femanager_domain_model_user.city" /></td>
<td>
{user.city}
</td>
</tr>
</f:if>
<f:if condition="{user.country}">
<tr>
<td><f:translate key="tx_femanager_domain_model_user.country" /></td>
<td><f:translate key="LLL:EXT:femanager/Resources/Private/Language/locallang.xlf:tx_femanager_domain_model_user.country" /></td>
<td>
{user.country}
</td>
</tr>
</f:if>
<f:if condition="{user.state}">
<tr>
<td><f:translate key="tx_femanager_domain_model_user.state" /></td>
<td><f:translate key="LLL:EXT:femanager/Resources/Private/Language/locallang.xlf:tx_femanager_domain_model_user.state" /></td>
<td>
<!-- // TODO: Check me if i was displayed -->
{user.state}
Expand All @@ -144,7 +144,7 @@
</f:if>
<f:if condition="{user.image}">
<tr>
<td><f:translate key="tx_femanager_domain_model_user.image" /></td>
<td><f:translate key="LLL:EXT:femanager/Resources/Private/Language/locallang.xlf:tx_femanager_domain_model_user.image" /></td>
<td>
<f:if condition="{embedImages.0}">
<img src="{embedImages.0}" alt="Error in User Image">
Expand All @@ -154,7 +154,7 @@
</f:if>
<f:if condition="{user.usergroup}">
<tr>
<td><f:translate key="tx_femanager_domain_model_user.usergroup" /></td>
<td><f:translate key="LLL:EXT:femanager/Resources/Private/Language/locallang.xlf:tx_femanager_domain_model_user.usergroup" /></td>
<td>
<f:for each="{user.usergroup}" as="usergroup" iteration="i">{usergroup.title}<f:if condition="{i.isLast}"><f:else>, </f:else></f:if></f:for>
</td>
Expand Down
Loading

0 comments on commit f89ebf9

Please sign in to comment.