protected function addProjectIniReport()
    {
        $h3     = $this->html->h3();
        $issues = false;
        if (! $this->project->offsetExists('headers')) {
            $this->html->pInfo('No headers section found.');
            $issues = true;
        }
        if (!$this->project->offsetExists('meta')) {
            $this->html->pInfo('No meta headers section found.');
            $issues = true;
        } else {
            if (isset($this->project['meta']['Content-Security-Policy'])) {
                $this->html->pInfo('meta.Content-Security-Policy should be moved to headers section');
                $issues = true;
            }
            if (isset($this->project['meta']['Strict-Transport-Security'])) {
                $this->html->pInfo('meta.Strict-Transport-Security should be moved to headers section');
                $issues = true;
            }
        }

        if (isset($this->project['headers']['Content-Security-Policy']) &&
                preg_match('/img-src\s.*?data:.*?;/', $this->project['headers']['Content-Security-Policy']) !== 1) {
            $this->html->pInfo('The headers.Content-Security-Policy setting img-src should have data: for Two Factor Authentication.');
            $issues = true;
        }
        if ($this->project->offsetExists('jquerycss')) {
            $this->html->pInfo('Separate JQuery CSS no longer in use. Remove jquerycss setting.');
            $issues = true;
        }

        if (! isset($this->project['security'], $this->project['security']['methods'])) {
            $this->html->pInfo('No OpenSSL cipher methods defined in security.methods.');
            $issues = true;
        }

        if ($issues) {
            $h3->append('Project.ini issues found');
            $this->html->pInfo()->strong('See project.example.ini for examples of fixes.');
        } else {
            $h3->append('Project.ini report');
            $this->html->pInfo('No compatibility issues found in project.ini.');
        }
    }