mirror of
https://github.com/Combodo/iTop.git
synced 2026-05-20 15:52:24 +02:00
migration symfony 5 4 (#300)
* symfony 5.4 (diff dev) * symfony 5.4 (working) * symfony 5.4 (update autoload) * symfony 5.4 (remove swiftmailer mailer implementation) * symfony 5.4 (php doc and split Global accessor class) ### Impacted packages: composer require php:">=7.2.5 <8.0.0" symfony/console:5.4.* symfony/dotenv:5.4.* symfony/framework-bundle:5.4.* symfony/twig-bundle:5.4.* symfony/yaml:5.4.* --update-with-dependencies composer require symfony/stopwatch:5.4.* symfony/web-profiler-bundle:5.4.* --dev --update-with-dependencies
This commit is contained in:
@@ -14,20 +14,18 @@ set_time_limit(0);
|
||||
|
||||
if (!defined('APPROOT'))
|
||||
{
|
||||
if (file_exists(__DIR__.'/../../../../approot.inc.php'))
|
||||
{
|
||||
require_once __DIR__.'/../../../../approot.inc.php'; // When in env-xxxx folder
|
||||
}
|
||||
else
|
||||
{
|
||||
require_once __DIR__.'/../../../../../approot.inc.php'; // When in datamodels/x.x folder
|
||||
}
|
||||
if (file_exists(__DIR__.'/../../../../approot.inc.php')) {
|
||||
require_once __DIR__ . '/../../../../approot.inc.php'; // When in env-xxxx folder
|
||||
} else {
|
||||
require_once __DIR__ . '/../../../../../approot.inc.php'; // When in datamodels/x.x folder
|
||||
}
|
||||
}
|
||||
require_once APPROOT.'lib/autoload.php';
|
||||
require_once APPROOT . 'lib/autoload.php';
|
||||
|
||||
if (!class_exists(Application::class))
|
||||
{
|
||||
throw new RuntimeException('You need to add "symfony/framework-bundle" as a Composer dependency.');
|
||||
require_once APPROOT . 'application/startup.inc.php';
|
||||
|
||||
if (!class_exists(Application::class)) {
|
||||
throw new RuntimeException('You need to add "symfony/framework-bundle" as a Composer dependency.');
|
||||
}
|
||||
|
||||
// Remove --portal_id from CLI params to avoid SF CLI conflicts
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
// Disable PhpUnhandledExceptionInspection as the exception handling is made by the file including this one
|
||||
/** @noinspection PhpUnhandledExceptionInspection */
|
||||
|
||||
use Symfony\Component\Debug\Debug;
|
||||
use Symfony\Component\ErrorHandler\Debug;
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
// Global autoloader (portal autoloader is already required through module.itop-portal-base.php)
|
||||
@@ -43,55 +43,43 @@ if (!defined('MODULESROOT'))
|
||||
|
||||
// Load cached env vars if the .env.local.php file exists
|
||||
// Run "composer dump-env prod" to create it (requires symfony/flex >=1.2)
|
||||
if (is_array($sEnv = @include dirname(__DIR__).'/.env.local.php'))
|
||||
{
|
||||
$_ENV += $sEnv;
|
||||
}
|
||||
elseif (!class_exists(Dotenv::class))
|
||||
{
|
||||
if (file_exists(dirname(__DIR__).'/.env.local.php')) {
|
||||
if (is_array($sEnv = @include dirname(__DIR__).'/.env.local.php')) {
|
||||
$_ENV += $sEnv;
|
||||
}
|
||||
} elseif (!class_exists(Dotenv::class)) {
|
||||
throw new RuntimeException('Please run "composer require symfony/dotenv" to load the ".env" files configuring the application.');
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
$sPath = dirname(__DIR__).'/.env';
|
||||
$oDotenv = new Dotenv();
|
||||
$oDotenv->usePutenv();
|
||||
|
||||
// load all the .env files
|
||||
if (method_exists($oDotenv, 'loadEnv'))
|
||||
{
|
||||
if (method_exists($oDotenv, 'loadEnv')) {
|
||||
$oDotenv->loadEnv($sPath);
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
// fallback code in case your Dotenv component is not 4.2 or higher (when loadEnv() was added)
|
||||
|
||||
if (file_exists($sPath) || !file_exists($sPathDist = "$sPath.dist"))
|
||||
{
|
||||
if (file_exists($sPath) || !file_exists($sPathDist = "$sPath.dist")) {
|
||||
$oDotenv->load($sPath);
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
$oDotenv->load($sPathDist);
|
||||
}
|
||||
|
||||
if (null === $sEnv = (isset($_SERVER['APP_ENV']) ? $_SERVER['APP_ENV'] : (isset($_ENV['APP_ENV']) ? $_ENV['APP_ENV'] : null)))
|
||||
{
|
||||
if (null === $sEnv = (isset($_SERVER['APP_ENV']) ? $_SERVER['APP_ENV'] : (isset($_ENV['APP_ENV']) ? $_ENV['APP_ENV'] : null))) {
|
||||
$oDotenv->populate(array('APP_ENV' => $sEnv = 'prod'));
|
||||
}
|
||||
|
||||
if ('test' !== $sEnv && file_exists($sPathDist = "$sPath.local"))
|
||||
{
|
||||
if ('test' !== $sEnv && file_exists($sPathDist = "$sPath.local")) {
|
||||
$oDotenv->load($sPathDist);
|
||||
$sEnv = isset($_SERVER['APP_ENV']) ? $_SERVER['APP_ENV'] : (isset($_ENV['APP_ENV']) ? $_ENV['APP_ENV'] : $sEnv);
|
||||
}
|
||||
|
||||
if (file_exists($sPathDist = "$sPath.$sEnv"))
|
||||
{
|
||||
if (file_exists($sPathDist = "$sPath.$sEnv")) {
|
||||
$oDotenv->load($sPathDist);
|
||||
}
|
||||
|
||||
if (file_exists($sPathDist = "$sPath.$sEnv.local"))
|
||||
{
|
||||
if (file_exists($sPathDist = "$sPath.$sEnv.local")) {
|
||||
$oDotenv->load($sPathDist);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
framework:
|
||||
cache:
|
||||
# Put the unique name of your app here: the prefix seed
|
||||
# is used to compute stable namespaces for cache keys.
|
||||
# Unique name of your app: used to compute stable namespaces for cache keys.
|
||||
#prefix_seed: your_vendor_name/app_name
|
||||
|
||||
# The app cache caches to the filesystem by default.
|
||||
# The "app" cache stores to the filesystem by default.
|
||||
# The data in this cache should persist between deploys.
|
||||
# Other options include:
|
||||
|
||||
# Redis
|
||||
@@ -16,4 +16,4 @@ framework:
|
||||
|
||||
# Namespaced pools use the above "app" backend by default
|
||||
#pools:
|
||||
#my.dedicated.cache: ~
|
||||
#my.dedicated.cache: null
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
framework:
|
||||
router:
|
||||
strict_requirements: true
|
||||
@@ -1,6 +0,0 @@
|
||||
web_profiler:
|
||||
toolbar: true
|
||||
intercept_redirects: false
|
||||
|
||||
framework:
|
||||
profiler: { only_exceptions: false }
|
||||
@@ -7,9 +7,25 @@ framework:
|
||||
# Enables session support. Note that the session will ONLY be started if you read or write from it.
|
||||
# Remove or comment this section to explicitly disable session support.
|
||||
session:
|
||||
handler_id: ~
|
||||
handler_id: null
|
||||
cookie_secure: auto
|
||||
cookie_samesite: lax
|
||||
storage_factory_id: session.storage.factory.native
|
||||
|
||||
#esi: true
|
||||
#fragments: true
|
||||
php_errors:
|
||||
log: true
|
||||
|
||||
when@test:
|
||||
framework:
|
||||
test: true
|
||||
profiler: { collect: false }
|
||||
router: { strict_requirements: true}
|
||||
session:
|
||||
storage_factory_id: session.storage.factory.mock_file
|
||||
|
||||
when@dev:
|
||||
framework:
|
||||
profiler: { only_exceptions: false }
|
||||
router: { strict_requirements: true}
|
||||
@@ -1,3 +1,17 @@
|
||||
framework:
|
||||
router:
|
||||
strict_requirements: ~
|
||||
utf8: true
|
||||
|
||||
# Configure how to generate URLs in non-HTTP contexts, such as CLI commands.
|
||||
# See https://symfony.com/doc/current/routing.html#generating-urls-in-commands
|
||||
#default_uri: http://localhost
|
||||
|
||||
when@prod:
|
||||
framework:
|
||||
router:
|
||||
strict_requirements: null
|
||||
|
||||
when@dev:
|
||||
framework:
|
||||
router:
|
||||
strict_requirements: true
|
||||
@@ -1,4 +0,0 @@
|
||||
framework:
|
||||
test: true
|
||||
session:
|
||||
storage_id: session.storage.mock_file
|
||||
@@ -1,3 +0,0 @@
|
||||
framework:
|
||||
router:
|
||||
strict_requirements: true
|
||||
@@ -1,6 +0,0 @@
|
||||
web_profiler:
|
||||
toolbar: false
|
||||
intercept_redirects: false
|
||||
|
||||
framework:
|
||||
profiler: { collect: false }
|
||||
@@ -2,3 +2,7 @@ twig:
|
||||
default_path: '%combodo.modules.absolute_path%'
|
||||
debug: '%kernel.debug%'
|
||||
strict_variables: '%kernel.debug%'
|
||||
|
||||
when@test:
|
||||
twig:
|
||||
strict_variables: true
|
||||
@@ -0,0 +1,12 @@
|
||||
|
||||
when@dev:
|
||||
web_profiler:
|
||||
toolbar: true
|
||||
intercept_redirects: false
|
||||
|
||||
when@test:
|
||||
web_profiler:
|
||||
toolbar: false
|
||||
intercept_redirects: false
|
||||
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
_errors:
|
||||
resource: '@TwigBundle/Resources/config/routing/errors.xml'
|
||||
prefix: /_error
|
||||
@@ -1,7 +0,0 @@
|
||||
web_profiler_wdt:
|
||||
resource: '@WebProfilerBundle/Resources/config/routing/wdt.xml'
|
||||
prefix: /_wdt
|
||||
|
||||
web_profiler_profiler:
|
||||
resource: '@WebProfilerBundle/Resources/config/routing/profiler.xml'
|
||||
prefix: /_profiler
|
||||
@@ -0,0 +1,4 @@
|
||||
when@dev:
|
||||
_errors:
|
||||
resource: '@FrameworkBundle/Resources/config/routing/errors.xml'
|
||||
prefix: /_error
|
||||
@@ -0,0 +1,8 @@
|
||||
when@dev:
|
||||
web_profiler_wdt:
|
||||
resource: '@WebProfilerBundle/Resources/config/routing/wdt.xml'
|
||||
prefix: /_wdt
|
||||
|
||||
web_profiler_profiler:
|
||||
resource: '@WebProfilerBundle/Resources/config/routing/profiler.xml'
|
||||
prefix: /_profiler
|
||||
@@ -24,8 +24,6 @@ imports:
|
||||
# Put parameters here that don't need to change on each machine where the app is deployed
|
||||
# https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
|
||||
parameters:
|
||||
# Replace default url generator service
|
||||
router.options.generator_base_class: Combodo\iTop\Portal\Routing\UrlGenerator
|
||||
|
||||
# Used in templates
|
||||
combodo.current_environment: '%env(string:COMBODO_CURRENT_ENVIRONMENT)%'
|
||||
@@ -100,17 +98,19 @@ services:
|
||||
- '@Combodo\iTop\Portal\Twig\AppVariable.inner'
|
||||
- '@service_container'
|
||||
|
||||
Combodo\iTop\Portal\Routing\UrlGenerator:
|
||||
decorates: 'router'
|
||||
arguments: ['@Combodo\iTop\Portal\Routing\UrlGenerator.inner']
|
||||
|
||||
# Standard services
|
||||
combodo.current_contact.photo_url:
|
||||
public: true
|
||||
class: Combodo\iTop\Portal\VariableAccessor\CombodoCurrentContactPhotoUrl
|
||||
arguments: ['@combodo.current_user', '@service_container']
|
||||
# Note: This service is initialized with a UserLocal object as it needs a class that can be instantiated.
|
||||
# Anyway, it will be replaced with the real class by UserProvider in onKernelRequestEvent.
|
||||
# Note: Services relying on this one should use \User in their signature and not \UserLocal.
|
||||
arguments: ['@Combodo\iTop\Portal\EventListener\UserProvider', '@service_container']
|
||||
|
||||
combodo.current_user:
|
||||
alias: Combodo\iTop\Portal\Twig\CurrentUserAccessor
|
||||
public: true
|
||||
class: UserLocal
|
||||
|
||||
# Aliases
|
||||
brick_collection:
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
namespace Combodo\iTop\Portal\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use \Symfony\Bundle\FrameworkBundle\Controller\AbstractController as SymfonyAbstractController;
|
||||
|
||||
/**
|
||||
* Class AbstractController
|
||||
@@ -29,8 +29,37 @@ use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
* @author Guillaume Lajarige <guillaume.lajarige@combodo.com>
|
||||
* @since 2.3.0
|
||||
*/
|
||||
abstract class AbstractController extends Controller
|
||||
abstract class AbstractController extends SymfonyAbstractController
|
||||
{
|
||||
/**
|
||||
* Return services needed inside controllers.
|
||||
* Allow access to service via $controller->get(`service_name`).
|
||||
*
|
||||
* Improvement: Use service dependency injection
|
||||
*
|
||||
* @return array array of service injected to controllers
|
||||
* @since 3.1.0
|
||||
*
|
||||
*/
|
||||
public static function getSubscribedServices(): array
|
||||
{
|
||||
return array_merge(parent::getSubscribedServices(), [
|
||||
'brick_collection' => 'Combodo\iTop\Portal\Brick\BrickCollection',
|
||||
'request_manipulator' => 'Combodo\iTop\Portal\Helper\RequestManipulatorHelper',
|
||||
'scope_validator' => 'Combodo\iTop\Portal\Helper\ScopeValidatorHelper',
|
||||
'security_helper' => 'Combodo\iTop\Portal\Helper\SecurityHelper',
|
||||
'context_manipulator' => 'Combodo\iTop\Portal\Helper\ContextManipulatorHelper',
|
||||
'navigation_rule_helper' => 'Combodo\iTop\Portal\Helper\NavigationRuleHelper',
|
||||
'ui_extensions_helper' => 'Combodo\iTop\Portal\Helper\UIExtensionsHelper',
|
||||
'lifecycle_validator' => 'Combodo\iTop\Portal\Helper\LifecycleValidatorHelper',
|
||||
'url_generator' => 'router',
|
||||
'object_form_handler' => 'Combodo\iTop\Portal\Helper\ObjectFormHandlerHelper',
|
||||
'browse_brick' => 'Combodo\iTop\Portal\Helper\BrowseBrickHelper',
|
||||
'brick_controller_helper' => 'Combodo\iTop\Portal\Helper\BrickControllerHelper',
|
||||
'session_message_helper' => 'Combodo\iTop\Portal\Helper\SessionMessageHelper',
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Unlike {@see \Symfony\Bundle\FrameworkBundle\Controller\ControllerTrait::redirectToRoute()}, this method directly calls the route controller without creating a redirection client side
|
||||
*
|
||||
|
||||
@@ -40,11 +40,11 @@ class AggregatePageBrickController extends BrickController
|
||||
{
|
||||
/**
|
||||
* @param \Symfony\Component\HttpFoundation\Request $oRequest
|
||||
* @param string $sBrickId
|
||||
* @param string $sBrickId
|
||||
*
|
||||
* @return \Symfony\Component\HttpFoundation\Response
|
||||
*
|
||||
* @throws \Combodo\iTop\Portal\Brick\BrickNotFoundException
|
||||
* @throws BrickNotFoundException
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function DisplayAction(Request $oRequest, $sBrickId)
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
namespace Combodo\iTop\Portal\EventListener;
|
||||
|
||||
use ApplicationContext;
|
||||
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
|
||||
use Symfony\Component\HttpKernel\Event\RequestEvent;
|
||||
use UserRights;
|
||||
use utils;
|
||||
|
||||
@@ -34,17 +34,16 @@ use utils;
|
||||
class ApplicationContextSetPluginPropertyClass
|
||||
{
|
||||
/**
|
||||
* @param \Symfony\Component\HttpKernel\Event\GetResponseEvent $oGetResponseEvent
|
||||
* @param RequestEvent $oRequestEvent
|
||||
*/
|
||||
public function onKernelRequest(GetResponseEvent $oGetResponseEvent)
|
||||
{
|
||||
// Enable archived data
|
||||
utils::InitArchiveMode();
|
||||
|
||||
// Enabling datalocalizer if needed
|
||||
if (!defined('DISABLE_DATA_LOCALIZER_PORTAL'))
|
||||
{
|
||||
ApplicationContext::SetPluginProperty('QueryLocalizerPlugin', 'language_code', UserRights::GetUserLanguage());
|
||||
}
|
||||
}
|
||||
public function onKernelRequest(RequestEvent $oRequestEvent)
|
||||
{
|
||||
// Enable archived data
|
||||
utils::InitArchiveMode();
|
||||
|
||||
// Enabling datalocalizer if needed
|
||||
if (!defined('DISABLE_DATA_LOCALIZER_PORTAL')) {
|
||||
ApplicationContext::SetPluginProperty('QueryLocalizerPlugin', 'language_code', UserRights::GetUserLanguage());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -20,7 +20,7 @@
|
||||
namespace Combodo\iTop\Portal\EventListener;
|
||||
|
||||
use ApplicationContext;
|
||||
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
|
||||
use Symfony\Component\HttpKernel\Event\RequestEvent;
|
||||
|
||||
/**
|
||||
* Class ApplicationContextSetUrlMakerClass
|
||||
@@ -43,13 +43,12 @@ class ApplicationContextSetUrlMakerClass
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \Symfony\Component\HttpKernel\Event\GetResponseEvent $oGetResponseEvent
|
||||
* @param RequestEvent $oRequestEvent
|
||||
*/
|
||||
public function onKernelRequest(GetResponseEvent $oGetResponseEvent)
|
||||
{
|
||||
if ($this->aCombodoPortalInstanceConf['properties']['urlmaker_class'] !== null)
|
||||
{
|
||||
ApplicationContext::SetUrlMakerClass($this->aCombodoPortalInstanceConf['properties']['urlmaker_class']);
|
||||
}
|
||||
}
|
||||
public function onKernelRequest(RequestEvent $oRequestEvent)
|
||||
{
|
||||
if ($this->aCombodoPortalInstanceConf['properties']['urlmaker_class'] !== null) {
|
||||
ApplicationContext::SetUrlMakerClass($this->aCombodoPortalInstanceConf['properties']['urlmaker_class']);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
namespace Combodo\iTop\Portal\EventListener;
|
||||
|
||||
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
|
||||
use Symfony\Component\HttpKernel\Event\RequestEvent;
|
||||
use utils;
|
||||
|
||||
/**
|
||||
@@ -47,19 +47,17 @@ class CssFromSassCompiler
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \Symfony\Component\HttpKernel\Event\GetResponseEvent $oGetResponseEvent
|
||||
* @param RequestEvent $oRequestEvent
|
||||
*/
|
||||
public function onKernelRequest(GetResponseEvent $oGetResponseEvent)
|
||||
public function onKernelRequest(RequestEvent $oRequestEvent)
|
||||
{
|
||||
// Force compilation need only when by-passing cache to limit server load.
|
||||
if (isset($_SERVER['HTTP_CACHE_CONTROL']) && ($_SERVER['HTTP_CACHE_CONTROL'] !== 'no-cache'))
|
||||
{
|
||||
if (isset($_SERVER['HTTP_CACHE_CONTROL']) && ($_SERVER['HTTP_CACHE_CONTROL'] !== 'no-cache')) {
|
||||
return;
|
||||
}
|
||||
|
||||
$aImportPaths = array($_ENV['COMBODO_PORTAL_BASE_ABSOLUTE_PATH'].'css/');
|
||||
foreach ($this->aCombodoPortalInstanceConf['properties']['themes'] as $sKey => $value)
|
||||
{
|
||||
foreach ($this->aCombodoPortalInstanceConf['properties']['themes'] as $sKey => $value) {
|
||||
if (!is_array($value))
|
||||
{
|
||||
utils::GetCSSFromSASS('env-'.utils::GetCurrentEnvironment().'/'.$value, $aImportPaths);
|
||||
|
||||
@@ -24,13 +24,12 @@ namespace Combodo\iTop\Portal\EventListener;
|
||||
|
||||
use Dict;
|
||||
use ExceptionLog;
|
||||
use IssueLog;
|
||||
use Symfony\Component\Debug\Exception\FlattenException;
|
||||
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
use Symfony\Component\ErrorHandler\Exception\FlattenException;
|
||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
|
||||
use Symfony\Component\HttpKernel\Event\ExceptionEvent;
|
||||
use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
|
||||
|
||||
/**
|
||||
@@ -52,10 +51,10 @@ class ExceptionListener implements ContainerAwareInterface
|
||||
* @throws \Twig\Error\RuntimeError
|
||||
* @throws \Twig\Error\SyntaxError
|
||||
*/
|
||||
public function onKernelException(GetResponseForExceptionEvent $oEvent)
|
||||
public function onKernelException(ExceptionEvent $oEvent)
|
||||
{
|
||||
// Get the exception object from the received event
|
||||
$oException = $oEvent->getException();
|
||||
$oException = $oEvent->getThrowable();
|
||||
|
||||
// Prepare / format exception data
|
||||
if ($oException instanceof \MySQLException) {
|
||||
@@ -78,7 +77,7 @@ class ExceptionListener implements ContainerAwareInterface
|
||||
}
|
||||
|
||||
// Prepare flatten exception
|
||||
$oFlattenException = ($_SERVER['APP_DEBUG'] == 1) ? FlattenException::create($oException) : null;
|
||||
$oFlattenException = ($_SERVER['APP_DEBUG'] == 1) ? FlattenException::createFromThrowable($oException) : null;
|
||||
// Remove APPROOT from file paths if in production (SF context)
|
||||
if (!is_null($oFlattenException) && ($_SERVER['APP_ENV'] === 'prod'))
|
||||
{
|
||||
|
||||
@@ -26,7 +26,7 @@ use ModuleDesign;
|
||||
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
|
||||
use Symfony\Component\HttpKernel\Event\RequestEvent;
|
||||
use Symfony\Component\HttpKernel\Exception\HttpException;
|
||||
use UserRights;
|
||||
|
||||
@@ -44,12 +44,16 @@ class UserProvider implements ContainerAwareInterface
|
||||
private $sPortalId;
|
||||
/** @var \Symfony\Component\DependencyInjection\ContainerInterface $container */
|
||||
private $oContainer;
|
||||
/** @var \User $oUser */
|
||||
private $oUser;
|
||||
/** @var array $aAllowedPortals */
|
||||
private $aAllowedPortals;
|
||||
|
||||
/**
|
||||
* UserProvider constructor.
|
||||
*
|
||||
* @param \ModuleDesign $oModuleDesign
|
||||
* @param string $sPortalId
|
||||
* @param string $sPortalId
|
||||
*/
|
||||
public function __construct(ModuleDesign $oModuleDesign, $sPortalId)
|
||||
{
|
||||
@@ -58,11 +62,11 @@ class UserProvider implements ContainerAwareInterface
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \Symfony\Component\HttpKernel\Event\GetResponseEvent $oGetResponseEvent
|
||||
* @param RequestEvent $oRequestEvent
|
||||
*
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function onKernelRequest(GetResponseEvent $oGetResponseEvent)
|
||||
public function onKernelRequest(RequestEvent $oRequestEvent)
|
||||
{
|
||||
// User pre-checks
|
||||
// Note: The following note and handling of the $iExitMethod were for the old login mechanism
|
||||
@@ -71,45 +75,62 @@ class UserProvider implements ContainerAwareInterface
|
||||
//
|
||||
// Note: At this point the Exception handler is not registered, so we can't use $oApp::abort() method, hence the die().
|
||||
// - Checking user rights and prompt if needed (401 HTTP code returned if XHR request)
|
||||
$iExitMethod = ($oGetResponseEvent->getRequest()->isXmlHttpRequest()) ? LoginWebPage::EXIT_RETURN : LoginWebPage::EXIT_PROMPT;
|
||||
$iExitMethod = ($oRequestEvent->getRequest()->isXmlHttpRequest()) ? LoginWebPage::EXIT_RETURN : LoginWebPage::EXIT_PROMPT;
|
||||
$iLogonRes = LoginWebPage::DoLoginEx($this->sPortalId, false, $iExitMethod);
|
||||
if( ($iExitMethod === LoginWebPage::EXIT_RETURN) && ($iLogonRes != 0) )
|
||||
{
|
||||
if( ($iExitMethod === LoginWebPage::EXIT_RETURN) && ($iLogonRes != 0) ) {
|
||||
die(Dict::S('Portal:ErrorUserLoggedOut'));
|
||||
}
|
||||
// - User must be associated with a Contact
|
||||
if (UserRights::GetContactId() == 0)
|
||||
{
|
||||
if (UserRights::GetContactId() == 0) {
|
||||
die(Dict::S('Portal:ErrorNoContactForThisUser'));
|
||||
}
|
||||
|
||||
// User
|
||||
$oUser = UserRights::GetUserObject();
|
||||
if ($oUser === null)
|
||||
{
|
||||
$this->oUser = UserRights::GetUserObject();
|
||||
if ($this->oUser === null) {
|
||||
throw new Exception('Could not load connected user.');
|
||||
}
|
||||
$this->oContainer->set('combodo.current_user', $oUser);
|
||||
|
||||
// Allowed portals
|
||||
$aAllowedPortals = UserRights::GetAllowedPortals();
|
||||
|
||||
// Checking that user is allowed this portal
|
||||
$bAllowed = false;
|
||||
foreach ($aAllowedPortals as $aAllowedPortal)
|
||||
{
|
||||
if ($aAllowedPortal['id'] === $this->sPortalId)
|
||||
{
|
||||
foreach ($aAllowedPortals as $aAllowedPortal) {
|
||||
if ($aAllowedPortal['id'] === $this->sPortalId) {
|
||||
$bAllowed = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!$bAllowed)
|
||||
{
|
||||
if (!$bAllowed) {
|
||||
throw new HttpException(Response::HTTP_NOT_FOUND);
|
||||
}
|
||||
/** @noinspection PhpParamsInspection It's an array and it's gonna stay that way */
|
||||
$this->oContainer->set('combodo.current_user.allowed_portals', $aAllowedPortals);
|
||||
|
||||
$this->aAllowedPortals = $aAllowedPortals;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get current user.
|
||||
*
|
||||
* @return \User current user
|
||||
* @since 3.1.0
|
||||
*
|
||||
*/
|
||||
public function getCurrentUser()
|
||||
{
|
||||
return $this->oUser;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get allowed portals.
|
||||
*
|
||||
* @return array allowed portals
|
||||
* @since 3.1.0
|
||||
*
|
||||
*/
|
||||
public function getAllowedPortals()
|
||||
{
|
||||
return $this->aAllowedPortals;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -36,7 +36,8 @@ use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpKernel\Exception\HttpException;
|
||||
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
||||
use Twig_Environment;
|
||||
use Twig\Environment;
|
||||
use Twig\Loader\ArrayLoader;
|
||||
use Twig_Loader_Array;
|
||||
use URLButtonItem;
|
||||
use UserRights;
|
||||
@@ -420,7 +421,7 @@ class ObjectFormHandlerHelper
|
||||
public function RenderFormFromTwig($sId, $sTwigString, $aData)
|
||||
{
|
||||
// Creating sandbox twig env. to load and test the custom form template
|
||||
$oTwig = new Twig_Environment(new Twig_Loader_Array(array($sId => $sTwigString)));
|
||||
$oTwig = new Environment(new ArrayLoader(array($sId => $sTwigString)));
|
||||
|
||||
// Manually registering filters and functions as we didn't find how to do it automatically
|
||||
$aFilters = $this->oAppExtension->getFilters();
|
||||
|
||||
@@ -83,9 +83,6 @@ class Kernel extends BaseKernel
|
||||
protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader)
|
||||
{
|
||||
$container->addResource(new FileResource($this->getProjectDir().'/config/bundles.php'));
|
||||
// Feel free to remove the "container.autowiring.strict_mode" parameter
|
||||
// if you are using symfony/dependency-injection 4.0+ as it's the default behavior
|
||||
$container->setParameter('container.autowiring.strict_mode', true);
|
||||
$container->setParameter('container.dumper.inline_class_loader', true);
|
||||
$confDir = $this->getProjectDir().'/config';
|
||||
|
||||
|
||||
@@ -19,43 +19,72 @@
|
||||
|
||||
namespace Combodo\iTop\Portal\Routing;
|
||||
|
||||
use Symfony\Component\Routing\RequestContext;
|
||||
use Symfony\Component\Routing\RouterInterface;
|
||||
use utils;
|
||||
use Symfony\Component\Routing\Generator\UrlGenerator as BaseUrlGenerator;
|
||||
|
||||
/**
|
||||
* Class UrlGenerator
|
||||
*
|
||||
* @author Benjamin Dalsass <benjamin.dalsass@combodo.com>
|
||||
* @package Combodo\iTop\Portal\Routing
|
||||
* @since 2.7.0
|
||||
* @author Bruno Da Silva <bruno.dasilva@combodo.com>
|
||||
* @author Guillaume Lajarige <guillaume.lajarige@combodo.com>
|
||||
* @since 3.1.0
|
||||
*/
|
||||
class UrlGenerator extends BaseUrlGenerator
|
||||
class UrlGenerator implements RouterInterface
|
||||
{
|
||||
/** @noinspection PhpTooManyParametersInspection */
|
||||
/** @var \Symfony\Component\Routing\RouterInterface $router */
|
||||
private $router;
|
||||
|
||||
/**
|
||||
* Overloading of the parent function to add the $_REQUEST parameters to the url parameters.
|
||||
* This is used to keep additional parameters in the url, especially when portal is accessed from the /pages/exec.php
|
||||
* Constructor.
|
||||
*
|
||||
* Note: As of now, it only adds the exec_module/exec_page/portal_id/env_switch/debug parameters. Any other parameter will be ignored.
|
||||
*
|
||||
* @param $variables
|
||||
* @param $defaults
|
||||
* @param $requirements
|
||||
* @param $tokens
|
||||
* @param $parameters
|
||||
* @param $name
|
||||
* @param $referenceType
|
||||
* @param $hostTokens
|
||||
* @param array $requiredSchemes
|
||||
*
|
||||
* @return string
|
||||
* @param \Symfony\Component\Routing\RouterInterface $router
|
||||
*/
|
||||
protected function doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $referenceType, $hostTokens, array $requiredSchemes = array())
|
||||
public function __construct(RouterInterface $router)
|
||||
{
|
||||
$this->router = $router;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function generate($name, $parameters = [], $referenceType = self::ABSOLUTE_PATH)
|
||||
{
|
||||
$parameters = $this->getExtraParams($parameters);
|
||||
|
||||
return parent::doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $referenceType, $hostTokens, $requiredSchemes);
|
||||
return $this->router->generate($name, $parameters, $referenceType);
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function setContext(RequestContext $context)
|
||||
{
|
||||
$this->router->setContext($context);
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function getContext()
|
||||
{
|
||||
return $this->router->getContext();
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function getRouteCollection()
|
||||
{
|
||||
return $this->router->getRouteCollection();
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function match($pathinfo)
|
||||
{
|
||||
return $this->router->match($pathinfo);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -67,26 +96,22 @@ class UrlGenerator extends BaseUrlGenerator
|
||||
{
|
||||
$sExecModule = utils::ReadParam('exec_module', '', false, 'string');
|
||||
$sExecPage = utils::ReadParam('exec_page', '', false, 'string');
|
||||
if ($sExecModule !== '' && $sExecPage !== '')
|
||||
{
|
||||
if ($sExecModule !== '' && $sExecPage !== '') {
|
||||
$aParameters['exec_module'] = $sExecModule;
|
||||
$aParameters['exec_page'] = $sExecPage;
|
||||
}
|
||||
|
||||
// Optional parameters
|
||||
$sPortalId = utils::ReadParam('portal_id', '', false, 'string');
|
||||
if ($sPortalId !== '')
|
||||
{
|
||||
if ($sPortalId !== '') {
|
||||
$aParameters['portal_id'] = $sPortalId;
|
||||
}
|
||||
$sEnvSwitch = utils::ReadParam('env_switch', '', false, 'string');
|
||||
if ($sEnvSwitch !== '')
|
||||
{
|
||||
if ($sEnvSwitch !== '') {
|
||||
$aParameters['env_switch'] = $sEnvSwitch;
|
||||
}
|
||||
$sDebug = utils::ReadParam('debug', '', false, 'string');
|
||||
if ($sDebug !== '')
|
||||
{
|
||||
if ($sDebug !== '') {
|
||||
$aParameters['debug'] = $sDebug;
|
||||
}
|
||||
|
||||
|
||||
@@ -19,18 +19,9 @@
|
||||
|
||||
namespace Combodo\iTop\Portal\Twig;
|
||||
|
||||
use AttributeDate;
|
||||
use Combodo\iTop\Application\TwigBase\Twig\Extension;
|
||||
use Twig\Extension\AbstractExtension;
|
||||
|
||||
use AttributeDateTime;
|
||||
use AttributeText;
|
||||
use Twig_SimpleFilter;
|
||||
use Twig_SimpleFunction;
|
||||
use utils;
|
||||
use Dict;
|
||||
use MetaModel;
|
||||
|
||||
/**
|
||||
* Class AppExtension
|
||||
*
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (C) 2013-2021 Combodo SARL
|
||||
*
|
||||
* This file is part of iTop.
|
||||
*
|
||||
* iTop is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* iTop is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
*/
|
||||
|
||||
namespace Combodo\iTop\Portal\Twig;
|
||||
|
||||
use Combodo\iTop\Portal\EventListener\UserProvider;
|
||||
use Twig\Extension\AbstractExtension;
|
||||
use Twig\Extension\GlobalsInterface;
|
||||
|
||||
/**
|
||||
* Class AppGlobal
|
||||
*
|
||||
* Twig global injection.
|
||||
*
|
||||
* @author Benjamin Dalsass <benjamin.dalsass@combodo.com>
|
||||
* @package Combodo\iTop\Portal\Twig
|
||||
* @since 3.1.0
|
||||
*/
|
||||
class AppGlobal extends AbstractExtension implements GlobalsInterface
|
||||
{
|
||||
/** @var \Combodo\iTop\Portal\EventListener\UserProvider $userProvider */
|
||||
private $userProvider;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param \Combodo\iTop\Portal\EventListener\UserProvider $userProvider
|
||||
*/
|
||||
public function __construct(UserProvider $userProvider)
|
||||
{
|
||||
$this->userProvider = $userProvider;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return global variables.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getGlobals(): array
|
||||
{
|
||||
$data = array();
|
||||
$data['allowed_portals'] = $this->userProvider->getAllowedPortals();
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (C) 2013-2021 Combodo SARL
|
||||
*
|
||||
* This file is part of iTop.
|
||||
*
|
||||
* iTop is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* iTop is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
*/
|
||||
|
||||
namespace Combodo\iTop\Portal\Twig;
|
||||
|
||||
use Combodo\iTop\Portal\EventListener\UserProvider;
|
||||
|
||||
/**
|
||||
* Class CurrentUserAccessor
|
||||
*
|
||||
* Compatibility purpose 3.1:
|
||||
* Twig templates access current user objet directly from container, but it's not possible anymore.
|
||||
* >> app['combodo.current_user'].Get('first_name')
|
||||
* To prevent changes in templates we expose a service CurrentUserAccessor with a bridge role.
|
||||
*
|
||||
* @author Benjamin Dalsass <benjamin.dalsass@combodo.com>
|
||||
* @package Combodo\iTop\Portal\Twig
|
||||
* @since 3.1.0
|
||||
*/
|
||||
class CurrentUserAccessor
|
||||
{
|
||||
/** @var \Combodo\iTop\Portal\EventListener\UserProvider $userProvider */
|
||||
private $userProvider;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param \Combodo\iTop\Portal\EventListener\UserProvider $userProvider
|
||||
*/
|
||||
public function __construct(UserProvider $userProvider)
|
||||
{
|
||||
$this->userProvider = $userProvider;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get (UserLocal meme function)
|
||||
*
|
||||
* @param $key
|
||||
*
|
||||
* @return int|mixed|\ormLinkSet|string|null
|
||||
* @throws \ArchivedObjectException
|
||||
* @throws \CoreException
|
||||
*/
|
||||
public function Get($key)
|
||||
{
|
||||
return $this->userProvider->getCurrentUser()->Get($key);
|
||||
}
|
||||
}
|
||||
@@ -20,10 +20,10 @@
|
||||
namespace Combodo\iTop\Portal\VariableAccessor;
|
||||
|
||||
|
||||
use Combodo\iTop\Portal\EventListener\UserProvider;
|
||||
use Exception;
|
||||
use MetaModel;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
use User;
|
||||
use UserRights;
|
||||
|
||||
/**
|
||||
@@ -35,25 +35,24 @@ use UserRights;
|
||||
*/
|
||||
class CombodoCurrentContactPhotoUrl
|
||||
{
|
||||
/** @var \User $oUser */
|
||||
private $oUser;
|
||||
/** @var string $sCombodoPortalBaseAbsoluteUrl */
|
||||
private $sCombodoPortalBaseAbsoluteUrl;
|
||||
/** @var string|null $sContactPhotoUrl */
|
||||
private $sContactPhotoUrl;
|
||||
/** @var \Symfony\Component\DependencyInjection\ContainerInterface */
|
||||
private $oContainer;
|
||||
/** @var UserProvider $oUserProvider */
|
||||
private $oUserProvider;
|
||||
|
||||
/**
|
||||
* CombodoCurrentContactPhotoUrl constructor.
|
||||
*
|
||||
* @param \User $oUser
|
||||
* @param \Symfony\Component\DependencyInjection\ContainerInterface $oContainer
|
||||
* @param string $sCombodoPortalBaseAbsoluteUrl
|
||||
* @param string $sCombodoPortalBaseAbsoluteUrl
|
||||
*/
|
||||
public function __construct(User $oUser, ContainerInterface $oContainer, $sCombodoPortalBaseAbsoluteUrl)
|
||||
public function __construct(UserProvider $userProvider, ContainerInterface $oContainer, $sCombodoPortalBaseAbsoluteUrl)
|
||||
{
|
||||
$this->oUser = $oUser;
|
||||
$this->oUserProvider = $userProvider;
|
||||
$this->oContainer = $oContainer;
|
||||
$this->sCombodoPortalBaseAbsoluteUrl = $sCombodoPortalBaseAbsoluteUrl;
|
||||
$this->sContactPhotoUrl = null;
|
||||
@@ -65,8 +64,7 @@ class CombodoCurrentContactPhotoUrl
|
||||
*/
|
||||
public function __toString()
|
||||
{
|
||||
if ($this->sContactPhotoUrl === null)
|
||||
{
|
||||
if ($this->sContactPhotoUrl === null) {
|
||||
$this->sContactPhotoUrl = $this->ComputeContactPhotoUrl();
|
||||
}
|
||||
|
||||
@@ -84,44 +82,35 @@ class CombodoCurrentContactPhotoUrl
|
||||
// Contact
|
||||
$sContactPhotoUrl = "{$this->sCombodoPortalBaseAbsoluteUrl}img/user-profile-default-256px.png";
|
||||
// - Checking if we can load the contact
|
||||
try
|
||||
{
|
||||
try {
|
||||
/** @var \cmdbAbstractObject $oContact */
|
||||
$oContact = UserRights::GetContactObject();
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$oAllowedOrgSet = $this->oUser->Get('allowed_org_list');
|
||||
if ($oAllowedOrgSet->Count() > 0)
|
||||
{
|
||||
catch (Exception $e) {
|
||||
$oUser = $this->oUserProvider->getCurrentUser();
|
||||
$oAllowedOrgSet = $oUser->Get('allowed_org_list');
|
||||
if ($oAllowedOrgSet->Count() > 0) {
|
||||
throw new Exception('Could not load contact related to connected user. (Tip: Make sure the contact\'s organization is among the user\'s allowed organizations)');
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
throw new Exception('Could not load contact related to connected user.');
|
||||
}
|
||||
}
|
||||
// - Retrieving picture
|
||||
if ($oContact)
|
||||
{
|
||||
if ($oContact) {
|
||||
$sPictureAttCode = 'picture';
|
||||
if (MetaModel::IsValidAttCode(get_class($oContact), $sPictureAttCode))
|
||||
{
|
||||
if (MetaModel::IsValidAttCode(get_class($oContact), $sPictureAttCode)) {
|
||||
/** @var \ormDocument $oImage */
|
||||
$oImage = $oContact->Get($sPictureAttCode);
|
||||
if (is_object($oImage) && !$oImage->IsEmpty())
|
||||
{
|
||||
if (is_object($oImage) && !$oImage->IsEmpty()) {
|
||||
// TODO: This should be changed when refactoring the ormDocument GetDisplayUrl() and GetDownloadUrl() in iTop 3.0
|
||||
$sContactPhotoUrl = $this->oContainer->get('url_generator')->generate('p_object_document_display', [
|
||||
'sObjectClass' => get_class($oContact),
|
||||
'sObjectId' => $oContact->GetKey(),
|
||||
'sObjectId' => $oContact->GetKey(),
|
||||
'sObjectField' => $sPictureAttCode,
|
||||
'cache' => 86400,
|
||||
's' => $oImage->GetSignature(),
|
||||
]);
|
||||
}
|
||||
else
|
||||
{
|
||||
'cache' => 86400,
|
||||
's' => $oImage->GetSignature(),
|
||||
]);
|
||||
} else {
|
||||
$sContactPhotoUrl = MetaModel::GetAttributeDef(get_class($oContact), $sPictureAttCode)->Get('default_image');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,26 +22,6 @@
|
||||
margin: 0 5px;
|
||||
}
|
||||
|
||||
{# Stack trace is only displayed in debug #}
|
||||
{% if app['kernel'].debug == true %}
|
||||
code {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
{# Include SF style for the stack trace #}
|
||||
{{ include('@Twig/exception.css.twig') }}
|
||||
|
||||
{# In production (SF context, not iTop), we hide some element as the code will not be displayed #}
|
||||
{% if app['kernel'].environment == 'prod' %}
|
||||
.trace-line-header > .icon{
|
||||
display: none !important;
|
||||
}
|
||||
.trace-code{
|
||||
display: none !important;
|
||||
|
||||
}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</style>
|
||||
{% endblock %}
|
||||
|
||||
@@ -61,36 +41,6 @@
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{% if app['kernel'].debug == true %}
|
||||
<div class="exceptions-container">
|
||||
{# Note: The following is copied by the '@Twig/Exception/exception.html.twig' #}
|
||||
{% set exception_as_array = exception.toarray %}
|
||||
{% set _exceptions_with_user_code = [] %}
|
||||
{% for i, e in exception_as_array %}
|
||||
{% for trace in e.trace %}
|
||||
{% if (trace.file is not empty) and ('/vendor/' not in trace.file) and ('/var/cache/' not in trace.file) and not loop.last %}
|
||||
{% set _exceptions_with_user_code = _exceptions_with_user_code|merge([i]) %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
<h3 class="tab-title">
|
||||
{% if exception_as_array|length > 1 %}
|
||||
Exceptions <span class="badge">{{ exception_as_array|length }}</span>
|
||||
{% else %}
|
||||
Exception
|
||||
{% endif %}
|
||||
</h3>
|
||||
|
||||
<div class="tab-content">
|
||||
{% for i, e in exception_as_array %}
|
||||
{{ include('@Twig/Exception/traces.html.twig', { exception: e, index: loop.index, expand: i in _exceptions_with_user_code or (_exceptions_with_user_code is empty and loop.first) }, with_context = false) }}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block pPageLiveScripts %}
|
||||
{{ include('@Twig/base_js.html.twig') }}
|
||||
{% endblock %}
|
||||
@@ -224,14 +224,14 @@
|
||||
{% if bUserConnected %}
|
||||
<li role="separator" class="divider"></li>
|
||||
<li><a href="{{ app.url_generator.generate('p_user_profile_brick') }}"><span class="brick_icon fas fa-user fa-2x fa-fw"></span>{{ 'Brick:Portal:UserProfile:Navigation:Dropdown:MyProfil'|dict_s }}</a></li>
|
||||
{% for aPortal in app['combodo.current_user.allowed_portals'] %}
|
||||
{% for aPortal in allowed_portals %}
|
||||
{% if aPortal.id != app['combodo.portal.instance.conf'].properties.id %}
|
||||
{% set sIconClass = (aPortal.id == 'backoffice') ? 'far fa-list-alt' : 'fas fa-external-link-alt' %}
|
||||
<li><a href="{{ aPortal.url }}" target="_blank"><span class="brick_icon {{ sIconClass }} fa-2x fa-fw"></span>{{ aPortal.label|dict_s }}</a></li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{# We display the separator only if the user has more then 1 portal. Meaning default portal + console or several portal at least #}
|
||||
{% if app['combodo.current_user.allowed_portals']|length > 1 %}
|
||||
{% if allowed_portals|length > 1 %}
|
||||
<li role="separator" class="divider"></li>
|
||||
{% endif %}
|
||||
<li><a href="{{ app['combodo.absolute_url'] }}pages/logoff.php"><span class="brick_icon fas fa-sign-out-alt fa-2x fa-fw"></span>{{ 'Brick:Portal:UserProfile:Navigation:Dropdown:Logout'|dict_s }}</a></li>
|
||||
@@ -263,14 +263,14 @@
|
||||
</a>
|
||||
<ul class="dropdown-menu user_options" aria-labelledby="user_options">
|
||||
<li><a href="{{ app.url_generator.generate('p_user_profile_brick') }}"><span class="brick_icon fas fa-user fa-lg fa-fw"></span>{{ 'Brick:Portal:UserProfile:Navigation:Dropdown:MyProfil'|dict_s }}</a></li>
|
||||
{% for aPortal in app['combodo.current_user.allowed_portals'] %}
|
||||
{% for aPortal in allowed_portals %}
|
||||
{% if aPortal.id != app['combodo.portal.instance.conf'].properties.id %}
|
||||
{% set sGlyphiconClass = (aPortal.id == 'backoffice') ? 'far fa-list-alt' : 'fas fa-external-link-alt' %}
|
||||
<li><a href="{{ aPortal.url }}" {% if app['combodo.portal.instance.conf'].properties.allowed_portals.opening_mode == 'tab' %}target="_blank"{% endif %} title="{{ aPortal.label|dict_s }}"><span class="brick_icon {{ sGlyphiconClass }} fa-lg fa-fw"></span>{{ aPortal.label|dict_s }}</a></li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{# We display the separator only if the user has more then 1 portal. Meaning default portal + console or several portal at least #}
|
||||
{% if app['combodo.current_user.allowed_portals']|length > 1 %}
|
||||
{% if allowed_portals|length > 1 %}
|
||||
<li role="separator" class="divider"></li>
|
||||
{% endif %}
|
||||
<li><a href="{{ app['combodo.absolute_url'] }}pages/logoff.php"><span class="brick_icon fas fa-sign-out-alt fa-lg fa-fw"></span>{{ 'Brick:Portal:UserProfile:Navigation:Dropdown:Logout'|dict_s }}</a></li>
|
||||
|
||||
@@ -23,59 +23,61 @@ $vendorDir = dirname(dirname(__FILE__));
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
'Combodo\\iTop\\Portal\\Brick\\AbstractBrick' => $baseDir . '/src/Brick/AbstractBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\AggregatePageBrick' => $baseDir . '/src/Brick/AggregatePageBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\BrickCollection' => $baseDir . '/src/Brick/BrickCollection.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\BrickNotFoundException' => $baseDir . '/src/Brick/BrickNotFoundException.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\BrowseBrick' => $baseDir . '/src/Brick/BrowseBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\CreateBrick' => $baseDir . '/src/Brick/CreateBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\FilterBrick' => $baseDir . '/src/Brick/FilterBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\ManageBrick' => $baseDir . '/src/Brick/ManageBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\PortalBrick' => $baseDir . '/src/Brick/PortalBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\PropertyNotFoundException' => $baseDir . '/src/Brick/PropertyNotFoundException.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\UserProfileBrick' => $baseDir . '/src/Brick/UserProfileBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\AbstractController' => $baseDir . '/src/Controller/AbstractController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\AggregatePageBrickController' => $baseDir . '/src/Controller/AggregatePageBrickController.class.inc.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\BrickController' => $baseDir . '/src/Controller/BrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\BrowseBrickController' => $baseDir . '/src/Controller/BrowseBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\CreateBrickController' => $baseDir . '/src/Controller/CreateBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\DefaultController' => $baseDir . '/src/Controller/DefaultController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\ManageBrickController' => $baseDir . '/src/Controller/ManageBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\ObjectController' => $baseDir . '/src/Controller/ObjectController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\SessionMessageController' => $baseDir . '/src/Controller/SessionMessageController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\UserProfileBrickController' => $baseDir . '/src/Controller/UserProfileBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\DependencyInjection\\SilexCompatBootstrap\\PortalXmlConfiguration\\AbstractConfiguration' => $baseDir . '/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/AbstractConfiguration.php',
|
||||
'Combodo\\iTop\\Portal\\DependencyInjection\\SilexCompatBootstrap\\PortalXmlConfiguration\\Basic' => $baseDir . '/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/Basic.php',
|
||||
'Combodo\\iTop\\Portal\\DependencyInjection\\SilexCompatBootstrap\\PortalXmlConfiguration\\Forms' => $baseDir . '/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/Forms.php',
|
||||
'Combodo\\iTop\\Portal\\DependencyInjection\\SilexCompatBootstrap\\PortalXmlConfiguration\\Lists' => $baseDir . '/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/Lists.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\ApplicationContextSetPluginPropertyClass' => $baseDir . '/src/EventListener/ApplicationContextSetPluginPropertyClass.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\ApplicationContextSetUrlMakerClass' => $baseDir . '/src/EventListener/ApplicationContextSetUrlMakerClass.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\CssFromSassCompiler' => $baseDir . '/src/EventListener/CssFromSassCompiler.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\ExceptionListener' => $baseDir . '/src/EventListener/ExceptionListener.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\UserProvider' => $baseDir . '/src/EventListener/UserProvider.php',
|
||||
'Combodo\\iTop\\Portal\\Form\\ObjectFormManager' => $baseDir . '/src/Form/ObjectFormManager.php',
|
||||
'Combodo\\iTop\\Portal\\Form\\PasswordFormManager' => $baseDir . '/src/Form/PasswordFormManager.php',
|
||||
'Combodo\\iTop\\Portal\\Form\\PreferencesFormManager' => $baseDir . '/src/Form/PreferencesFormManager.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\ApplicationHelper' => $baseDir . '/src/Helper/ApplicationHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\BrickControllerHelper' => $baseDir . '/src/Helper/BrickControllerHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\BrowseBrickHelper' => $baseDir . '/src/Helper/BrowseBrickHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\ContextManipulatorHelper' => $baseDir . '/src/Helper/ContextManipulatorHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\LifecycleValidatorHelper' => $baseDir . '/src/Helper/LifecycleValidatorHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\NavigationRuleHelper' => $baseDir . '/src/Helper/NavigationRuleHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\ObjectFormHandlerHelper' => $baseDir . '/src/Helper/ObjectFormHandlerHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\RequestManipulatorHelper' => $baseDir . '/src/Helper/RequestManipulatorHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\ScopeValidatorHelper' => $baseDir . '/src/Helper/ScopeValidatorHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\SecurityHelper' => $baseDir . '/src/Helper/SecurityHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\SessionMessageHelper' => $baseDir . '/src/Helper/SessionMessageHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\UIExtensionsHelper' => $baseDir . '/src/Helper/UIExtensionsHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Kernel' => $baseDir . '/src/Kernel.php',
|
||||
'Combodo\\iTop\\Portal\\Routing\\ItopExtensionsExtraRoutes' => $baseDir . '/src/Routing/ItopExtensionsExtraRoutes.php',
|
||||
'Combodo\\iTop\\Portal\\Routing\\UrlGenerator' => $baseDir . '/src/Routing/UrlGenerator.php',
|
||||
'Combodo\\iTop\\Portal\\Twig\\AppExtension' => $baseDir . '/src/Twig/AppExtension.php',
|
||||
'Combodo\\iTop\\Portal\\Twig\\AppVariable' => $baseDir . '/src/Twig/AppVariable.php',
|
||||
'Combodo\\iTop\\Portal\\UrlMaker\\AbstractPortalUrlMaker' => $baseDir . '/src/UrlMaker/AbstractPortalUrlMaker.php',
|
||||
'Combodo\\iTop\\Portal\\VariableAccessor\\AbstractStringVariableAccessor' => $baseDir . '/src/VariableAccessor/AbstractStringVariableAccessor.php',
|
||||
'Combodo\\iTop\\Portal\\VariableAccessor\\AbstractVariableAccessor' => $baseDir . '/src/VariableAccessor/AbstractVariableAccessor.php',
|
||||
'Combodo\\iTop\\Portal\\VariableAccessor\\CombodoCurrentContactPhotoUrl' => $baseDir . '/src/VariableAccessor/CombodoCurrentContactPhotoUrl.php',
|
||||
'Combodo\\iTop\\Portal\\VariableAccessor\\CombodoPortalInstanceConf' => $baseDir . '/src/VariableAccessor/CombodoPortalInstanceConf.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\AbstractBrick' => $baseDir . '/src/Brick/AbstractBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\AggregatePageBrick' => $baseDir . '/src/Brick/AggregatePageBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\BrickCollection' => $baseDir . '/src/Brick/BrickCollection.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\BrickNotFoundException' => $baseDir . '/src/Brick/BrickNotFoundException.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\BrowseBrick' => $baseDir . '/src/Brick/BrowseBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\CreateBrick' => $baseDir . '/src/Brick/CreateBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\FilterBrick' => $baseDir . '/src/Brick/FilterBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\ManageBrick' => $baseDir . '/src/Brick/ManageBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\PortalBrick' => $baseDir . '/src/Brick/PortalBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\PropertyNotFoundException' => $baseDir . '/src/Brick/PropertyNotFoundException.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\UserProfileBrick' => $baseDir . '/src/Brick/UserProfileBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\AbstractController' => $baseDir . '/src/Controller/AbstractController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\AggregatePageBrickController' => $baseDir . '/src/Controller/AggregatePageBrickController.class.inc.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\BrickController' => $baseDir . '/src/Controller/BrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\BrowseBrickController' => $baseDir . '/src/Controller/BrowseBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\CreateBrickController' => $baseDir . '/src/Controller/CreateBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\DefaultController' => $baseDir . '/src/Controller/DefaultController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\ManageBrickController' => $baseDir . '/src/Controller/ManageBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\ObjectController' => $baseDir . '/src/Controller/ObjectController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\SessionMessageController' => $baseDir . '/src/Controller/SessionMessageController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\UserProfileBrickController' => $baseDir . '/src/Controller/UserProfileBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\DependencyInjection\\SilexCompatBootstrap\\PortalXmlConfiguration\\AbstractConfiguration' => $baseDir . '/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/AbstractConfiguration.php',
|
||||
'Combodo\\iTop\\Portal\\DependencyInjection\\SilexCompatBootstrap\\PortalXmlConfiguration\\Basic' => $baseDir . '/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/Basic.php',
|
||||
'Combodo\\iTop\\Portal\\DependencyInjection\\SilexCompatBootstrap\\PortalXmlConfiguration\\Forms' => $baseDir . '/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/Forms.php',
|
||||
'Combodo\\iTop\\Portal\\DependencyInjection\\SilexCompatBootstrap\\PortalXmlConfiguration\\Lists' => $baseDir . '/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/Lists.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\ApplicationContextSetPluginPropertyClass' => $baseDir . '/src/EventListener/ApplicationContextSetPluginPropertyClass.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\ApplicationContextSetUrlMakerClass' => $baseDir . '/src/EventListener/ApplicationContextSetUrlMakerClass.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\CssFromSassCompiler' => $baseDir . '/src/EventListener/CssFromSassCompiler.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\ExceptionListener' => $baseDir . '/src/EventListener/ExceptionListener.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\UserProvider' => $baseDir . '/src/EventListener/UserProvider.php',
|
||||
'Combodo\\iTop\\Portal\\Form\\ObjectFormManager' => $baseDir . '/src/Form/ObjectFormManager.php',
|
||||
'Combodo\\iTop\\Portal\\Form\\PasswordFormManager' => $baseDir . '/src/Form/PasswordFormManager.php',
|
||||
'Combodo\\iTop\\Portal\\Form\\PreferencesFormManager' => $baseDir . '/src/Form/PreferencesFormManager.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\ApplicationHelper' => $baseDir . '/src/Helper/ApplicationHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\BrickControllerHelper' => $baseDir . '/src/Helper/BrickControllerHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\BrowseBrickHelper' => $baseDir . '/src/Helper/BrowseBrickHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\ContextManipulatorHelper' => $baseDir . '/src/Helper/ContextManipulatorHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\LifecycleValidatorHelper' => $baseDir . '/src/Helper/LifecycleValidatorHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\NavigationRuleHelper' => $baseDir . '/src/Helper/NavigationRuleHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\ObjectFormHandlerHelper' => $baseDir . '/src/Helper/ObjectFormHandlerHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\RequestManipulatorHelper' => $baseDir.'/src/Helper/RequestManipulatorHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\ScopeValidatorHelper' => $baseDir.'/src/Helper/ScopeValidatorHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\SecurityHelper' => $baseDir.'/src/Helper/SecurityHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\SessionMessageHelper' => $baseDir.'/src/Helper/SessionMessageHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\UIExtensionsHelper' => $baseDir.'/src/Helper/UIExtensionsHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Kernel' => $baseDir.'/src/Kernel.php',
|
||||
'Combodo\\iTop\\Portal\\Routing\\ItopExtensionsExtraRoutes' => $baseDir.'/src/Routing/ItopExtensionsExtraRoutes.php',
|
||||
'Combodo\\iTop\\Portal\\Routing\\UrlGenerator' => $baseDir.'/src/Routing/UrlGenerator.php',
|
||||
'Combodo\\iTop\\Portal\\Twig\\AppExtension' => $baseDir.'/src/Twig/AppExtension.php',
|
||||
'Combodo\\iTop\\Portal\\Twig\\AppVariable' => $baseDir.'/src/Twig/AppVariable.php',
|
||||
'Combodo\\iTop\\Portal\\Twig\\CurrentUserAccessor' => $baseDir.'/src/Twig/CurrentUserAccessor.php',
|
||||
'Combodo\\iTop\\Portal\\Twig\\AppGlobal' => $baseDir.'/src/Twig/AppGlobal.php',
|
||||
'Combodo\\iTop\\Portal\\UrlMaker\\AbstractPortalUrlMaker' => $baseDir.'/src/UrlMaker/AbstractPortalUrlMaker.php',
|
||||
'Combodo\\iTop\\Portal\\VariableAccessor\\AbstractStringVariableAccessor' => $baseDir.'/src/VariableAccessor/AbstractStringVariableAccessor.php',
|
||||
'Combodo\\iTop\\Portal\\VariableAccessor\\AbstractVariableAccessor' => $baseDir.'/src/VariableAccessor/AbstractVariableAccessor.php',
|
||||
'Combodo\\iTop\\Portal\\VariableAccessor\\CombodoCurrentContactPhotoUrl' => $baseDir.'/src/VariableAccessor/CombodoCurrentContactPhotoUrl.php',
|
||||
'Combodo\\iTop\\Portal\\VariableAccessor\\CombodoPortalInstanceConf' => $baseDir.'/src/VariableAccessor/CombodoPortalInstanceConf.php',
|
||||
);
|
||||
|
||||
@@ -43,61 +43,63 @@ class ComposerStaticInitdf408f3f8ea034d298269cdf7647358b
|
||||
);
|
||||
|
||||
public static $classMap = array (
|
||||
'Combodo\\iTop\\Portal\\Brick\\AbstractBrick' => __DIR__ . '/../..' . '/src/Brick/AbstractBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\AggregatePageBrick' => __DIR__ . '/../..' . '/src/Brick/AggregatePageBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\BrickCollection' => __DIR__ . '/../..' . '/src/Brick/BrickCollection.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\BrickNotFoundException' => __DIR__ . '/../..' . '/src/Brick/BrickNotFoundException.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\BrowseBrick' => __DIR__ . '/../..' . '/src/Brick/BrowseBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\CreateBrick' => __DIR__ . '/../..' . '/src/Brick/CreateBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\FilterBrick' => __DIR__ . '/../..' . '/src/Brick/FilterBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\ManageBrick' => __DIR__ . '/../..' . '/src/Brick/ManageBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\PortalBrick' => __DIR__ . '/../..' . '/src/Brick/PortalBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\PropertyNotFoundException' => __DIR__ . '/../..' . '/src/Brick/PropertyNotFoundException.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\UserProfileBrick' => __DIR__ . '/../..' . '/src/Brick/UserProfileBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\AbstractController' => __DIR__ . '/../..' . '/src/Controller/AbstractController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\AggregatePageBrickController' => __DIR__ . '/../..' . '/src/Controller/AggregatePageBrickController.class.inc.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\BrickController' => __DIR__ . '/../..' . '/src/Controller/BrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\BrowseBrickController' => __DIR__ . '/../..' . '/src/Controller/BrowseBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\CreateBrickController' => __DIR__ . '/../..' . '/src/Controller/CreateBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\DefaultController' => __DIR__ . '/../..' . '/src/Controller/DefaultController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\ManageBrickController' => __DIR__ . '/../..' . '/src/Controller/ManageBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\ObjectController' => __DIR__ . '/../..' . '/src/Controller/ObjectController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\SessionMessageController' => __DIR__ . '/../..' . '/src/Controller/SessionMessageController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\UserProfileBrickController' => __DIR__ . '/../..' . '/src/Controller/UserProfileBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\DependencyInjection\\SilexCompatBootstrap\\PortalXmlConfiguration\\AbstractConfiguration' => __DIR__ . '/../..' . '/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/AbstractConfiguration.php',
|
||||
'Combodo\\iTop\\Portal\\DependencyInjection\\SilexCompatBootstrap\\PortalXmlConfiguration\\Basic' => __DIR__ . '/../..' . '/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/Basic.php',
|
||||
'Combodo\\iTop\\Portal\\DependencyInjection\\SilexCompatBootstrap\\PortalXmlConfiguration\\Forms' => __DIR__ . '/../..' . '/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/Forms.php',
|
||||
'Combodo\\iTop\\Portal\\DependencyInjection\\SilexCompatBootstrap\\PortalXmlConfiguration\\Lists' => __DIR__ . '/../..' . '/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/Lists.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\ApplicationContextSetPluginPropertyClass' => __DIR__ . '/../..' . '/src/EventListener/ApplicationContextSetPluginPropertyClass.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\ApplicationContextSetUrlMakerClass' => __DIR__ . '/../..' . '/src/EventListener/ApplicationContextSetUrlMakerClass.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\CssFromSassCompiler' => __DIR__ . '/../..' . '/src/EventListener/CssFromSassCompiler.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\ExceptionListener' => __DIR__ . '/../..' . '/src/EventListener/ExceptionListener.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\UserProvider' => __DIR__ . '/../..' . '/src/EventListener/UserProvider.php',
|
||||
'Combodo\\iTop\\Portal\\Form\\ObjectFormManager' => __DIR__ . '/../..' . '/src/Form/ObjectFormManager.php',
|
||||
'Combodo\\iTop\\Portal\\Form\\PasswordFormManager' => __DIR__ . '/../..' . '/src/Form/PasswordFormManager.php',
|
||||
'Combodo\\iTop\\Portal\\Form\\PreferencesFormManager' => __DIR__ . '/../..' . '/src/Form/PreferencesFormManager.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\ApplicationHelper' => __DIR__ . '/../..' . '/src/Helper/ApplicationHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\BrickControllerHelper' => __DIR__ . '/../..' . '/src/Helper/BrickControllerHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\BrowseBrickHelper' => __DIR__ . '/../..' . '/src/Helper/BrowseBrickHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\ContextManipulatorHelper' => __DIR__ . '/../..' . '/src/Helper/ContextManipulatorHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\LifecycleValidatorHelper' => __DIR__ . '/../..' . '/src/Helper/LifecycleValidatorHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\NavigationRuleHelper' => __DIR__ . '/../..' . '/src/Helper/NavigationRuleHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\ObjectFormHandlerHelper' => __DIR__ . '/../..' . '/src/Helper/ObjectFormHandlerHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\RequestManipulatorHelper' => __DIR__ . '/../..' . '/src/Helper/RequestManipulatorHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\ScopeValidatorHelper' => __DIR__ . '/../..' . '/src/Helper/ScopeValidatorHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\SecurityHelper' => __DIR__ . '/../..' . '/src/Helper/SecurityHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\SessionMessageHelper' => __DIR__ . '/../..' . '/src/Helper/SessionMessageHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\UIExtensionsHelper' => __DIR__ . '/../..' . '/src/Helper/UIExtensionsHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Kernel' => __DIR__ . '/../..' . '/src/Kernel.php',
|
||||
'Combodo\\iTop\\Portal\\Routing\\ItopExtensionsExtraRoutes' => __DIR__ . '/../..' . '/src/Routing/ItopExtensionsExtraRoutes.php',
|
||||
'Combodo\\iTop\\Portal\\Routing\\UrlGenerator' => __DIR__ . '/../..' . '/src/Routing/UrlGenerator.php',
|
||||
'Combodo\\iTop\\Portal\\Twig\\AppExtension' => __DIR__ . '/../..' . '/src/Twig/AppExtension.php',
|
||||
'Combodo\\iTop\\Portal\\Twig\\AppVariable' => __DIR__ . '/../..' . '/src/Twig/AppVariable.php',
|
||||
'Combodo\\iTop\\Portal\\UrlMaker\\AbstractPortalUrlMaker' => __DIR__ . '/../..' . '/src/UrlMaker/AbstractPortalUrlMaker.php',
|
||||
'Combodo\\iTop\\Portal\\VariableAccessor\\AbstractStringVariableAccessor' => __DIR__ . '/../..' . '/src/VariableAccessor/AbstractStringVariableAccessor.php',
|
||||
'Combodo\\iTop\\Portal\\VariableAccessor\\AbstractVariableAccessor' => __DIR__ . '/../..' . '/src/VariableAccessor/AbstractVariableAccessor.php',
|
||||
'Combodo\\iTop\\Portal\\VariableAccessor\\CombodoCurrentContactPhotoUrl' => __DIR__ . '/../..' . '/src/VariableAccessor/CombodoCurrentContactPhotoUrl.php',
|
||||
'Combodo\\iTop\\Portal\\VariableAccessor\\CombodoPortalInstanceConf' => __DIR__ . '/../..' . '/src/VariableAccessor/CombodoPortalInstanceConf.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\AbstractBrick' => __DIR__ . '/../..' . '/src/Brick/AbstractBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\AggregatePageBrick' => __DIR__ . '/../..' . '/src/Brick/AggregatePageBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\BrickCollection' => __DIR__ . '/../..' . '/src/Brick/BrickCollection.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\BrickNotFoundException' => __DIR__ . '/../..' . '/src/Brick/BrickNotFoundException.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\BrowseBrick' => __DIR__ . '/../..' . '/src/Brick/BrowseBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\CreateBrick' => __DIR__ . '/../..' . '/src/Brick/CreateBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\FilterBrick' => __DIR__ . '/../..' . '/src/Brick/FilterBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\ManageBrick' => __DIR__ . '/../..' . '/src/Brick/ManageBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\PortalBrick' => __DIR__ . '/../..' . '/src/Brick/PortalBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\PropertyNotFoundException' => __DIR__ . '/../..' . '/src/Brick/PropertyNotFoundException.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\UserProfileBrick' => __DIR__ . '/../..' . '/src/Brick/UserProfileBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\AbstractController' => __DIR__ . '/../..' . '/src/Controller/AbstractController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\AggregatePageBrickController' => __DIR__ . '/../..' . '/src/Controller/AggregatePageBrickController.class.inc.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\BrickController' => __DIR__ . '/../..' . '/src/Controller/BrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\BrowseBrickController' => __DIR__ . '/../..' . '/src/Controller/BrowseBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\CreateBrickController' => __DIR__ . '/../..' . '/src/Controller/CreateBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\DefaultController' => __DIR__ . '/../..' . '/src/Controller/DefaultController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\ManageBrickController' => __DIR__ . '/../..' . '/src/Controller/ManageBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\ObjectController' => __DIR__ . '/../..' . '/src/Controller/ObjectController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\SessionMessageController' => __DIR__ . '/../..' . '/src/Controller/SessionMessageController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\UserProfileBrickController' => __DIR__ . '/../..' . '/src/Controller/UserProfileBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\DependencyInjection\\SilexCompatBootstrap\\PortalXmlConfiguration\\AbstractConfiguration' => __DIR__ . '/../..' . '/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/AbstractConfiguration.php',
|
||||
'Combodo\\iTop\\Portal\\DependencyInjection\\SilexCompatBootstrap\\PortalXmlConfiguration\\Basic' => __DIR__ . '/../..' . '/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/Basic.php',
|
||||
'Combodo\\iTop\\Portal\\DependencyInjection\\SilexCompatBootstrap\\PortalXmlConfiguration\\Forms' => __DIR__ . '/../..' . '/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/Forms.php',
|
||||
'Combodo\\iTop\\Portal\\DependencyInjection\\SilexCompatBootstrap\\PortalXmlConfiguration\\Lists' => __DIR__ . '/../..' . '/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/Lists.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\ApplicationContextSetPluginPropertyClass' => __DIR__ . '/../..' . '/src/EventListener/ApplicationContextSetPluginPropertyClass.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\ApplicationContextSetUrlMakerClass' => __DIR__ . '/../..' . '/src/EventListener/ApplicationContextSetUrlMakerClass.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\CssFromSassCompiler' => __DIR__ . '/../..' . '/src/EventListener/CssFromSassCompiler.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\ExceptionListener' => __DIR__ . '/../..' . '/src/EventListener/ExceptionListener.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\UserProvider' => __DIR__ . '/../..' . '/src/EventListener/UserProvider.php',
|
||||
'Combodo\\iTop\\Portal\\Form\\ObjectFormManager' => __DIR__ . '/../..' . '/src/Form/ObjectFormManager.php',
|
||||
'Combodo\\iTop\\Portal\\Form\\PasswordFormManager' => __DIR__ . '/../..' . '/src/Form/PasswordFormManager.php',
|
||||
'Combodo\\iTop\\Portal\\Form\\PreferencesFormManager' => __DIR__ . '/../..' . '/src/Form/PreferencesFormManager.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\ApplicationHelper' => __DIR__ . '/../..' . '/src/Helper/ApplicationHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\BrickControllerHelper' => __DIR__ . '/../..' . '/src/Helper/BrickControllerHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\BrowseBrickHelper' => __DIR__ . '/../..' . '/src/Helper/BrowseBrickHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\ContextManipulatorHelper' => __DIR__ . '/../..' . '/src/Helper/ContextManipulatorHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\LifecycleValidatorHelper' => __DIR__ . '/../..' . '/src/Helper/LifecycleValidatorHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\NavigationRuleHelper' => __DIR__ . '/../..' . '/src/Helper/NavigationRuleHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\ObjectFormHandlerHelper' => __DIR__.'/../..'.'/src/Helper/ObjectFormHandlerHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\RequestManipulatorHelper' => __DIR__.'/../..'.'/src/Helper/RequestManipulatorHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\ScopeValidatorHelper' => __DIR__.'/../..'.'/src/Helper/ScopeValidatorHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\SecurityHelper' => __DIR__.'/../..'.'/src/Helper/SecurityHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\SessionMessageHelper' => __DIR__.'/../..'.'/src/Helper/SessionMessageHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\UIExtensionsHelper' => __DIR__.'/../..'.'/src/Helper/UIExtensionsHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Kernel' => __DIR__.'/../..'.'/src/Kernel.php',
|
||||
'Combodo\\iTop\\Portal\\Routing\\ItopExtensionsExtraRoutes' => __DIR__.'/../..'.'/src/Routing/ItopExtensionsExtraRoutes.php',
|
||||
'Combodo\\iTop\\Portal\\Routing\\UrlGenerator' => __DIR__.'/../..'.'/src/Routing/UrlGenerator.php',
|
||||
'Combodo\\iTop\\Portal\\Twig\\AppExtension' => __DIR__.'/../..'.'/src/Twig/AppExtension.php',
|
||||
'Combodo\\iTop\\Portal\\Twig\\CurrentUserAccessor' => __DIR__.'/../..'.'/src/Twig/CurrentUserAccessor.php',
|
||||
'Combodo\\iTop\\Portal\\Twig\\AppGlobal' => __DIR__.'/../..'.'/src/Twig/AppGlobal.php',
|
||||
'Combodo\\iTop\\Portal\\Twig\\AppVariable' => __DIR__.'/../..'.'/src/Twig/AppVariable.php',
|
||||
'Combodo\\iTop\\Portal\\UrlMaker\\AbstractPortalUrlMaker' => __DIR__.'/../..'.'/src/UrlMaker/AbstractPortalUrlMaker.php',
|
||||
'Combodo\\iTop\\Portal\\VariableAccessor\\AbstractStringVariableAccessor' => __DIR__.'/../..'.'/src/VariableAccessor/AbstractStringVariableAccessor.php',
|
||||
'Combodo\\iTop\\Portal\\VariableAccessor\\AbstractVariableAccessor' => __DIR__.'/../..'.'/src/VariableAccessor/AbstractVariableAccessor.php',
|
||||
'Combodo\\iTop\\Portal\\VariableAccessor\\CombodoCurrentContactPhotoUrl' => __DIR__.'/../..'.'/src/VariableAccessor/CombodoCurrentContactPhotoUrl.php',
|
||||
'Combodo\\iTop\\Portal\\VariableAccessor\\CombodoPortalInstanceConf' => __DIR__.'/../..'.'/src/VariableAccessor/CombodoPortalInstanceConf.php',
|
||||
);
|
||||
|
||||
public static function getInitializer(ClassLoader $loader)
|
||||
|
||||
Reference in New Issue
Block a user