<?php

namespace Neblion\BaseAppBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;

class DefaultController extends Controller
{
    /**
     * @Route("/", name="welcome")
     * @Template()
     */
    public function indexAction()
    {
        return array();
    }
}

<?php

namespace Neblion\BaseAppBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;

class DefaultController extends Controller
{
    /**
     * @Route("/", name="welcome")
     * @Template()
     */
    public function indexAction()
    {
        $user = $this->get('security.context')->getToken()->getUser();
            
        // Check if user has a profile
        if (!$user->getProfile()) {
            // Set flash message
            $this->get('session')->setFlash('notice', 'You have not a profile, create it!');
            return $this->redirect($this->generateUrl('profile_new'));
        }
        
        return array();
    }
}

Check on default controler if the user has a profile, if not redirect for creation
Check on default controler if the user has a profile, if not redirect for creation
