Skip to content

Commit

Permalink
Resolve merge conflicts while merging latest changes from branch 1.2
Browse files Browse the repository at this point in the history
  • Loading branch information
Akshay Kumar committed Nov 24, 2022
2 parents 766c078 + 68b500c commit 3e9b4bb
Show file tree
Hide file tree
Showing 50 changed files with 1,430 additions and 1,480 deletions.
26 changes: 7 additions & 19 deletions Controller/EmailSettings.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,38 +2,26 @@

namespace Webkul\UVDesk\CoreFrameworkBundle\Controller;

use Symfony\Component\Yaml\Yaml;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Security\Core\Exception\AccessDeniedException;
use Symfony\Component\Yaml\Yaml;
use Webkul\UVDesk\CoreFrameworkBundle\Mailer\MailerService;
use Webkul\UVDesk\CoreFrameworkBundle\Services\UserService;
use Symfony\Contracts\Translation\TranslatorInterface;
use Webkul\UVDesk\CoreFrameworkBundle\SwiftMailer\SwiftMailer;

class EmailSettings extends AbstractController
{
private $userService;
private $translator;
private $swiftMailer;

public function __construct(UserService $userService, TranslatorInterface $translator,SwiftMailer $swiftMailer)
{
$this->userService = $userService;
$this->translator = $translator;
$this->swiftMailer = $swiftMailer;
}

public function loadSettings()
public function loadSettings(UserService $userService, MailerService $mailerService)
{
if (!$this->userService->isAccessAuthorized('ROLE_ADMIN')) {
if (!$userService->isAccessAuthorized('ROLE_ADMIN')) {
throw new AccessDeniedException("Insufficient account privileges");
}

$swiftmailerConfigurations = array_map(function ($configuartion) {
$mailerConfigurations = array_map(function ($configuartion) {
return $configuartion->getId();
}, $this->swiftMailer->parseSwiftMailerConfigurations());
}, $mailerService->parseMailerConfigurations());

return $this->render('@UVDeskCoreFramework//Email//emailSettings.html.twig', [
'swiftmailers' => $swiftmailerConfigurations,
'mailers' => $mailerConfigurations,
'email_settings' => [
'id' => $this->getParameter('uvdesk.support_email.id'),
'name' => $this->getParameter('uvdesk.support_email.name'),
Expand Down
27 changes: 6 additions & 21 deletions Controller/EmailSettingsXHR.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,33 +2,18 @@

namespace Webkul\UVDesk\CoreFrameworkBundle\Controller;

use Symfony\Component\Yaml\Yaml;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Webkul\UVDesk\CoreFrameworkBundle\Services\UserService;
use Symfony\Contracts\Translation\TranslatorInterface;
use Webkul\UVDesk\CoreFrameworkBundle\SwiftMailer\SwiftMailer;
use Symfony\Component\HttpKernel\KernelInterface;
use Symfony\Component\Yaml\Yaml;
use Symfony\Contracts\Translation\TranslatorInterface;

class EmailSettingsXHR extends AbstractController
{
private $userService;
private $translator;
private $swiftMailer;
private $kernel;

public function __construct(UserService $userService, TranslatorInterface $translator,SwiftMailer $swiftMailer, KernelInterface $kernel)
{
$this->userService = $userService;
$this->translator = $translator;
$this->swiftMailer = $swiftMailer;
$this->kernel = $kernel;
}

public function updateSettingsXHR(Request $request)
public function updateSettingsXHR(Request $request, TranslatorInterface $translator, KernelInterface $kernel)
{
$filePath = $this->kernel->getProjectDir() . '/config/packages/uvdesk.yaml';
$filePath = $kernel->getProjectDir() . '/config/packages/uvdesk.yaml';

$memberPrefix = $this->getParameter('uvdesk_site_path.member_prefix') ?? 'member';
$customerPrefix = $this->getParameter('uvdesk_site_path.knowledgebase_customer_prefix') ?? 'customer';
Expand Down Expand Up @@ -66,7 +51,7 @@ public function updateSettingsXHR(Request $request)
'name' => $supportEmailConfiguration['name'],
'mailer_id' => $supportEmailConfiguration['mailer_id'],
],
'alertMessage' => $this->translator->trans('Success ! Email settings are updated successfully.'),
'alertMessage' => $translator->trans('Success ! Email settings are updated successfully.'),
];

return new Response(json_encode($result), 200, ['Content-Type' => 'application/json']);
Expand Down
1 change: 0 additions & 1 deletion Controller/Group.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Webkul\UVDesk\CoreFrameworkBundle\Services\UserService;
use Symfony\Contracts\Translation\TranslatorInterface;
use Webkul\UVDesk\CoreFrameworkBundle\SwiftMailer\SwiftMailer;

class Group extends AbstractController
{
Expand Down
97 changes: 97 additions & 0 deletions Controller/Mailer.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
<?php

namespace Webkul\UVDesk\CoreFrameworkBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\Security\Core\Exception\AccessDeniedException;
use Symfony\Contracts\Translation\TranslatorInterface;
use Webkul\UVDesk\CoreFrameworkBundle\Mailer\Event\ConfigurationUpdatedEvent;
use Webkul\UVDesk\CoreFrameworkBundle\Mailer\MailerService;
use Webkul\UVDesk\CoreFrameworkBundle\Services\UserService;

class Mailer extends AbstractController
{
public function loadMailers(UserService $userService)
{
if (!$userService->isAccessAuthorized('ROLE_ADMIN')) {
throw new AccessDeniedException("Insufficient account privileges");
}

return $this->render('@UVDeskCoreFramework//Mailer//listConfigurations.html.twig');
}

public function createMailerConfiguration(Request $request, MailerService $mailerService, TranslatorInterface $translator)
{
if ($request->getMethod() == 'POST') {
$params = $request->request->all();
$params['pass'] = urlencode($params['pass']);

$mailerConfiguration = $mailerService->createConfiguration($params['transport'], $params['id']);

if (!empty($mailerConfiguration)) {
$mailerConfiguration->initializeParams($params);
$configurations = $mailerService->parseMailerConfigurations();

$configurations[] = $mailerConfiguration;

try {
$mailerService->writeMailerConfigurations($configurations);
$this->addFlash('success', $translator->trans('Mailer configuration created successfully.'));

return new RedirectResponse($this->generateUrl('helpdesk_member_mailer_settings'));
} catch (\Exception $e) {
$this->addFlash('warning', $e->getMessage());
}
}
}

return $this->render('@UVDeskCoreFramework//Mailer//manageConfigurations.html.twig');
}

public function updateMailerConfiguration($id, Request $request, ContainerInterface $container, MailerService $mailerService, TranslatorInterface $translator)
{
$mailerConfigurations = $mailerService->parseMailerConfigurations();

foreach ($mailerConfigurations as $index => $configuration) {
if ($configuration->getId() == $id) {
$mailerConfiguration = $configuration;
break;
}
}

if (empty($mailerConfiguration)) {
return new Response('', 404);
}

if ($request->getMethod() == 'POST') {
$params = $request->request->all();
$params['pass'] = urlencode($params['pass']);

$existingMailerConfiguration = clone $mailerConfiguration;
$mailerConfiguration = $mailerService->createConfiguration($params['transport'], $params['id']);

$mailerConfiguration->initializeParams($params);

// Dispatch mailer configuration updated event
$event = new ConfigurationUpdatedEvent($mailerConfiguration, $existingMailerConfiguration);

$container->get('uvdesk.core.event_dispatcher')->dispatch($event, ConfigurationUpdatedEvent::NAME);

// Updated mailer configuration file
$mailerConfigurations[$index] = $mailerConfiguration;

$mailerService->writeMailerConfigurations($mailerConfigurations);
$this->addFlash('success', $translator->trans('Mailer configuration updated successfully.'));

return new RedirectResponse($this->generateUrl('helpdesk_member_mailer_settings'));
}

return $this->render('@UVDeskCoreFramework//Mailer//manageConfigurations.html.twig', [
'configuration' => $mailerConfiguration->castArray(),
]);
}
}
49 changes: 20 additions & 29 deletions Controller/SwiftMailerXHR.php → Controller/MailerXHR.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,77 +2,68 @@

namespace Webkul\UVDesk\CoreFrameworkBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Webkul\UVDesk\CoreFrameworkBundle\SwiftMailer\Event\ConfigurationRemovedEvent;
use Symfony\Contracts\Translation\TranslatorInterface;
use Webkul\UVDesk\CoreFrameworkBundle\SwiftMailer\SwiftMailer as SwiftMailerService;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Webkul\UVDesk\CoreFrameworkBundle\Mailer\Event\ConfigurationRemovedEvent;
use Webkul\UVDesk\CoreFrameworkBundle\Mailer\MailerService;

class SwiftMailerXHR extends AbstractController
class MailerXHR extends AbstractController
{
private $translator;
private $swiftMailer;

public function __construct(TranslatorInterface $translator,SwiftMailerService $swiftMailer)
{
$this->translator = $translator;
$this->swiftMailer = $swiftMailer;
}

public function loadMailersXHR(Request $request)
public function loadMailersXHR(Request $request, MailerService $mailerService)
{
if (true === $request->isXmlHttpRequest()) {
$configurations = $mailerService->parseMailerConfigurations();

$collection = array_map(function ($configuartion) {
return [
'id' => $configuartion->getId(),
'email' => $configuartion->getUsername(),
'email' => $configuartion->getUser(),
'transport' => $configuartion->getTransportName(),
'isActive' => $configuartion->getDeliveryStatus(),
];
}, $this->swiftMailer->parseSwiftMailerConfigurations());
}, $configurations);

return new JsonResponse($collection);
}

return new JsonResponse([], 404);
}

public function removeMailerConfiguration(Request $request, ContainerInterface $container)
public function removeMailerConfiguration(Request $request, ContainerInterface $container, MailerService $mailerService, TranslatorInterface $translator)
{
$params = $request->query->all();
$swiftmailer = $this->swiftMailer;
$configurations = $swiftmailer->parseSwiftMailerConfigurations();
$configurations = $mailerService->parseMailerConfigurations();

if (!empty($configurations)) {
foreach ($configurations as $index => $configuration) {
if ($configuration->getId() == $params['id']) {
$swiftmailerConfiguration = $configuration;
$mailerConfiguration = $configuration;
break;
}
}

if (!empty($swiftmailerConfiguration)) {
if (!empty($mailerConfiguration)) {
unset($configurations[$index]);

// Dispatch swiftmailer configuration removed event
$event = new ConfigurationRemovedEvent($swiftmailerConfiguration);
// Dispatch mailer configuration removed event
$event = new ConfigurationRemovedEvent($mailerConfiguration);
$container->get('uvdesk.core.event_dispatcher')->dispatch($event,ConfigurationRemovedEvent::NAME);

// Update swiftmailer configuration file
$swiftmailer->writeSwiftMailerConfigurations($configurations);
// Update mailer configuration file
$mailerService->writeMailerConfigurations($configurations);

return new JsonResponse([
'alertClass' => 'success',
'alertMessage' => $this->translator->trans('Swiftmailer configuration removed successfully.'),
'alertMessage' => $translator->trans('Mailer configuration removed successfully.'),
]);
}
}

return new JsonResponse([
'alertClass' => 'error',
'alertMessage' => $this->translator->trans('No swiftmailer configurations found for mailer id:') . $params['id'],
'alertMessage' => $translator->trans('No mailer configurations found for mailer id:') . $params['id'],
], 404);
}
}
Loading

0 comments on commit 3e9b4bb

Please sign in to comment.