MOON
Server: Apache
System: Linux nserver.cafsindia.com 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: cafsindia (1002)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: //home/cafsindia/help.cafsindia.com/src/Controller/BaseController.php
<?php

namespace App\Controller;

use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpKernel\KernelInterface;
use Webkul\UVDesk\CoreFrameworkBundle\Entity\Website;
use Webkul\UVDesk\CoreFrameworkBundle\Entity\SupportRole;
use Webkul\UVDesk\CoreFrameworkBundle\Entity\UserInstance;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;

class BaseController extends AbstractController
{
    /**
     * Forward request to other controllers based on application state.
     *
     * @Route("/", name="base_route")
     */
    public function base(EntityManagerInterface $entityManager, KernelInterface $kernel)
    {
        try {
            // For a quick check we'll just see if support roles have been defined.
            $ownerSupportRole = $entityManager->getRepository(SupportRole::class)->findOneByCode('ROLE_SUPER_ADMIN');
            $administratorSupportRole = $entityManager->getRepository(SupportRole::class)->findOneByCode('ROLE_ADMIN');

            if (!empty($ownerSupportRole) || !empty($administratorSupportRole)) {
                $userInstanceRepository = $entityManager->getRepository(UserInstance::class);
                
                // If support roles are present, we'll check if any users exists with the administrator role.
                $owners = $userInstanceRepository->findBySupportRole($ownerSupportRole);
                $administrators = $userInstanceRepository->findBySupportRole($administratorSupportRole);

                if (!empty($owners) || !empty($administrators)) {
                    $availableBundles = array_keys($kernel->getBundles());
                    $websiteRepository = $entityManager->getRepository(Website::class);

                    // Redirect user to front panel
                    if (in_array('UVDeskSupportCenterBundle', $availableBundles)) {
                        $supportCenterWebsite = $websiteRepository->findOneByCode('knowledgebase');

                        if (!empty($supportCenterWebsite)) {
                            return $this->redirectToRoute('helpdesk_knowledgebase', [], 301);
                        }
                    }

                    // Redirect user to back panel
                    $helpdeskWebsite = $websiteRepository->findOneByCode('helpdesk');

                    if (!empty($helpdeskWebsite)) {
                        return $this->redirectToRoute('helpdesk_member_handle_login');
                    }
                }
            }
        } catch (\Exception $e) {
            // ...
        }
        
        return $this->forward(ConfigureHelpdesk::class . "::load");
    }
}