<?php
namespace Platform\SecurityBundle;
use Common\CommonBundle;
use Platform\SecurityBundle\DependencyInjection\Compiler\OAuthCompilerPass;
use Platform\SecurityBundle\DependencyInjection\Compiler\OAuthProviderCompilerPass;
use Platform\SecurityBundle\DependencyInjection\Compiler\PermissionAliasesCompilerPass;
use Platform\SecurityBundle\DependencyInjection\Compiler\PermissionsCompilerPass;
use Symfony\Component\DependencyInjection\Compiler\PassConfig;
use Symfony\Component\DependencyInjection\ContainerBuilder;
/**
* This bundle provides all features concerning security-related items in the system.
* This includes:
* * User accounts
* * Groups, Roles, and permissions
* * Firewall configuration for access to/from certain resources
* * Login handling
*
* Class PlatformSecurityBundle
* @package Platform\SecurityBundle
*/
final class PlatformSecurityBundle extends CommonBundle
{
/**
* {@inheritdoc}
*/
public function build(ContainerBuilder $container): void
{
// call parent
parent::build($container);
// register compiler passes
$container
->addCompilerPass(new OAuthCompilerPass())
->addCompilerPass(new OAuthProviderCompilerPass())
->addCompilerPass(new PermissionsCompilerPass(), PassConfig::TYPE_BEFORE_REMOVING)
->addCompilerPass(new PermissionAliasesCompilerPass(), PassConfig::TYPE_BEFORE_REMOVING);
}
}