瀏覽代碼

Replace hard-coded username in the menu builder

venyii 10 年之前
父節點
當前提交
a118e1a9b1
共有 2 個文件被更改,包括 13 次插入7 次删除
  1. 12 6
      src/Packagist/WebBundle/Menu/MenuBuilder.php
  2. 1 1
      src/Packagist/WebBundle/Resources/config/services.yml

+ 12 - 6
src/Packagist/WebBundle/Menu/MenuBuilder.php

@@ -3,18 +3,24 @@
 namespace Packagist\WebBundle\Menu;
 
 use Knp\Menu\FactoryInterface;
-use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\Security\Core\SecurityContextInterface;
 
 class MenuBuilder
 {
     private $factory;
+    private $username;
 
     /**
      * @param FactoryInterface $factory
+     * @param SecurityContextInterface $securityContext
      */
-    public function __construct(FactoryInterface $factory)
+    public function __construct(FactoryInterface $factory, SecurityContextInterface $securityContext)
     {
         $this->factory = $factory;
+
+        if ($securityContext->getToken() && $securityContext->getToken()->getUsername()) {
+            $this->username = $securityContext->getToken()->getUsername();
+        }
     }
 
     public function createUserMenu()
@@ -25,8 +31,8 @@ class MenuBuilder
         $menu->addChild('Profile', array('label' => '<span class="icon-vcard"></span>Profile', 'route' => 'fos_user_profile_show', 'extras' => array('safe_label' => true)));
         $menu->addChild('Settings', array('label' => '<span class="icon-tools"></span>Settings', 'route' => 'fos_user_profile_edit', 'extras' => array('safe_label' => true)));
         $menu->addChild('Change password', array('label' => '<span class="icon-key"></span>Change password', 'route' => 'fos_user_change_password', 'extras' => array('safe_label' => true)));
-        $menu->addChild('My packages', array('label' => '<span class="icon-box"></span>My packages', 'route' => 'user_packages', 'routeParameters' => array('name' => 'stloyd'), 'extras' => array('safe_label' => true)));
-        $menu->addChild('My favorites', array('label' => '<span class="icon-leaf"></span>My favorites', 'route' => 'user_favorites', 'routeParameters' => array('name' => 'stloyd'), 'extras' => array('safe_label' => true)));
+        $menu->addChild('My packages', array('label' => '<span class="icon-box"></span>My packages', 'route' => 'user_packages', 'routeParameters' => array('name' => $this->username), 'extras' => array('safe_label' => true)));
+        $menu->addChild('My favorites', array('label' => '<span class="icon-leaf"></span>My favorites', 'route' => 'user_favorites', 'routeParameters' => array('name' => $this->username), 'extras' => array('safe_label' => true)));
         $menu->addChild('hr', array('label' => '<hr>', 'labelAttributes' => array('class' => 'normal'), 'extras' => array('safe_label' => true)));
         $menu->addChild('Logout', array('label' => '<span class="icon-off"></span>Logout', 'route' => 'logout', 'extras' => array('safe_label' => true)));
 
@@ -41,8 +47,8 @@ class MenuBuilder
         $menu->addChild('Profile', array('label' => '<span class="icon-vcard"></span>Profile', 'route' => 'fos_user_profile_show', 'extras' => array('safe_label' => true)));
         $menu->addChild('Edit your information', array('label' => '<span class="icon-tools"></span>Edit your information', 'route' => 'fos_user_profile_edit', 'extras' => array('safe_label' => true)));
         $menu->addChild('Change password', array('label' => '<span class="icon-key"></span>Change password', 'route' => 'fos_user_change_password', 'extras' => array('safe_label' => true)));
-        $menu->addChild('View your packages', array('label' => '<span class="icon-box"></span>View your packages', 'route' => 'user_packages', 'routeParameters' => array('name' => 'stloyd'), 'extras' => array('safe_label' => true)));
-        $menu->addChild('View your favorites', array('label' => '<span class="icon-leaf"></span>View your favorites', 'route' => 'user_favorites', 'routeParameters' => array('name' => 'stloyd'), 'extras' => array('safe_label' => true)));
+        $menu->addChild('View your packages', array('label' => '<span class="icon-box"></span>View your packages', 'route' => 'user_packages', 'routeParameters' => array('name' => $this->username), 'extras' => array('safe_label' => true)));
+        $menu->addChild('View your favorites', array('label' => '<span class="icon-leaf"></span>View your favorites', 'route' => 'user_favorites', 'routeParameters' => array('name' => $this->username), 'extras' => array('safe_label' => true)));
 
         return $menu;
     }

+ 1 - 1
src/Packagist/WebBundle/Resources/config/services.yml

@@ -89,7 +89,7 @@ services:
 
     packagist.menu_builder:
         class: Packagist\WebBundle\Menu\MenuBuilder
-        arguments: ["@knp_menu.factory"]
+        arguments: [@knp_menu.factory, @security.context]
 
     packagist.menu.user:
         class: Knp\Menu\MenuItem