    public function __construct(
        GlyphFinder $glyph_finder,
        ProjectXMLMerger $project_xml_merger,
        ConsistencyChecker $consistency_checker,
        TemplateDao $template_dao,
        ProjectManager $project_manager,
        EventDispatcherInterface $event_dispatcher,
    ) {
        $this->template_dao    = $template_dao;
        $this->templates       = [
            AgileALMTemplate::NAME => new AgileALMTemplate($glyph_finder, $project_xml_merger, $consistency_checker),
            ScrumTemplate::NAME => new ScrumTemplate($glyph_finder, $project_xml_merger, $consistency_checker),
            KanbanTemplate::NAME => new KanbanTemplate($glyph_finder, $project_xml_merger, $consistency_checker),
            IssuesTemplate::NAME => new IssuesTemplate($glyph_finder, $consistency_checker, $event_dispatcher),
            EmptyTemplate::NAME => new EmptyTemplate($glyph_finder),
        ];
        $this->project_manager = $project_manager;
        $this->glyph_finder    = $glyph_finder;

        $this->external_templates = self::getExternalTemplatesByName($event_dispatcher);
    }
The software performs an authorization check when an actor attempts to access a resource or perform an action, but it does not correctly perform the check. This allows attackers to bypass intended access restrictions.