services:
    _defaults:
        autoconfigure: false
        public: false

    Claroline\CoreBundle\Manager\Workspace\WorkspaceUserQueueManager:
        arguments:
            - '@Claroline\AppBundle\Event\StrictDispatcher'
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\AppBundle\API\Crud'

    Claroline\CoreBundle\Manager\WidgetManager:
        arguments:
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\CoreBundle\Manager\PluginManager'

    Claroline\CoreBundle\Manager\VersionManager:
        arguments:
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '%kernel.project_dir%'
        calls:
            - setLogger: [ '@logger' ]

    Claroline\CoreBundle\Manager\UserManager:
        arguments:
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\AppBundle\API\Crud'
            - '@Claroline\CoreBundle\Library\Configuration\PlatformConfigurationHandler'
            - '@Claroline\AppBundle\Event\StrictDispatcher'
            - '@messenger.default_bus'

    claroline.manager.user_manager:
        alias: Claroline\CoreBundle\Manager\UserManager
        public: true

    Claroline\CoreBundle\Manager\Tool\ToolRightsManager:
        arguments:
            - '@Claroline\AppBundle\Persistence\ObjectManager'

    Claroline\CoreBundle\Manager\Tool\ToolMaskDecoderManager:
        arguments:
            - '@Claroline\AppBundle\Persistence\ObjectManager'

    Claroline\CoreBundle\Manager\Tool\ToolManager:
        arguments:
            - '@security.authorization_checker'
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\CoreBundle\Manager\Tool\ToolMaskDecoderManager'
            - '@Claroline\CoreBundle\Manager\Tool\ToolRightsManager'
        calls:
            - setLogger: [ '@logger' ]

    claroline.manager.tool_manager:
        alias: Claroline\CoreBundle\Manager\Tool\ToolManager
        public: true

    Claroline\CoreBundle\Manager\RoleManager:
        arguments:
            - '@Claroline\AppBundle\Persistence\ObjectManager'

    claroline.manager.role_manager:
        alias: Claroline\CoreBundle\Manager\RoleManager
        public: true

    Claroline\CoreBundle\Manager\ResourceManager:
        arguments:
            - '@security.authorization_checker'
            - '@Claroline\CoreBundle\Manager\Resource\RightsManager'
            - '@Claroline\AppBundle\Event\StrictDispatcher'
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\AppBundle\API\Crud'
            - '@Claroline\AppBundle\Manager\File\TempFileManager'
            - '@security.helper'
        calls:
            - setLogger: ['@logger']

    claroline.manager.resource_manager:
        alias: Claroline\CoreBundle\Manager\ResourceManager
        public: true

    Claroline\CoreBundle\Manager\PluginManager:
        arguments:
            - '%claroline.param.bundle_file%'
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@kernel'

    Claroline\CoreBundle\Manager\MailManager:
        arguments:
            - '@twig'
            - '@Claroline\CoreBundle\Library\Mailing\Mailer'
            - '@Claroline\CoreBundle\Library\Configuration\PlatformConfigurationHandler'
            - '@Claroline\AppBundle\Manager\PlatformManager'
            - '@Claroline\CoreBundle\Manager\Template\TemplateManager'

    Claroline\CoreBundle\Manager\LogManager:
        arguments:
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\AppBundle\API\FinderProvider'
            - '@translator'
            - '@event_dispatcher'

    Claroline\CoreBundle\Manager\LogConnectManager:
        arguments:
            - '@Claroline\AppBundle\API\FinderProvider'
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\EvaluationBundle\Manager\WorkspaceEvaluationManager'
            - '@Claroline\EvaluationBundle\Manager\ResourceEvaluationManager'
            - '@translator'

    Claroline\CoreBundle\Manager\LockManager:
        arguments:
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@security.authorization_checker'
            - '@security.token_storage'

    Claroline\CoreBundle\Manager\LocaleManager:
        arguments:
            - '@Claroline\CoreBundle\Library\Configuration\PlatformConfigurationHandler'
            - '@Claroline\CoreBundle\Manager\UserManager'
            - '@security.token_storage'

    Claroline\CoreBundle\Manager\FileManager:
        public: true # for DataFixtures
        arguments:
            - '%claroline.param.files_directory%'
            - '%claroline.param.public_files_directory%'
            - '@filesystem'
            - '@Claroline\CoreBundle\Library\Configuration\PlatformConfigurationHandler'
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\AppBundle\API\Crud'

    Claroline\CoreBundle\Manager\EventManager:
        arguments:
            - '@kernel'
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@translator'

    Claroline\CoreBundle\Manager\DataSourceManager:
        arguments:
            - '@security.token_storage'
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\AppBundle\Event\StrictDispatcher'
            - '@Claroline\CoreBundle\Manager\PluginManager'

    Claroline\CoreBundle\Manager\CurlManager: ~

    Claroline\CoreBundle\Manager\CryptographyManager:
        arguments:
            - '@Claroline\AppBundle\Persistence\ObjectManager'

    Claroline\CoreBundle\Manager\ContentManager:
        arguments:
            - '@doctrine'
            - '@request_stack'
            - '@Claroline\AppBundle\Persistence\ObjectManager'

    Claroline\CoreBundle\Manager\ConnectionMessageManager:
        arguments:
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@event_dispatcher'
            - '@Claroline\AppBundle\API\SerializerProvider'

    Claroline\CoreBundle\Manager\Workspace\WorkspaceRestrictionsManager:
        arguments:
            - '@event_dispatcher'
            - '@request_stack'
            - '@security.token_storage'
            - '@Claroline\CoreBundle\Manager\Workspace\WorkspaceManager'
            - '@Claroline\CoreBundle\Manager\Workspace\WorkspaceUserQueueManager'

    Claroline\CoreBundle\Manager\Workspace\WorkspaceManager:
        public: true
        arguments:
            - '%claroline.param.files_directory%'
            - '%claroline.param.workspace.default%'
            - '@Claroline\AppBundle\API\Crud'
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\CoreBundle\Manager\Workspace\TransferManager'
        calls:
            - setLogger: [ '@logger' ]

    claroline.manager.workspace_manager:
        alias: Claroline\CoreBundle\Manager\Workspace\WorkspaceManager
        public: true

    Claroline\CoreBundle\Manager\Workspace\TransferManager:
        arguments:
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\AppBundle\Event\StrictDispatcher'
            - '@Claroline\AppBundle\Manager\File\ArchiveManager'
            - '@Claroline\CoreBundle\Manager\FileManager'
            - '@Claroline\AppBundle\API\SerializerProvider'
            - '@Claroline\AppBundle\API\Crud'
        calls:
            - setLogger: [ '@logger' ]

    Claroline\CoreBundle\Manager\Template\PlaceholderManager:
        arguments:
            - '@security.token_storage'
            - '@Claroline\CoreBundle\Library\Configuration\PlatformConfigurationHandler'
            - '@Claroline\AppBundle\Manager\PlatformManager'

    Claroline\CoreBundle\Manager\Template\TemplateManager:
        arguments:
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\CoreBundle\Manager\LocaleManager'
            - '@Claroline\CoreBundle\Manager\Template\PlaceholderManager'

    Claroline\CoreBundle\Manager\Resource\RightsManager:
        arguments:
            - '@doctrine.dbal.default_connection'
            - '@security.token_storage'
            - '@Claroline\AppBundle\Event\StrictDispatcher'
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\CoreBundle\Manager\Resource\MaskManager'
            - '@Claroline\CoreBundle\Manager\Workspace\WorkspaceManager'
        calls:
            - setLogger: [ '@logger' ]

    claroline.manager.rights_manager:
        alias: Claroline\CoreBundle\Manager\Resource\RightsManager
        public: true

    Claroline\CoreBundle\Manager\Resource\ResourceRestrictionsManager:
        arguments:
            - '@request_stack'
            - '@Claroline\CoreBundle\Manager\Resource\RightsManager'
            - '@security.authorization_checker'

    Claroline\CoreBundle\Manager\Resource\ResourceLifecycleManager:
        arguments:
            - '@Claroline\AppBundle\Event\StrictDispatcher'
            - '@Claroline\AppBundle\Persistence\ObjectManager'

    Claroline\CoreBundle\Manager\Resource\ResourceActionManager:
        arguments:
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@security.authorization_checker'
            - '@Claroline\AppBundle\Event\StrictDispatcher'
            - '@Claroline\CoreBundle\Manager\ResourceManager'

    Claroline\CoreBundle\Manager\Resource\MaskManager:
        arguments:
            - '@Claroline\AppBundle\Persistence\ObjectManager'
        calls:
            - setLogger: [ '@logger' ]

    Claroline\CoreBundle\Manager\Organization\OrganizationManager:
        arguments:
            - '@Claroline\AppBundle\Persistence\ObjectManager'

    claroline.manager.organization_manager:
        alias: Claroline\CoreBundle\Manager\Organization\OrganizationManager
        public: true

    Claroline\CoreBundle\Manager\LocationManager:
        arguments:
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\CoreBundle\Library\Configuration\PlatformConfigurationHandler'
            - '@Claroline\CoreBundle\Manager\CurlManager'

    Claroline\CoreBundle\Manager\PlanningManager:
        arguments:
            - '@event_dispatcher'
            - '@Claroline\AppBundle\Persistence\ObjectManager'

    Claroline\CoreBundle\Manager\FacetManager:
        arguments:
            - '@event_dispatcher'
